IMP logo
IMP Reference Guide  2.13.0
The Integrative Modeling Platform
RevoluteJointMover.h
Go to the documentation of this file.
1 /**
2  * \file IMP/kinematics/RevoluteJointMover.h
3  * \brief A modifier which perturbs a point with a normal distribution.
4  *
5  * Copyright 2007-2020 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPKINEMATICS_REVOLUTE_JOINT_MOVER_H
10 #define IMPKINEMATICS_REVOLUTE_JOINT_MOVER_H
11 
12 #include <IMP/kinematics/kinematics_config.h>
15 
16 IMPKINEMATICS_BEGIN_NAMESPACE
17 
18 //! Modify a set of joints using a normal distribution
19 /** The normal distribution has a zero mean and the given standard deviation.
20  \see MonteCarlo
21  */
22 class IMPKINEMATICSEXPORT RevoluteJointMover : public core::MonteCarloMover {
24  Float stddev_;
25  Floats originals_;
26 
27  public:
29  const kinematics::RevoluteJoints& joints,
30  const double stddev=0.01);
31 
32  void set_sigma(Float sigma) {
33  IMP_USAGE_CHECK(sigma > 0, "Sigma must be positive");
34  stddev_ = sigma;
35  }
36 
37  Float get_sigma() const { return stddev_; }
38 
39  protected:
42  virtual void do_reject() IMP_OVERRIDE;
44 };
45 
46 IMPKINEMATICS_END_NAMESPACE
47 
48 #endif /* IMPKINEMATICS_REVOLUTE_JOINT_MOVER_H */
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
virtual void do_reject()=0
Implement reset_proposed_move()
Return value of the MonteCarloMover::propose() function.
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:72
Modify a set of joints using a normal distribution.
A base class for classes which perturb particles.
The base class for movers for Monte Carlo optimization.
virtual MonteCarloMoverResult do_propose()=0
Implement propose_move()
double Float
Basic floating-point value (could be float, double...)
Definition: types.h:20
#define IMP_USAGE_CHECK(expr, message)
A runtime test for incorrect usage of a class or method.
Definition: check_macros.h:168
functionality for defining various revolute kinematic joints between rigid bodies as part of a kinema...
virtual ModelObjectsTemp do_get_inputs() const =0
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.