IMP logo
IMP Reference Guide  2.22.0
The Integrative Modeling Platform
WeightMover.h
Go to the documentation of this file.
1 /**
2  * \file IMP/isd/WeightMover.h
3  * \brief A mover that perturbs a Weight particle.
4  *
5  * Copyright 2007-2022 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPISD_WEIGHT_MOVER_H
10 #define IMPISD_WEIGHT_MOVER_H
11 
12 #include <IMP/isd/isd_config.h>
14 #include <IMP/algebra/VectorD.h>
15 #include <IMP/isd/Weight.h>
16 
17 IMPISD_BEGIN_NAMESPACE
18 
19 //! A mover that perturbs a Weight particle.
20 class IMPISDEXPORT WeightMover : public core::MonteCarloMover {
21  public:
22  /** Mover for weight decorator
23  \param[in] w particle
24  \param[in] radius maximum radius of displacement
25  */
26  WeightMover(Particle *w, Float radius);
27  void set_radius(Float radius) { radius_ = radius; }
28  Float get_radius() { return radius_; }
29 
30  protected:
31  virtual ModelObjectsTemp do_get_inputs() const override;
32  virtual core::MonteCarloMoverResult do_propose() override;
33  virtual void do_reject() override;
35 
36  private:
37  Weight w_;
38  algebra::VectorKD oldweights_;
39  Float radius_;
40 };
41 
42 IMPISD_END_NAMESPACE
43 
44 #endif /* IMPISD_WEIGHT_MOVER_H */
Add weights to a particle.
Definition: Weight.h:29
#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.
A more IMP-like version of the std::vector.
Definition: Vector.h:50
A base class for classes which perturb particles.
The base class for movers for Monte Carlo optimization.
Simple D vector class.
virtual MonteCarloMoverResult do_propose()=0
Implement propose_move()
A mover that perturbs a Weight particle.
Definition: WeightMover.h:20
Add weights constrained to the unit simplex to a particle.
double Float
Basic floating-point value (could be float, double...)
Definition: types.h:19
Class to handle individual particles of a Model object.
Definition: Particle.h:43
VectorD<-1 > VectorKD
Definition: VectorD.h:424
virtual ModelObjectsTemp do_get_inputs() const =0