IMP logo
IMP Reference Guide  2.19.0
The Integrative Modeling Platform
ChecksScoreState.h
Go to the documentation of this file.
1 /**
2  * \file IMP/core/ChecksScoreState.h \brief Turn checks on and off.
3  *
4  * Copyright 2007-2022 IMP Inventors. All rights reserved.
5  */
6 
7 #ifndef IMPCORE_CHECKS_SCORE_STATE_H
8 #define IMPCORE_CHECKS_SCORE_STATE_H
9 
10 #include <IMP/core/core_config.h>
11 #include <IMP/macros.h>
12 #include <IMP/Particle.h>
13 #include <IMP/ScoreState.h>
14 #include <cereal/access.hpp>
15 #include <cereal/types/base_class.hpp>
16 
17 IMPCORE_BEGIN_NAMESPACE
18 
19 /** Turn checks on with a given probability each evaluate call.
20  */
21 class IMPCOREEXPORT ChecksScoreState : public ScoreState {
22  double probability_;
23  unsigned int num_checked_;
24 
25  friend class cereal::access;
26  template<class Archive> void serialize(Archive &ar) {
27  ar(cereal::base_class<ScoreState>(this), probability_, num_checked_);
28  }
30 
31  public:
32  ChecksScoreState(Model *m, double probability);
33  ChecksScoreState() {}
34 
35  unsigned int get_number_of_checked() const { return num_checked_; }
36 
37  virtual void do_before_evaluate() override;
38  virtual void do_after_evaluate(DerivativeAccumulator *da) override;
39  virtual ModelObjectsTemp do_get_outputs() const override;
40  virtual ModelObjectsTemp do_get_inputs() const override;
42 };
43 
44 IMPCORE_END_NAMESPACE
45 
46 #endif /* IMPCORE_CHECKS_SCORE_STATE_H */
virtual void do_before_evaluate()=0
Update the state given the current state of the model.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Various general useful macros for IMP.
virtual void do_after_evaluate(DerivativeAccumulator *accpt)=0
Do any necessary updates after the model score is calculated.
A more IMP-like version of the std::vector.
Definition: Vector.h:42
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
ScoreStates maintain invariants in the Model.
Definition: ScoreState.h:56
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
Definition: object_macros.h:95
Shared score state.
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
virtual ModelObjectsTemp do_get_outputs() const =0
virtual ModelObjectsTemp do_get_inputs() const =0
Class for adding derivatives from restraints to the model.