MaCh3  2.4.2
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 
22  void StartFromPreviousFit(const std::string &FitName) override;
23 
26  inline void setChainLength(unsigned int L) { chainLength = L; };
27  protected:
29  inline void DoMCMCStep();
30 
32  virtual void ProposeStep()=0;
33 
35  inline void PreStepProcess();
36 
38  inline void PostStepProcess();
39 
41  virtual void DoStep()=0;
42 
44  virtual double AcceptanceProbability()=0;
45 
48  bool IsStepAccepted(const double acc_prob);
49 
51  void AcceptStep();
52 
54  inline void AdaptiveStep();
55 
57  inline void PrintProgress(const bool StepsPrint = true);
58 
61 
63  bool accept;
64 
66  unsigned int chainLength;
67 
69  bool anneal;
71  double AnnealTemp;
72 };
Base class for implementing fitting algorithms.
Definition: FitterBase.h:26
Manager * fitMan
The manager for configuration handling.
Definition: FitterBase.h:108
Base class for MCMC fitting algorithms.
Definition: MCMCBase.h:8
void RunMCMC() override
Actual implementation of MCMC fitting algorithm.
Definition: MCMCBase.cpp:32
virtual ~MCMCBase()=default
Destructor.
MCMCBase(Manager *const fitMan)
Constructor.
Definition: MCMCBase.cpp:6
bool accept
Accept.
Definition: MCMCBase.h:63
bool anneal
simulated annealing
Definition: MCMCBase.h:69
unsigned int chainLength
number of steps in chain
Definition: MCMCBase.h:66
void AcceptStep()
Accept a step.
Definition: MCMCBase.cpp:206
double AnnealTemp
simulated annealing temperature
Definition: MCMCBase.h:71
void StartFromPreviousFit(const std::string &FitName) override
Allow to start from previous fit/chain.
Definition: MCMCBase.cpp:149
bool out_of_bounds
Do we reject based on hitting boundaries in systs.
Definition: MCMCBase.h:60
virtual double AcceptanceProbability()=0
Step acceptance probability.
bool IsStepAccepted(const double acc_prob)
Is step accepted?
Definition: MCMCBase.cpp:188
void DoMCMCStep()
The full StartStep->DoStep->EndStep chain.
Definition: MCMCBase.cpp:80
void PreStepProcess()
Actions before step proposal [start stopwatch].
Definition: MCMCBase.cpp:91
virtual void ProposeStep()=0
Propose a step.
void PrintProgress(const bool StepsPrint=true)
Print the progress.
Definition: MCMCBase.cpp:127
virtual void DoStep()=0
The MCMC step proposal and acceptance.
void PostStepProcess()
Actions after step proposal [end stopwatch, fill tree].
Definition: MCMCBase.cpp:104
void AdaptiveStep()
Adaptive MCMC step.
Definition: MCMCBase.cpp:176
void setChainLength(unsigned int L)
Set how long chain should be.
Definition: MCMCBase.h:26
The manager class is responsible for managing configurations and settings.
Definition: Manager.h:16