IMP  2.0.1
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-2013 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 {
24 public:
25  //! Create the dihedral restraint.
26  /** \param[in] score_func Scoring function for the restraint.
27  \param[in] p1 Pointer to first particle in dihedral restraint.
28  \param[in] p2 Pointer to second particle in dihedral restraint.
29  \param[in] p3 Pointer to third particle in dihedral restraint.
30  \param[in] p4 Pointer to fourth particle in dihedral restraint.
31  */
32  DihedralRestraint(UnaryFunction* score_func,
33  Particle* p1, Particle* p2, Particle* p3, Particle *p4);
34 
36 
37 private:
38  IMP::OwnerPointer<UnaryFunction> score_func_;
39  IMP::OwnerPointer<Particle> p_[4];
40 };
41 
42 IMPCORE_END_NAMESPACE
43 
44 #endif /* IMPCORE_DIHEDRAL_RESTRAINT_H */