10 #ifndef IMPISD_MARGINAL_HBOND_RESTRAINT_H
11 #define IMPISD_MARGINAL_HBOND_RESTRAINT_H
13 #include <IMP/isd/isd_config.h>
17 IMPISD_BEGIN_NAMESPACE
32 std::vector<double> volumes_;
34 void set_logsquares(
double logsquares) { logsquares_ = logsquares; }
42 :
Restraint(m,
"MarginalHBondRestraint%1%") {};
52 double get_logsquares()
const {
return logsquares_; }
54 unsigned get_number_of_contributions()
const {
return volumes_.size(); }
57 double get_probability()
const {
return exp(-unprotected_evaluate(
nullptr)); }
Class for adding derivatives from restraints to the model.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
A shared container for Pairs.
IMP::base::Vector< IMP::base::Pointer< PairContainer > > PairContainers
Import IMP/kernel/PairContainer.h in the namespace.
Abstract base class for all restraints.
A restraint is a term in an IMP ScoringFunction.
Class to handle individual model particles.
Apply a lognormal distance restraint between two particles.
virtual ModelObjectsTemp do_get_inputs() const =0
MarginalHBondRestraint(kernel::Model *m)
Create the restraint.
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.
Class for storing model, its restraints, constraints, and particles.