8 #ifndef IMPNPC_COMPOSITE_RESTRAINT_H
9 #define IMPNPC_COMPOSITE_RESTRAINT_H
11 #include <IMP/npc/npc_config.h>
17 IMPNPC_BEGIN_NAMESPACE
47 typedef std::pair<int, ParticleIndex> TypedParticle;
49 std::vector<TypedParticle> tps_;
50 int num_particle_types_;
55 :
Restraint(m,
"CompositeRestraint %1%"), ps_(ps),
56 num_particle_types_(0) {}
63 tps_.push_back(TypedParticle(num_particle_types_, it));
65 ++num_particle_types_;
Abstract class for scoring object(s) of type ParticleIndexPair.
A container for Singletons.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
virtual double unprotected_evaluate(DerivativeAccumulator *da) const
Return the unweighted score for the restraint.
Class for storing model, its restraints, constraints, and particles.
CompositeRestraint(Model *m, PairScore *ps)
Create with the given PairScore.
void add_type(ParticleIndexes ps)
Add all Particles of a single type.
Abstract base class for all restraints.
Score a set of particles that form a composite.
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.