10 #ifndef IMPISD_MARGINAL_NOE_RESTRAINT_H
11 #define IMPISD_MARGINAL_NOE_RESTRAINT_H
13 #include <IMP/isd/isd_config.h>
17 IMPISD_BEGIN_NAMESPACE
32 std::vector<double> volumes_;
34 void set_log_gammahat(
double loggammahat) { loggammahat_ = loggammahat; }
36 void set_SS(
double SS) { SS_ = SS; }
44 :
Restraint(m,
"MarginalNOERestraint%1%") {};
54 double get_log_gammahat()
const {
return loggammahat_; }
57 double get_SS()
const {
return SS_; }
59 unsigned get_number_of_contributions()
const {
return volumes_.size(); }
62 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.
MarginalNOERestraint(kernel::Model *m)
Create the restraint.
virtual ModelObjectsTemp do_get_inputs() const =0
Apply an NOE distance restraint between two particles.
#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.