MaCh3  2.6.0
Reference Guide
MCMCBase.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Fitters/FitterBase.h"
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 
26  void setChainLength(unsigned int L) { chainLength = L; };
27  protected:
29  void DoMCMCStep();
30 
32  virtual void ProposeStep()=0;
33 
35  void PreStepProcess();
36 
38  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  void AdaptiveStep();
55 
58  void PrintProgress(const bool StepsPrint = true);
59 
61  void CheckAcceptanceRates();
62 
64  std::unique_ptr<MulticanonicalMCMCHandler> multicanonicalHandler;
65 
68 
70  bool accept;
71 
73  unsigned int chainLength;
74 
76  bool anneal;
78  double AnnealTemp;
79 
82 };
Base class for implementing fitting algorithms.
Definition: FitterBase.h:29
Manager * fitMan
The manager for configuration handling.
Definition: FitterBase.h:113
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:64
MCMCBase(Manager *const fitMan)
Constructor.
Definition: MCMCBase.cpp:6
bool accept
Accept.
Definition: MCMCBase.h:70
bool anneal
simulated annealing
Definition: MCMCBase.h:76
void RunMCMC() final
Actual implementation of MCMC fitting algorithm.
Definition: MCMCBase.cpp:32
unsigned int chainLength
number of steps in chain
Definition: MCMCBase.h:73
void StartFromPreviousFit(const std::string &FitName) final
Allow to start from previous fit/chain.
Definition: MCMCBase.cpp:197
void AcceptStep()
Accept a step.
Definition: MCMCBase.cpp:252
double AnnealTemp
simulated annealing temperature
Definition: MCMCBase.h:78
bool out_of_bounds
Do we reject based on hitting boundaries in systs.
Definition: MCMCBase.h:67
virtual double AcceptanceProbability()=0
Step acceptance probability.
bool IsStepAccepted(const double acc_prob)
Is step accepted?
Definition: MCMCBase.cpp:234
void DoMCMCStep()
The full StartStep->DoStep->EndStep chain.
Definition: MCMCBase.cpp:102
void PreStepProcess()
Actions before step proposal [start stopwatch].
Definition: MCMCBase.cpp:113
bool multicanonical
multi-canonical method toggle on/off
Definition: MCMCBase.h:81
virtual void ProposeStep()=0
Propose a step.
void CheckAcceptanceRates()
Check the acceptance rates.
Definition: MCMCBase.cpp:173
void PrintProgress(const bool StepsPrint=true)
Print the progress.
Definition: MCMCBase.cpp:150
virtual void DoStep()=0
The MCMC step proposal and acceptance.
void PostStepProcess()
Actions after step proposal [end stopwatch, fill tree].
Definition: MCMCBase.cpp:127
void AdaptiveStep()
Adaptive MCMC step.
Definition: MCMCBase.cpp:222
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