IMP logo
IMP Reference Guide  2.8.0
The Integrative Modeling Platform
DistanceRestraint.h
Go to the documentation of this file.
1 /**
2  * \file IMP/core/DistanceRestraint.h
3  * \brief Distance restraint between two particles.
4  *
5  * Copyright 2007-2017 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPCORE_DISTANCE_RESTRAINT_H
10 #define IMPCORE_DISTANCE_RESTRAINT_H
11 
12 #include <IMP/core/core_config.h>
13 #include "DistancePairScore.h"
14 #include "XYZ.h"
15 #include <IMP/generic.h>
16 
17 #include <IMP/Restraint.h>
18 
19 #include <iostream>
20 
21 IMPCORE_BEGIN_NAMESPACE
22 
23 //! Distance restraint between two particles
24 /**
25  \note If the particles are closer than a certain distance, then
26  the contributions to the derivatives are set to 0.
27 
28  \see PairRestraint
29  \see DistancePairScore
30  \see SphereDistancePairScore
31  */
32 class IMPCOREEXPORT DistanceRestraint :
33 #if defined(SWIG) || defined(IMP_DOXYGEN)
34  public Restraint
35 #else
36  public IMP::internal::TupleRestraint<DistancePairScore>
37 #endif
38  {
39  public:
40  //! Create the distance restraint.
41  /** \param[in] m Model.
42  \param[in] score_func Scoring function for the restraint.
43  \param[in] a First particle in distance restraint.
44  \param[in] b Second particle in distance restraint.
45  \param[in] name restraint name
46  */
47  DistanceRestraint(Model *m, UnaryFunction *score_func,
50  std::string name = "DistanceRestraint %1%");
51 
52 #ifdef SWIG
53  protected:
54  double unprotected_evaluate(IMP::DerivativeAccumulator *accum) const;
57 #endif
58 };
59 
60 IMPCORE_END_NAMESPACE
61 
62 #endif /* IMPCORE_DISTANCE_RESTRAINT_H */
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Distance restraint between two particles.
A more IMP-like version of the std::vector.
Definition: Vector.h:39
Simple XYZ decorator.
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:72
A Score on the distance between a pair of particles.
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
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.