IMP  2.1.0
The Integrative Modeling Platform
WeightMover.h
Go to the documentation of this file.
1 /**
2  * \file isd/WeightMover.h
3  * \brief A mover that transform a rigid body
4  *
5  * Copyright 2007-2013 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPISD_WEIGHT_MOVER_H
10 #define IMPISD_WEIGHT_MOVER_H
11 
12 #include "isd_config.h"
14 #include <IMP/algebra/VectorD.h>
15 #include <IMP/isd/Weight.h>
16 
17 IMPISD_BEGIN_NAMESPACE
18 
19 //! Modify the transformation of a rigid body
20 /** The transformation of a rigid body is moved in a ball of given
21  size. The probability distribution is uniform over the ball.
22  \see MonteCarlo
23  */
24 class IMPISDEXPORT WeightMover : public core::MonteCarloMover
25 {
26 public:
27  /** Mover for weight decorator
28  \param[in] w particle
29  \param[in] radius maximum radius of displacement
30  */
32 
33 protected:
34  virtual kernel::ModelObjectsTemp do_get_inputs() const IMP_OVERRIDE;
35  virtual core::MonteCarloMoverResult do_propose() IMP_OVERRIDE;
36  virtual void do_reject() IMP_OVERRIDE;
38 private:
39  Weight w_;
40  algebra::VectorKD oldweights_;
41  Float radius_;
42 };
43 
44 IMPISD_END_NAMESPACE
45 
46 #endif /* IMPISD_WEIGHT_MOVER_H */
Add weights for a set of states to a particle.
Definition: Weight.h:24
virtual void do_reject()=0
Implement reset_proposed_move()
A Cartesian vector in D-dimensions.
Definition: VectorD.h:48
A base class for classes which perturb particles.
The base class for movers for MC optimization.
Simple D vector class.
virtual MonteCarloMoverResult do_propose()=0
Implement propose_move()
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Modify the transformation of a rigid body.
Definition: WeightMover.h:24
Class to handle individual model particles.
Add weights for a set of states to a particle.
virtual ModelObjectsTemp do_get_inputs() const =0
double Float
Basic floating-point value (could be float, double...)
Definition: base/types.h:20