IMP logo
IMP Reference Guide  2.20.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-2022 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 
39  const override;
40  virtual IMP::ModelObjectsTemp do_get_inputs() const override;
42 
43  private:
45  ParticleIndex p_[4];
46 };
47 
48 IMPCORE_END_NAMESPACE
49 
50 #endif /* IMPCORE_DIHEDRAL_RESTRAINT_H */
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Take Decorator, Particle or ParticleIndex.
Single variable function.
virtual double unprotected_evaluate(DerivativeAccumulator *da) const
Return the unweighted score for the restraint.
Dihedral restraint between four particles.
A more IMP-like version of the std::vector.
Definition: Vector.h:42
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
A smart pointer to a ref-counted Object that is a class member.
Definition: Pointer.h:143
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
Abstract base class for all restraints.
Abstract single variable functor class for score functions.
Definition: UnaryFunction.h:27
virtual ModelObjectsTemp do_get_inputs() const =0
Class for adding derivatives from restraints to the model.
A restraint is a term in an IMP ScoringFunction.
Definition: Restraint.h:56
Compile-time generic restraint and constraint support.