13 #ifndef IMPCONTAINER_PREDICATE_QUADS_RESTRAINT_H
14 #define IMPCONTAINER_PREDICATE_QUADS_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, kernel::ParticleIndexQuads> lists_;
38 boost::unordered_map<int, base::PointerMember<QuadScore> > scores_;
39 mutable std::size_t input_version_;
40 bool error_on_unknown_;
41 void update_lists_if_necessary()
const;
45 QuadContainerAdaptor input,
47 "PredicateQuadsRestraint %1%");
64 return lists_.find(predicate_value)->second;
74 Restraints do_create_current_decomposition() const;
77 IMPCONTAINER_END_NAMESPACE
Import IMP/kernel/QuadPredicate.h in the namespace.
Abstract class for scoring object(s) of type ParticleQuad.
kernel::ParticleIndexQuads get_indexes(int predicate_value) const
Various important functionality for implementing decorators.
A smart pointer to a ref-counted Object that is a class member.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Applies a QuadScore to each Quad in a list based on a predicate.
IMP::base::Vector< IMP::base::Pointer< Restraint > > Restraints
Abstract predicate function.
virtual void do_add_score_and_derivatives(ScoreAccumulator sa) const
void set_is_complete(bool tf)
Class for adding up scores during ScoringFunction evaluation.
A restraint is a term in an IMP ScoringFunction.
virtual ModelObjectsTemp do_get_inputs() const =0
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.