IMP logo
IMP Reference Guide  develop.5651aa123e,2024/07/23
The Integrative Modeling Platform
JeffreysRestraint.h
Go to the documentation of this file.
1 /**
2  * \file IMP/isd/JeffreysRestraint.h
3  * \brief A restraint on a scale parameter.
4  *
5  * Copyright 2007-2023 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPISD_JEFFREYS_RESTRAINT_H
10 #define IMPISD_JEFFREYS_RESTRAINT_H
11 
12 #include <IMP/isd/isd_config.h>
13 #include <IMP/SingletonScore.h>
14 #include <IMP/Restraint.h>
15 #include <cereal/access.hpp>
16 #include <cereal/types/base_class.hpp>
17 
18 IMPISD_BEGIN_NAMESPACE
19 
20 //! Score a Scale particle with log(scale)
21 //! the probability is 1/scale
22 
23 class IMPISDEXPORT JeffreysRestraint : public Restraint {
24  ParticleIndex pi_;
25 
26  friend class cereal::access;
27  template<class Archive> void serialize(Archive &ar) {
28  ar(cereal::base_class<Restraint>(this), pi_);
29  }
31 
32  public:
33  //! Create the restraint.
35 
37 
39  const override;
40  virtual IMP::ModelObjectsTemp do_get_inputs() const override;
41 
43 
44  /* call for probability */
45  virtual double get_probability() const {
46  return exp(-unprotected_evaluate(nullptr));
47  }
48 };
49 
50 IMPISD_END_NAMESPACE
51 
52 #endif /* IMPISD_JEFFREYS_RESTRAINT_H */
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
virtual double unprotected_evaluate(DerivativeAccumulator *da) const
Return the unweighted score for the restraint.
A more IMP-like version of the std::vector.
Definition: Vector.h:50
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
Definition: object_macros.h:95
Define SingletonScore.
Class to handle individual particles of a Model object.
Definition: Particle.h:43
Abstract base class for all restraints.
virtual ModelObjectsTemp do_get_inputs() const =0
Class for adding derivatives from restraints to the model.
A restraint is a term in an IMP ScoringFunction.
Definition: Restraint.h:56