IMP logo
IMP Reference Guide  2.10.0
The Integrative Modeling Platform
Weight.h
Go to the documentation of this file.
1 /**
2  * \file IMP/isd/Weight.h
3  * \brief Add weights for a set of states to a particle.
4  *
5  * Copyright 2007-2018 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPISD_WEIGHT_H
10 #define IMPISD_WEIGHT_H
11 
12 #include "isd_config.h"
13 
14 #include <IMP/Particle.h>
15 #include <IMP/decorator_macros.h>
16 #include <IMP/Model.h>
17 #include <IMP/Decorator.h>
18 #include <IMP/exception.h>
19 #include <sstream>
20 
21 IMPISD_BEGIN_NAMESPACE
22 
23 //! Add weights for a set of states to a particle.
24 class IMPISDEXPORT Weight : public Decorator {
25 
26  static const int nstates_max = 20;
27  static void do_setup_particle(Model *m, ParticleIndex pi);
28 
29  public:
32 
33  //! Get number of states key
34  static IntKey get_nstates_key();
35 
36  //! Get i-th weight key
37  static FloatKey get_weight_key(int i);
38 
39  //! Set all the weights
40  void set_weights(algebra::VectorKD w);
41 
42  //! Add one weight
43  void add_weight();
44 
45  //! Get the i-th weight
46  Float get_weight(int i);
47 
48  //! Get all the weights
49  algebra::VectorKD get_weights();
50 
51  //! Set weights are optimized
52  void set_weights_are_optimized(bool tf);
53 
54  //! Get number of states
55  Int get_number_of_states();
56 
57  static bool get_is_setup(Model *m, ParticleIndex pi) {
58  return m->get_has_attribute(get_nstates_key(), pi);
59  }
60 };
61 
63 
64 IMPISD_END_NAMESPACE
65 
66 #endif /* IMPISD_WEIGHT_H */
The base class for decorators.
Add weights for a set of states to a particle.
Definition: Weight.h:24
Storage of a model, its restraints, constraints and particles.
Exception definitions and assertions.
A more IMP-like version of the std::vector.
Definition: Vector.h:39
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:72
#define IMP_VALUES(Name, PluralName)
Define the type for storing sets of values.
Definition: value_macros.h:23
Various general useful macros for IMP.
#define IMP_DECORATOR_SETUP_0(Name)
Interface to specialized Particle types (e.g. atoms)
Definition: Decorator.h:118
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
#define IMP_DECORATOR_METHODS(Name, Parent)
double Float
Basic floating-point value (could be float, double...)
Definition: types.h:20
int Int
Basic integer value.
Definition: types.h:35
bool get_has_attribute(TypeKey attribute_key, ParticleIndex particle) const
return true if particle has attribute with the specified key
VectorD<-1 > VectorKD
Definition: VectorD.h:411