9 #ifndef IMPSAXS_RESTRAINT_H
10 #define IMPSAXS_RESTRAINT_H
12 #include <IMP/saxs/saxs_config.h>
24 #include <cereal/access.hpp>
25 #include <cereal/types/base_class.hpp>
27 IMPSAXS_BEGIN_NAMESPACE
77 friend class cereal::access;
78 template<
class Archive>
void serialize(Archive &ar) {
79 ar(cereal::base_class<IMP::Restraint>(
this));
80 if (std::is_base_of<cereal::detail::OutputArchiveBase, Archive>::value) {
82 profile_fitter_->get_profile());
83 ar(handler_->get_form_factor_type(), particles_, exp_profile);
87 ar(ff_type, particles_, exp_profile);
virtual RestraintInfo * get_static_info() const
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Calculate score based on fit to SAXS profile.
Storage of a model, its restraints, constraints and particles.
virtual double unprotected_evaluate(DerivativeAccumulator *da) const
Return the unweighted score for the restraint.
ParticlesTemp get_particles(Model *m, const ParticleIndexes &ps)
Get the particles from a list of indexes.
a class for fitting two profiles
A smart pointer to a reference counted object.
Restraint()
Default constructor.
Handle the profile for a set of particles, which may include rigid bodies.
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
Report key:value information on restraints.
A nullptr-initialized pointer to an IMP Object.
A shared base class to help in debugging and things.
Abstract base class for all restraints.
Fit two profiles with user-defined scoring function as a template parameter.
FormFactorType
type of the form factors for profile calculations
virtual ModelObjectsTemp do_get_inputs() const =0
A class for computing SAXS derivatives.
Class for adding derivatives from restraints to the model.
A class for profile storing and computation.
A restraint is a term in an IMP ScoringFunction.