MaCh3  2.8.0
Reference Guide
MCMCBase.h
Go to the documentation of this file.
1 #pragma once
2 
8 class MCMCBase : public FitterBase {
9  public:
12  MCMCBase(Manager * const fitMan);
13 
15  virtual ~MCMCBase() = default;
16 
18  void RunMCMC() final;
19 
22  void StartFromPreviousFit(const std::string &FitName) final;
23 
25  virtual std::string GetFancyName() const final;
26 
29  void setChainLength(unsigned int L) { chainLength = L; };
30  protected:
32  void DoMCMCStep();
33 
35  virtual void ProposeStep()=0;
36 
38  void PreStepProcess();
39 
41  void PostStepProcess();
42 
44  virtual void DoStep()=0;
45 
47  virtual double AcceptanceProbability()=0;
48 
51  bool IsStepAccepted(const double acc_prob);
52 
54  void AcceptStep();
55 
57  void AdaptiveStep();
58 
61  void PrintProgress(const bool StepsPrint = true);
62 
64  void CheckAcceptanceRates();
65 
67  std::unique_ptr<MulticanonicalMCMCHandler> multicanonicalHandler;
68 
71 
73  bool accept;
74 
76  unsigned int chainLength;
77 
79  bool anneal;
81  double AnnealTemp;
82 
85 };
Base class for implementing fitting algorithms.
Definition: FitterBase.h:29
Manager * fitMan
The manager for configuration handling.
Definition: FitterBase.h:120
Base class for MCMC fitting algorithms.
Definition: MCMCBase.h:8
virtual ~MCMCBase()=default
Destructor.
std::unique_ptr< MulticanonicalMCMCHandler > multicanonicalHandler
multicanonical handler for umbrella sampling
Definition: MCMCBase.h:67
MCMCBase(Manager *const fitMan)
Constructor.
Definition: MCMCBase.cpp:6
bool accept
Accept.
Definition: MCMCBase.h:73
bool anneal
simulated annealing
Definition: MCMCBase.h:79
void RunMCMC() final
Actual implementation of MCMC fitting algorithm.
Definition: MCMCBase.cpp:32
unsigned int chainLength
number of steps in chain
Definition: MCMCBase.h:76
void StartFromPreviousFit(const std::string &FitName) final
Allow to start from previous fit/chain.
Definition: MCMCBase.cpp:195
void AcceptStep()
Accept a step.
Definition: MCMCBase.cpp:250
double AnnealTemp
simulated annealing temperature
Definition: MCMCBase.h:81
virtual std::string GetFancyName() const final
This name is to get include some special algorithm extensions.
Definition: MCMCBase.cpp:263
bool out_of_bounds
Do we reject based on hitting boundaries in systs.
Definition: MCMCBase.h:70
virtual double AcceptanceProbability()=0
Step acceptance probability.
bool IsStepAccepted(const double acc_prob)
Is step accepted?
Definition: MCMCBase.cpp:232
void DoMCMCStep()
The full StartStep->DoStep->EndStep chain.
Definition: MCMCBase.cpp:101
void PreStepProcess()
Actions before step proposal [start stopwatch].
Definition: MCMCBase.cpp:112
bool multicanonical
multi-canonical method toggle on/off
Definition: MCMCBase.h:84
virtual void ProposeStep()=0
Propose a step.
void CheckAcceptanceRates()
Check the acceptance rates.
Definition: MCMCBase.cpp:172
void PrintProgress(const bool StepsPrint=true)
Print the progress.
Definition: MCMCBase.cpp:149
virtual void DoStep()=0
The MCMC step proposal and acceptance.
void PostStepProcess()
Actions after step proposal [end stopwatch, fill tree].
Definition: MCMCBase.cpp:126
void AdaptiveStep()
Adaptive MCMC step.
Definition: MCMCBase.cpp:220
void setChainLength(unsigned int L)
Set how long chain should be.
Definition: MCMCBase.h:29
The manager class is responsible for managing configurations and settings.
Definition: Manager.h:17