IMP  2.3.0
The Integrative Modeling Platform
ImproperSingletonScore.h
Go to the documentation of this file.
1 /**
2  * \file IMP/atom/ImproperSingletonScore.h
3  * \brief A score on the deviation of an improper angle from ideality.
4  *
5  * Copyright 2007-2014 IMP Inventors. All rights reserved.
6  */
7 
8 #ifndef IMPATOM_IMPROPER_SINGLETON_SCORE_H
9 #define IMPATOM_IMPROPER_SINGLETON_SCORE_H
10 
11 #include <IMP/atom/atom_config.h>
12 #include "bond_decorators.h"
13 #include <IMP/SingletonScore.h>
14 #include <IMP/UnaryFunction.h>
15 #include <IMP/base/Pointer.h>
16 
17 IMPATOM_BEGIN_NAMESPACE
18 
19 //! Score the improper dihedral based on a UnaryFunction,
20 /** This scores the improper dihedral using information stored in its
21  Dihedral decorator. The score is based on the difference between the
22  stored ideal improper angle and the actual angle and scaled by the
23  stiffness. That is stiffness * (improper_angle-ideal_value). The
24  difference is in radians between -pi and +pi; it is the shortest
25  distance from one angle to the other.
26 
27  Just as for regular dihedral angles, the improper angle is defined
28  as the angle between the plane in which the first three atoms lie and
29  the plane in which the last three atoms lie.
30 
31  \note The multiplicity of the the Dihedral is not used.
32 
33  \see CHARMMTopology::add_impropers(), Dihedral.
34  */
35 class IMPATOMEXPORT ImproperSingletonScore : public SingletonScore {
37 
38  public:
39  //! Use f to penalize deviations in angle
47  ;
48 };
49 
51 
52 IMPATOM_END_NAMESPACE
53 
54 #endif /* IMPATOM_IMPROPER_SINGLETON_SCORE_H */
Class for adding derivatives from restraints to the model.
A smart pointer to a ref-counted Object that is a class member.
Definition: Pointer.h:147
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Import IMP/kernel/UnaryFunction.h in the namespace.
Abstract single variable functor class for score functions.
Contains decorators for a bond.
virtual double evaluate_index(kernel::Model *m, kernel::ParticleIndex vt, DerivativeAccumulator *da) const
Compute the score and the derivative if needed.
virtual ModelObjectsTemp do_get_inputs(kernel::Model *m, const ParticleIndexes &pis) const
Score the improper dihedral based on a UnaryFunction,.
Import IMP/kernel/SingletonScore.h in the namespace.
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing sets of objects.
Definition: object_macros.h:52
A nullptr-initialized pointer to an IMP Object.
Abstract class for scoring object(s) of type Particle.
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
#define IMP_SINGLETON_SCORE_METHODS(Name)
Class for storing model, its restraints, constraints, and particles.
Definition: kernel/Model.h:73