IMP logo
IMP Reference Guide  2.5.0
The Integrative Modeling Platform
DihedralRestraint.h
Go to the documentation of this file.
1 /**
2  * \file IMP/core/DihedralRestraint.h
3  * \brief Dihedral restraint between four particles.
4  *
5  * Copyright 2007-2015 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPCORE_DIHEDRAL_RESTRAINT_H
10 #define IMPCORE_DIHEDRAL_RESTRAINT_H
11 
12 #include <IMP/core/core_config.h>
13 
14 #include <IMP/UnaryFunction.h>
15 #include <IMP/Restraint.h>
16 #include <IMP/Particle.h>
17 #include <IMP/generic.h>
18 
19 IMPCORE_BEGIN_NAMESPACE
20 
21 //! Dihedral restraint between four particles
22 class IMPCOREEXPORT DihedralRestraint : public Restraint {
23  public:
24  //! Create the dihedral restraint.
25  /** \param[in] m Model.
26  \param[in] score_func Scoring function for the restraint.
27  \param[in] p1 First particle in dihedral restraint.
28  \param[in] p2 Second particle in dihedral restraint.
29  \param[in] p3 Third particle in dihedral restraint.
30  \param[in] p4 Fourth particle in dihedral restraint.
31  */
32  DihedralRestraint(Model *m, UnaryFunction* score_func,
37 
38 #ifndef IMP_DOXYGEN
39  IMPCORE_DEPRECATED_METHOD_DECL(2.5)
40  DihedralRestraint(UnaryFunction* score_func, Particle* p1,
41  Particle* p2, Particle* p3,
42  Particle* p4);
43 #endif
44 
45  virtual double unprotected_evaluate(IMP::DerivativeAccumulator* accum)
46  const IMP_OVERRIDE;
49 
50  private:
52  ParticleIndex p_[4];
53 };
54 
55 IMPCORE_END_NAMESPACE
56 
57 #endif /* IMPCORE_DIHEDRAL_RESTRAINT_H */
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Single variable function.
Dihedral restraint between four particles.
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:72
A smart pointer to a ref-counted Object that is a class member.
Definition: Pointer.h:146
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
Class to handle individual model particles.
Definition: Particle.h:37
Abstract base class for all restraints.
Abstract single variable functor class for score functions.
Definition: UnaryFunction.h:25
virtual ModelObjectsTemp do_get_inputs() const =0
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
Class for adding derivatives from restraints to the model.
A restraint is a term in an IMP ScoringFunction.
Definition: Restraint.h:52
Various important functionality for implementing decorators.