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