MaCh3  2.2.3
Reference Guide
MCMCBase.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Fitters/FitterBase.h"
4 
8 class MCMCBase : public FitterBase {
9  public:
12  MCMCBase(manager * const fitMan);
13 
15  virtual ~MCMCBase() = default;
16 
18  void RunMCMC() override;
19 
23  void StartFromPreviousFit(const std::string &FitName) override;
24 
27  inline void setChainLength(unsigned int L) { chainLength = L; };
28  protected:
30  inline void DoMCMCStep();
31 
33  virtual void ProposeStep()=0;
34 
36  inline void PreStepProcess();
37 
39  inline void PostStepProcess();
40 
42  virtual void DoStep()=0;
43 
45  virtual double AcceptanceProbability()=0;
46 
49  bool IsStepAccepted(const double acc_prob);
50 
52  void AcceptStep();
53 
55  inline void AdaptiveStep();
56 
58  inline void PrintProgress();
59 
62 
64  bool accept;
65 
67  unsigned int chainLength;
68 
70  bool anneal;
72  double AnnealTemp;
73 };
Base class for implementing fitting algorithms.
Definition: FitterBase.h:23
manager * fitMan
The manager.
Definition: FitterBase.h:110
Base class for MCMC fitting algorithms.
Definition: MCMCBase.h:8
void RunMCMC() override
Actual implementation of MCMC fitting algorithm.
Definition: MCMCBase.cpp:28
virtual ~MCMCBase()=default
Destructor.
bool accept
Accept.
Definition: MCMCBase.h:64
bool anneal
simulated annealing
Definition: MCMCBase.h:70
unsigned int chainLength
number of steps in chain
Definition: MCMCBase.h:67
void AcceptStep()
Accept a step.
Definition: MCMCBase.cpp:178
double AnnealTemp
simulated annealing temperature
Definition: MCMCBase.h:72
void StartFromPreviousFit(const std::string &FitName) override
Allow to start from previous fit/chain.
Definition: MCMCBase.cpp:121
void PrintProgress()
Print the progress.
Definition: MCMCBase.cpp:102
bool out_of_bounds
Do we reject based on hitting boundaries in systs.
Definition: MCMCBase.h:61
virtual double AcceptanceProbability()=0
Step acceptance probability.
bool IsStepAccepted(const double acc_prob)
Is step accepted?
Definition: MCMCBase.cpp:160
void DoMCMCStep()
The full StartStep->DoStep->EndStep chain.
Definition: MCMCBase.cpp:60
void PreStepProcess()
Actions before step proposal [start stopwatch].
Definition: MCMCBase.cpp:71
MCMCBase(manager *const fitMan)
Constructor.
Definition: MCMCBase.cpp:6
virtual void ProposeStep()=0
Propose a step.
virtual void DoStep()=0
The MCMC step proposal and acceptance.
void PostStepProcess()
Actions after step proposal [end stopwatch, fill tree].
Definition: MCMCBase.cpp:84
void AdaptiveStep()
Adaptive MCMC step.
Definition: MCMCBase.cpp:148
void setChainLength(unsigned int L)
Set how long chain should be.
Definition: MCMCBase.h:27
The manager class is responsible for managing configurations and settings.
Definition: Manager.h:16