1 /*  -*- c++ -*-  */
2 #ifndef MODIFIERUPDATEBETAANDPUSH_H
3 #define MODIFIERUPDATEBETAANDPUSH_H
4 
5 #include "Modifier.h"
6 #include "ShadowHMCIntegrator.h"
7 
8 namespace ProtoMol {
9 
10   //_________________________________________________________________ ModifierUpdateBetaAndPush
11   class ModifierUpdateBetaAndPush : public Modifier {
12     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13     // Constructors, destructors, assignment
14     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15   public:
ModifierUpdateBetaAndPush(ShadowHMCIntegrator * i)16     ModifierUpdateBetaAndPush(ShadowHMCIntegrator* i):Modifier(Constant::MAX_INT-100),myTheIntegrator(i){}
17 
18     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19     // From class Modifier
20     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21   public:
isInternal()22     virtual bool isInternal() const {return true;}
23   private:
doExecute()24     virtual void doExecute(){
25       myTheIntegrator->updateBeta();
26       myTheIntegrator->pushShadowHistory();
27     }
doPrint()28     virtual std::string doPrint()const{return std::string("UpdateBetaAndPush");};
29 
30     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31     // My data members
32     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33   private:
34     ShadowHMCIntegrator* myTheIntegrator;
35   };
36 
37 }
38 #endif /* MODIFIER_H */
39