IMP  2.3.1
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-2014 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/kernel/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 kernel::Restraint
35 #else
36  public IMP::internal::TupleRestraint<DistancePairScore>
37 #endif
38  {
39  public:
40  //! Create the distance restraint.
41  /** \param[in] score_func Scoring function for the restraint.
42  \param[in] a Pointer to first particle in distance restraint.
43  \param[in] b Pointer to second particle in distance restraint.
44  \param[in] name restraint name
45  */
46  DistanceRestraint(UnaryFunction *score_func,
49  std::string name = "DistanceRestraint %1%");
50 
51 #ifdef SWIG
52  protected:
53  double unprotected_evaluate(IMP::DerivativeAccumulator *accum) const;
56 #endif
57 };
58 
59 IMPCORE_END_NAMESPACE
60 
61 #endif /* IMPCORE_DISTANCE_RESTRAINT_H */
Class for adding derivatives from restraints to the model.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Abstract single variable functor class for score functions.
Distance restraint between two particles.
Simple XYZ decorator.
Abstract base class for all restraints.
A restraint is a term in an IMP ScoringFunction.
Class to handle individual model particles.
A Score on the distance between a pair of particles.
virtual ModelObjectsTemp do_get_inputs() const =0
Import IMP/kernel/generic.h in the namespace.