13 #ifndef IMPCONTAINER_PREDICATE_SINGLETONS_RESTRAINT_H
14 #define IMPCONTAINER_PREDICATE_SINGLETONS_RESTRAINT_H
16 #include <IMP/container/container_config.h>
17 #include <boost/unordered_map.hpp>
23 IMPCONTAINER_BEGIN_NAMESPACE
37 mutable boost::unordered_map<int, ParticleIndexes> lists_;
38 boost::unordered_map<int, PointerMember<SingletonScore> > scores_;
39 mutable std::size_t input_version_;
40 bool error_on_unknown_;
41 void update_lists_if_necessary()
const;
47 "PredicateSingletonsRestraint %1%");
64 return lists_.find(predicate_value)->second;
74 Restraints do_create_current_decomposition() const;
77 IMPCONTAINER_END_NAMESPACE
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
virtual void do_add_score_and_derivatives(ScoreAccumulator sa) const
A restraint should override this to compute the score and derivatives.
Define SingletonPredicate.
Abstract class for scoring object(s) of type ParticleIndex.
A smart pointer to a ref-counted Object that is a class member.
Class for adding up scores during ScoringFunction evaluation.
void set_is_complete(bool tf)
Applies a SingletonScore to each Singleton in a list based on a predicate.
Abstract predicate function.
ParticleIndexes get_indexes(int predicate_value) const
virtual ModelObjectsTemp do_get_inputs() const =0
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
A restraint is a term in an IMP ScoringFunction.