9 #ifndef IMPCORE_DISTANCE_RESTRAINT_H
10 #define IMPCORE_DISTANCE_RESTRAINT_H
12 #include <IMP/core/core_config.h>
20 #include <cereal/access.hpp>
21 #include <cereal/types/base_class.hpp>
22 #include <cereal/types/polymorphic.hpp>
24 IMPCORE_BEGIN_NAMESPACE
36 #if defined(SWIG) || defined(IMP_DOXYGEN)
39 public IMP::internal::TupleRestraint<DistancePairScore>
42 typedef IMP::internal::TupleRestraint<DistancePairScore> P;
43 friend class cereal::access;
45 template<
class Archive>
void serialize(Archive &ar) {
46 ar(cereal::base_class<
47 IMP::internal::TupleRestraint<DistancePairScore> >(
this));
62 std::string name =
"DistanceRestraint %1%");
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Take Decorator, Particle or ParticleIndex.
virtual double unprotected_evaluate(DerivativeAccumulator *da) const
Return the unweighted score for the restraint.
Distance restraint between two particles.
A more IMP-like version of the std::vector.
Class for storing model, its restraints, constraints, and particles.
Ints get_index(const ParticlesTemp &particles, const Subset &subset, const Subsets &excluded)
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
A Score on the distance between a pair of particles.
Score a pair of particles based on the distance between their centers.
DistancePairScore * get_score_object() const
Get the DistancePairScore object used in this restraint.
Abstract base class for all restraints.
Abstract single variable functor class for score functions.
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.
Compile-time generic restraint and constraint support.