IMP
2.2.0
The Integrative Modeling Platform
IMP Mainpage
All IMP Modules
Related Pages
Modules
Namespaces
Classes
Files
Examples
Indexes
File List
File Members
WeightMover.h
Go to the documentation of this file.
1
/**
2
* \file IMP/isd/WeightMover.h
3
* \brief A mover that transforms a rigid body
4
*
5
* Copyright 2007-2014 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"
13
#include <
IMP/core/MonteCarloMover.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
public
:
26
/** Mover for weight decorator
27
\param[in] w particle
28
\param[in] radius maximum radius of displacement
29
*/
30
WeightMover
(
kernel::Particle
*w,
Float
radius);
31
void
set_radius(
Float
radius) { radius_ = radius; }
32
Float
get_radius() {
return
radius_; }
33
34
protected
:
35
virtual
kernel::ModelObjectsTemp
do_get_inputs
()
const
IMP_OVERRIDE;
36
virtual
core::MonteCarloMoverResult
do_propose
() IMP_OVERRIDE;
37
virtual
void
do_reject
() IMP_OVERRIDE;
38
IMP_OBJECT_METHODS
(
WeightMover
);
39
40
private
:
41
Weight
w_;
42
algebra::VectorKD
oldweights_;
43
Float
radius_;
44
};
45
46
IMPISD_END_NAMESPACE
47
48
#endif
/* IMPISD_WEIGHT_MOVER_H */
IMP::isd::Weight
Add weights for a set of states to a particle.
Definition:
Weight.h:24
IMP::core::MonteCarloMover::do_reject
virtual void do_reject()=0
Implement reset_proposed_move()
IMP::core::MonteCarloMoverResult
Definition:
MonteCarloMover.h:29
IMP::base::Vector
Definition:
base/Vector.h:37
IMP::core::MonteCarloMover
A base class for classes which perturb particles.
Definition:
MonteCarloMover.h:41
MonteCarloMover.h
The base class for movers for MC optimization.
VectorD.h
Simple D vector class.
IMP::core::MonteCarloMover::do_propose
virtual MonteCarloMoverResult do_propose()=0
Implement propose_move()
IMP_OBJECT_METHODS
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition:
base/object_macros.h:25
IMP::isd::WeightMover
Modify the transformation of a rigid body.
Definition:
WeightMover.h:24
IMP::kernel::Particle
Class to handle individual model particles.
Definition:
kernel/Particle.h:34
Weight.h
Add weights for a set of states to a particle.
IMP::kernel::ModelObject::do_get_inputs
virtual ModelObjectsTemp do_get_inputs() const =0
IMP::Float
double Float
Basic floating-point value (could be float, double...)
Definition:
base/types.h:20
IMP::algebra::VectorKD
VectorD<-1 > VectorKD
Definition:
VectorD.h:411