IMP  2.4.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-2015 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/kernel/Particle.h>
15 #include <IMP/decorator_macros.h>
16 #include <IMP/kernel/Model.h>
17 #include <IMP/Decorator.h>
18 #include <IMP/base/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(kernel::Model *m, kernel::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(kernel::Model *m, kernel::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 */
Import IMP/kernel/Decorator.h in the namespace.
A base class for Keys.
Definition: kernel/Key.h:46
Add weights for a set of states to a particle.
Definition: Weight.h:24
#define IMP_DECORATOR_METHODS(Name, Parent)
Exception definitions and assertions.
#define IMP_VALUES(Name, PluralName)
Define the type for storing sets of values.
Definition: value_macros.h:23
#define IMP_DECORATOR_SETUP_0(Name)
Import IMP/kernel/decorator_macros.h in the namespace.
Storage of a model, its restraints, constraints and particles.
Classes to handle individual model particles. (Note that implementation of inline functions in in int...
double Float
Basic floating-point value (could be float, double...)
Definition: types.h:20
int Int
Basic integer value.
Definition: types.h:35
VectorD<-1 > VectorKD
Definition: VectorD.h:411
Class for storing model, its restraints, constraints, and particles.
Definition: kernel/Model.h:73