BAT  0.9.4
The Bayesian analysis toolkit
 All Classes Namespaces Functions Variables Enumerations
BCEngineMCMC Class Reference

An engine class for Markov Chain Monte Carlo. More...

#include <BCEngineMCMC.h>

Collaboration diagram for BCEngineMCMC:

Public Types

Enumerators
enum  Precision { kLow, kMedium, kHigh, kVeryHigh }
 

Public Member Functions

void WriteMarkovChain (bool flag)
 
Constructors and destructors
 BCEngineMCMC ()
 
 BCEngineMCMC (const BCEngineMCMC &enginemcmc)
 
virtual ~BCEngineMCMC ()
 
Assignment operators
BCEngineMCMCoperator= (const BCEngineMCMC &engineMCMC)
 
Getters
unsigned MCMCGetNChains () const
 
unsigned MCMCGetNLag () const
 
const std::vector< unsigned > & MCMCGetNIterations () const
 
unsigned MCMCGetCurrentIteration () const
 
unsigned MCMCGetCurrentChain () const
 
unsigned MCMCGetNIterationsConvergenceGlobal () const
 
bool MCMCGetFlagConvergenceGlobal () const
 
unsigned MCMCGetNIterationsMax () const
 
unsigned MCMCGetNIterationsRun () const
 
unsigned MCMCGetNIterationsPreRunMin () const
 
unsigned MCMCGetNIterationsUpdate () const
 
unsigned MCMCGetNIterationsUpdateMax () const
 
std::vector< int > MCMCGetNTrialsTrue () const
 
int MCMCGetNTrials () const
 
const std::vector< double > & MCMCGetprobMean () const
 
const std::vector< double > & MCMCGetVariance () const
 
const std::vector< double > & MCMCGetTrialFunctionScaleFactor () const
 
std::vector< double > MCMCGetTrialFunctionScaleFactor (unsigned ichain) const
 
double MCMCGetTrialFunctionScaleFactor (unsigned ichain, unsigned ipar)
 
const std::vector< double > & MCMCGetx () const
 
std::vector< double > MCMCGetx (unsigned ichain)
 
double MCMCGetx (unsigned ichain, unsigned ipar) const
 
const std::vector< double > & MCMCGetLogProbx () const
 
double MCMCGetLogProbx (unsigned ichain)
 
int MCMCGetPhase () const
 
const std::vector< double > & MCMCGetMaximumPoints () const
 
std::vector< double > MCMCGetMaximumPoint (unsigned i) const
 
const std::vector< double > & MCMCGetMaximumLogProb () const
 
int MCMCGetFlagInitialPosition () const
 
double MCMCGetRValueCriterion () const
 
double MCMCGetRValueParametersCriterion () const
 
double MCMCGetRValue () const
 
double MCMCGetRValueParameters (unsigned i)
 
bool MCMCGetRValueStrict () const
 
bool MCMCGetFlagRun () const
 
TTree * MCMCGetMarkovChainTree (unsigned i)
 
BCH1DMCMCGetH1Marginalized (unsigned i)
 
BCH2DMCMCGetH2Marginalized (unsigned i, unsigned j)
 
const BCParameterSetGetParameters () const
 
BCParameterGetParameter (int index) const
 
BCParameterGetParameter (const char *name) const
 
unsigned int GetNParameters () const
 
unsigned int GetNFixedParameters ()
 
unsigned int GetNFreeParameters ()
 
const std::vector< double > & GetBestFitParametersMarginalized () const
 
Setters
void MCMCSetTrialFunctionScaleFactor (std::vector< double > scale)
 
void MCMCSetNChains (unsigned n)
 
void MCMCSetNLag (unsigned n)
 
void MCMCSetNIterationsMax (unsigned n)
 
void MCMCSetNIterationsRun (unsigned n)
 
void MCMCSetNIterationsPreRunMin (unsigned n)
 
void MCMCSetNIterationsUpdate (unsigned n)
 
void MCMCSetNIterationsUpdateMax (unsigned n)
 
void MCMCSetMinimumEfficiency (double efficiency)
 
void MCMCSetMaximumEfficiency (double efficiency)
 
void MCMCSetRandomSeed (unsigned seed)
 
void MCMCSetWriteChainToFile (bool flag)
 
void MCMCSetWritePreRunToFile (bool flag)
 
void MCMCSetInitialPositions (const std::vector< double > &x0s)
 
void MCMCSetInitialPositions (std::vector< std::vector< double > > x0s)
 
void MCMCSetFlagInitialPosition (int flag)
 
void MCMCSetFlagOrderParameters (bool flag)
 
void MCMCSetFlagFillHistograms (bool flag)
 
void MCMCSetFlagPreRun (bool flag)
 
void MCMCSetRValueCriterion (double r)
 
void MCMCSetRValueParametersCriterion (double r)
 
void MCMCSetRValueStrict (bool strict=true)
 
void MCMCSetMarkovChainTrees (const std::vector< TTree * > &trees)
 
void MCMCInitializeMarkovChainTrees ()
 
int SetMarginalized (unsigned index, TH1D *h)
 
int SetMarginalized (unsigned index1, unsigned index2, TH2D *h)
 
void MCMCSetValuesDefault ()
 
void MCMCSetValuesQuick ()
 
void MCMCSetValuesDetail ()
 
void MCMCSetPrecision (BCEngineMCMC::Precision precision)
 
void SetNbins (unsigned int nbins)
 
Miscellaneous methods
void Copy (const BCEngineMCMC &enginemcmc)
 
virtual int AddParameter (const char *name, double min, double max, const char *latexname="")
 
virtual int AddParameter (BCParameter *parameter)
 
virtual void MCMCTrialFunction (unsigned ichain, std::vector< double > &x)
 
virtual double MCMCTrialFunctionSingle (unsigned ichain, unsigned ipar)
 
bool MCMCGetProposalPointMetropolis (unsigned chain, std::vector< double > &x)
 
bool MCMCGetProposalPointMetropolis (unsigned chain, unsigned parameter, std::vector< double > &x)
 
bool MCMCGetNewPointMetropolis (unsigned chain=0)
 
bool MCMCGetNewPointMetropolis (unsigned chain, unsigned parameter)
 
void MCMCInChainCheckMaximum ()
 
void MCMCInChainUpdateStatistics ()
 
void MCMCInChainFillHistograms ()
 
void MCMCInChainTestConvergenceAllChains ()
 
void MCMCInChainWriteChains ()
 
virtual double LogEval (const std::vector< double > &parameters)
 
int MCMCMetropolis ()
 
int MCMCMetropolisPreRun ()
 
void MCMCResetRunStatistics ()
 
void MCMCInitializeMarkovChains ()
 
int MCMCInitialize ()
 
virtual void ResetResults ()
 
void ClearParameters (bool hard=false)
 
virtual void MCMCIterationInterface ()
 
virtual void MCMCUserIterationInterface ()
 
virtual void MCMCCurrentPointInterface (std::vector< double > &, int, bool)
 

Protected Attributes

BCParameterSet fParameters
 
unsigned fMCMCNChains
 
unsigned fMCMCNLag
 
std::vector< unsigned > fMCMCNIterations
 
int fMCMCCurrentIteration
 
int fMCMCCurrentChain
 
unsigned fMCMCNIterationsUpdate
 
unsigned fMCMCNIterationsUpdateMax
 
int fMCMCNIterationsConvergenceGlobal
 
bool fMCMCFlagConvergenceGlobal
 
unsigned fMCMCNIterationsMax
 
unsigned fMCMCNIterationsRun
 
unsigned fMCMCNIterationsPreRunMin
 
std::vector< int > fMCMCNTrialsTrue
 
unsigned fMCMCNTrials
 
bool fMCMCFlagWriteChainToFile
 
bool fMCMCFlagWritePreRunToFile
 
std::vector< double > fMCMCTrialFunctionScaleFactor
 
std::vector< double > fMCMCTrialFunctionScaleFactorStart
 
bool fMCMCFlagPreRun
 
bool fMCMCFlagRun
 
std::vector< double > fMCMCInitialPosition
 
std::vector< double > fMCMCEfficiencies
 
double fMCMCEfficiencyMin
 
double fMCMCEfficiencyMax
 
int fMCMCFlagInitialPosition
 
bool fMCMCFlagOrderParameters
 
int fMCMCPhase
 
std::vector< double > fMCMCx
 
std::vector< double > fMCMCxMax
 
std::vector< double > fMCMCxMean
 
std::vector< double > fMCMCxVar
 
std::vector< double > fMCMCprob
 
std::vector< double > fMCMCprobMax
 
std::vector< double > fMCMCprobMean
 
std::vector< double > fMCMCprobVar
 
bool fMCMCRValueUseStrict
 
double fMCMCRValueCriterion
 
double fMCMCRValueParametersCriterion
 
double fMCMCRValue
 
std::vector< double > fMCMCRValueParameters
 
TRandom3 * fRandom
 
std::vector< TH1D * > fMCMCH1Marginalized
 
std::vector< TH2D * > fMCMCH2Marginalized
 
std::vector< TTree * > fMCMCTrees
 
std::vector< double > fMCMCBestFitParameters
 
double fMCMCLogMaximum
 
std::vector< double > fMarginalModes
 

Detailed Description

An engine class for Markov Chain Monte Carlo.

Author
Daniel Kollar
Kevin Kröninger
Version
1.0
Date
08.2008 This class represents an engine class for Markov Chain Monte Carlo (MCMC). One or more chains can be defined simultaneously.

Definition at line 41 of file BCEngineMCMC.h.

Member Enumeration Documentation

An enumerator for the status of a test.

Definition at line 50 of file BCEngineMCMC.h.

Constructor & Destructor Documentation

BCEngineMCMC::BCEngineMCMC ( )

Default constructor.

Definition at line 28 of file BCEngineMCMC.cxx.

BCEngineMCMC::BCEngineMCMC ( const BCEngineMCMC enginemcmc)

Default copy constructor.

Definition at line 174 of file BCEngineMCMC.cxx.

BCEngineMCMC::~BCEngineMCMC ( )
virtual

Default destructor.

Definition at line 157 of file BCEngineMCMC.cxx.

Member Function Documentation

int BCEngineMCMC::AddParameter ( const char *  name,
double  min,
double  max,
const char *  latexname = "" 
)
virtual

Adds a parameter.

Parameters
minminimum value of the parameter
maxmaximum value of the parameter
latexnameOptional latexname used for plotting
Returns
number of parameters after adding

Definition at line 1491 of file BCEngineMCMC.cxx.

int BCEngineMCMC::AddParameter ( BCParameter parameter)
virtual

Adds a parameter to the model.

Parameters
parameterA model parameter
See Also
AddParameter(const char * name, double lowerlimit, double upperlimit);

Definition at line 1501 of file BCEngineMCMC.cxx.

void BCEngineMCMC::ClearParameters ( bool  hard = false)
inline

Empty the sequence of parameters.

Parameters
hardDelete the parameters.
Warning
Could lead to problems if multiple modes use identical parameters.

Definition at line 637 of file BCEngineMCMC.h.

void BCEngineMCMC::Copy ( const BCEngineMCMC enginemcmc)

Copy object

Parameters
enginemcmcObject to copy from

Definition at line 180 of file BCEngineMCMC.cxx.

const std::vector< double > & BCEngineMCMC::GetBestFitParametersMarginalized ( ) const

Returns the set of values of the parameters at the modes of the marginalized posterior pdfs.

Returns
best fit parameters

Definition at line 353 of file BCEngineMCMC.cxx.

unsigned int BCEngineMCMC::GetNFixedParameters ( )
Returns
The number of fixed parameters.

Definition at line 271 of file BCEngineMCMC.cxx.

unsigned int BCEngineMCMC::GetNFreeParameters ( )
Returns
The number of free parameters.

Definition at line 265 of file BCEngineMCMC.cxx.

unsigned int BCEngineMCMC::GetNParameters ( ) const
inline
Returns
The number of parameters of the model.

Definition at line 302 of file BCEngineMCMC.h.

BCParameter* BCEngineMCMC::GetParameter ( int  index) const
inline
Parameters
indexThe index of the parameter in the parameter set.
Returns
The parameter.

Definition at line 291 of file BCEngineMCMC.h.

BCParameter* BCEngineMCMC::GetParameter ( const char *  name) const
inline
Parameters
nameThe name of the parameter in the parameter set.
Returns
The parameter.

Definition at line 297 of file BCEngineMCMC.h.

const BCParameterSet& BCEngineMCMC::GetParameters ( ) const
inline
Returns
Parameter set.

Definition at line 285 of file BCEngineMCMC.h.

double BCEngineMCMC::LogEval ( const std::vector< double > &  parameters)
virtual

Needs to be overloaded in the derived class.

Returns
natural logarithm of the function to map with MCMC

Definition at line 881 of file BCEngineMCMC.cxx.

virtual void BCEngineMCMC::MCMCCurrentPointInterface ( std::vector< double > &  ,
int  ,
bool   
)
inlinevirtual

Interface allowing to execute arbitrary code for each new point of the MCMC. This method needs to be overloaded in the derived class

Parameters
pointpoint that was generated and checked
ichainindex of the chain
acceptedflag whether or not the point was accepted for the chain

Definition at line 662 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::MCMCGetCurrentChain ( ) const
inline
Returns
current chain index

Definition at line 102 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::MCMCGetCurrentIteration ( ) const
inline
Returns
current iterations

Definition at line 97 of file BCEngineMCMC.h.

bool BCEngineMCMC::MCMCGetFlagConvergenceGlobal ( ) const
inline
Returns
flag if converged or not

Definition at line 113 of file BCEngineMCMC.h.

int BCEngineMCMC::MCMCGetFlagInitialPosition ( ) const
inline
Returns
flag which defined initial position

Definition at line 227 of file BCEngineMCMC.h.

bool BCEngineMCMC::MCMCGetFlagRun ( ) const
inline
Returns
the flag if MCMC has been performed or not

Definition at line 257 of file BCEngineMCMC.h.

BCH1D * BCEngineMCMC::MCMCGetH1Marginalized ( unsigned  i)

Retrieve a histogram of the 1D marginalized distribution of a single parameter.

Parameters
iindex of the parameter
Returns
pointer to the histogram

Definition at line 290 of file BCEngineMCMC.cxx.

BCH2D * BCEngineMCMC::MCMCGetH2Marginalized ( unsigned  i,
unsigned  j 
)

Retrieve a histogram of the 2D marginalized distribution for two parameters.

Parameters
iindex of the first parameter
jindex of the second parameter
Returns
pointer to the histogram

Definition at line 315 of file BCEngineMCMC.cxx.

const std::vector<double>& BCEngineMCMC::MCMCGetLogProbx ( ) const
inline
Returns
log of the probability of the current points of each Markov chain

Definition at line 197 of file BCEngineMCMC.h.

double BCEngineMCMC::MCMCGetLogProbx ( unsigned  ichain)
Returns
log of the probability of the current points of the Markov chain.
Parameters
ichainchain index

Definition at line 569 of file BCEngineMCMC.cxx.

TTree* BCEngineMCMC::MCMCGetMarkovChainTree ( unsigned  i)
inline

Retrieve the tree containing the Markov chain.

Parameters
iindex of the Markov chain
Returns
pointer to the tree

Definition at line 264 of file BCEngineMCMC.h.

const std::vector<double>& BCEngineMCMC::MCMCGetMaximumLogProb ( ) const
inline
Returns
maximum (log) probability of each Markov chain

Definition at line 222 of file BCEngineMCMC.h.

std::vector< double > BCEngineMCMC::MCMCGetMaximumPoint ( unsigned  i) const
Returns
maximum point of Markov chain
Parameters
iThe index of the Markov chain

Definition at line 362 of file BCEngineMCMC.cxx.

const std::vector<double>& BCEngineMCMC::MCMCGetMaximumPoints ( ) const
inline
Returns
maximum points of each Markov chain

Definition at line 212 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::MCMCGetNChains ( ) const
inline
Returns
number of Markov chains

Definition at line 82 of file BCEngineMCMC.h.

bool BCEngineMCMC::MCMCGetNewPointMetropolis ( unsigned  chain = 0)

Generates a new point using the Metropolis algorithm.

Parameters
chainchain index

Definition at line 692 of file BCEngineMCMC.cxx.

const std::vector<unsigned>& BCEngineMCMC::MCMCGetNIterations ( ) const
inline
Returns
number of iterations

Definition at line 92 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::MCMCGetNIterationsConvergenceGlobal ( ) const
inline
Returns
number of iterations needed for all chains to converge simultaneously

Definition at line 108 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::MCMCGetNIterationsMax ( ) const
inline
Returns
maximum number of iterations for a Markov chain

Definition at line 118 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::MCMCGetNIterationsPreRunMin ( ) const
inline
Returns
minimum number of pre-run iterations for a Markov chain

Definition at line 128 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::MCMCGetNIterationsRun ( ) const
inline
Returns
number of iterations for a Markov chain

Definition at line 123 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::MCMCGetNIterationsUpdate ( ) const
inline
Returns
number of iterations after statistics update.

Definition at line 133 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::MCMCGetNIterationsUpdateMax ( ) const
inline
Returns
maximum number of iterations after statistics update.

Definition at line 138 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::MCMCGetNLag ( ) const
inline
Returns
lag of the Markov chains

Definition at line 87 of file BCEngineMCMC.h.

int BCEngineMCMC::MCMCGetNTrials ( ) const
inline
Returns
number of trials

Definition at line 148 of file BCEngineMCMC.h.

std::vector<int> BCEngineMCMC::MCMCGetNTrialsTrue ( ) const
inline
Returns
number of accepted trials for each chain

Definition at line 143 of file BCEngineMCMC.h.

int BCEngineMCMC::MCMCGetPhase ( ) const
inline
Returns
pointer to the phase of a run.

Definition at line 207 of file BCEngineMCMC.h.

const std::vector<double>& BCEngineMCMC::MCMCGetprobMean ( ) const
inline
Returns
mean value of the probability for each chain up to the current iteration

Definition at line 154 of file BCEngineMCMC.h.

bool BCEngineMCMC::MCMCGetProposalPointMetropolis ( unsigned  chain,
std::vector< double > &  x 
)

Returns a trial point for the Metropolis algorithm.

Parameters
chainchain index
xproposal point
Returns
flag indicating whether the new point lies within the allowed range

Definition at line 580 of file BCEngineMCMC.cxx.

bool BCEngineMCMC::MCMCGetProposalPointMetropolis ( unsigned  chain,
unsigned  parameter,
std::vector< double > &  x 
)

Returns a trial point for the Metropolis algorithm.

Parameters
chainchain index
xproposal point
Returns
flag indicating whether the new point lies within the allowed range

Definition at line 603 of file BCEngineMCMC.cxx.

double BCEngineMCMC::MCMCGetRValue ( ) const
inline
Returns
R-value

Definition at line 242 of file BCEngineMCMC.h.

double BCEngineMCMC::MCMCGetRValueCriterion ( ) const
inline
Returns
R-value criterion

Definition at line 232 of file BCEngineMCMC.h.

double BCEngineMCMC::MCMCGetRValueParameters ( unsigned  i)
inline
Returns
R-value for a parameter
Parameters
iparameter index

Definition at line 248 of file BCEngineMCMC.h.

double BCEngineMCMC::MCMCGetRValueParametersCriterion ( ) const
inline
Returns
R-value criterion for parameters

Definition at line 237 of file BCEngineMCMC.h.

bool BCEngineMCMC::MCMCGetRValueStrict ( ) const
inline

Use strict or relaxed rule for Gelman/Rubin R-value

Definition at line 252 of file BCEngineMCMC.h.

const std::vector<double>& BCEngineMCMC::MCMCGetTrialFunctionScaleFactor ( ) const
inline
Returns
scale factor for all parameters and chains

Definition at line 165 of file BCEngineMCMC.h.

std::vector< double > BCEngineMCMC::MCMCGetTrialFunctionScaleFactor ( unsigned  ichain) const
Returns
scale factor for all parameters and achain.
Parameters
ichainchain index

Definition at line 505 of file BCEngineMCMC.cxx.

double BCEngineMCMC::MCMCGetTrialFunctionScaleFactor ( unsigned  ichain,
unsigned  ipar 
)
Returns
scale factor for a parameter and a chain.
Parameters
ichainchain index
iparparameter index

Definition at line 522 of file BCEngineMCMC.cxx.

const std::vector<double>& BCEngineMCMC::MCMCGetVariance ( ) const
inline
Returns
mean value of the probability for each chain up to the current iteration

Definition at line 160 of file BCEngineMCMC.h.

const std::vector<double>& BCEngineMCMC::MCMCGetx ( ) const
inline
Returns
current point of each Markov chain

Definition at line 181 of file BCEngineMCMC.h.

std::vector< double > BCEngineMCMC::MCMCGetx ( unsigned  ichain)
Parameters
ichainindex of the Markov chain
Returns
current point of the Markov chain

Definition at line 537 of file BCEngineMCMC.cxx.

double BCEngineMCMC::MCMCGetx ( unsigned  ichain,
unsigned  ipar 
) const
Parameters
ichainchain index
iparparameter index
Returns
parameter of the Markov chain

Definition at line 554 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCInChainCheckMaximum ( )

Updates statistics: find new maximum

Definition at line 756 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCInChainFillHistograms ( )

Updates statistics: fill marginalized distributions

Definition at line 805 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCInChainTestConvergenceAllChains ( )

Updates statistics: check convergence

Definition at line 829 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCInChainUpdateStatistics ( )

Updates statistics:

Definition at line 775 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCInChainWriteChains ( )

Updates statistics: write chains to file

Definition at line 873 of file BCEngineMCMC.cxx.

int BCEngineMCMC::MCMCInitialize ( )

Initializes the engine.

Returns
An error code

Definition at line 1565 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCInitializeMarkovChains ( )

Initializes Markov chains.

Definition at line 1507 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCInitializeMarkovChainTrees ( )

Initialize trees containing the Markov chains.

Definition at line 462 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCIterationInterface ( )
virtual

Interface allowing to execute arbitrary code for each iteration of the MCMC. The frequency of calling this method is influenced by the setup of the Lag and whether or not the MCMC is run with ordered parameters. This method needs to be overloaded in the derived class.

Definition at line 1706 of file BCEngineMCMC.cxx.

int BCEngineMCMC::MCMCMetropolis ( )

Runs Metropolis algorithm.

Definition at line 1295 of file BCEngineMCMC.cxx.

int BCEngineMCMC::MCMCMetropolisPreRun ( )

Runs a pre run for the Metropolis algorithm.

Definition at line 889 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCResetRunStatistics ( )

Resets the run statistics.

Definition at line 1462 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCSetFlagFillHistograms ( bool  flag)

Sets the flag for all parameters to either fill histograms or not.

Definition at line 418 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCSetFlagInitialPosition ( int  flag)
inline

Sets flag which defines initial position.

Definition at line 404 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetFlagOrderParameters ( bool  flag)
inline

Sets the flag which controls the sequence parameters during the running of the MCMC.

Definition at line 410 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetFlagPreRun ( bool  flag)
inline

Sets the flag if a prerun should be performed or not.

Definition at line 417 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetInitialPositions ( const std::vector< double > &  x0s)

Sets the initial positions for all chains.

Parameters
x0sinitial positions for all chains.

Definition at line 388 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCSetInitialPositions ( std::vector< std::vector< double > >  x0s)

Sets the initial positions for all chains.

Parameters
x0sinitial positions for all chains.

Definition at line 404 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCSetMarkovChainTrees ( const std::vector< TTree * > &  trees)

Sets the tree containing the Markov chains.

Definition at line 425 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCSetMaximumEfficiency ( double  efficiency)
inline

Sets the maximum efficiency required for a chain.

Definition at line 375 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetMinimumEfficiency ( double  efficiency)
inline

Sets the minimum efficiency required for a chain.

Definition at line 370 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetNChains ( unsigned  n)

Sets the number of Markov chains which are run in parallel.

Definition at line 379 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCSetNIterationsMax ( unsigned  n)
inline

Sets the maximum number of iterations in the pre-run.

Definition at line 340 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetNIterationsPreRunMin ( unsigned  n)
inline

Sets the minimum number of iterations in the pre-run

Definition at line 350 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetNIterationsRun ( unsigned  n)
inline

Sets the number of iterations.

Definition at line 345 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetNIterationsUpdate ( unsigned  n)
inline

Sets the number of iterations in the pre-run after which an update on the statistics (convergence, efficiency, etc.) is done.

Parameters
nThe number of iterations.

Definition at line 357 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetNIterationsUpdateMax ( unsigned  n)
inline

Sets the maximum number of iterations in the pre-run after which an update on the statistics (convergence, efficiency, etc.) is done. If set to 0 no maximum is set.

Parameters
nmaximum number of iterations.

Definition at line 365 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetNLag ( unsigned  n)
inline

Sets the lag of the Markov chains

Definition at line 335 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetPrecision ( BCEngineMCMC::Precision  precision)

Set the precision for the MCMC run.

Definition at line 99 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCSetRandomSeed ( unsigned  seed)

Set the random number seed

Definition at line 435 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCSetRValueCriterion ( double  r)
inline

Sets the R-value criterion for convergence of all chains.

Definition at line 422 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetRValueParametersCriterion ( double  r)
inline

Sets the parameter R-value criterion for convergence of all chains

Definition at line 427 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetRValueStrict ( bool  strict = true)
inline

Use strict or relaxed rule for Gelman/Rubin R-value

Definition at line 431 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetTrialFunctionScaleFactor ( std::vector< double >  scale)
inline

Set the scale factors for the trial functions

Parameters
scalea vector of doubles containing the scale factors

Definition at line 326 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetValuesDefault ( )

Set the default values for the MCMC chain.

Definition at line 39 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCSetValuesDetail ( )

Set the values for a detailed MCMC run.

Definition at line 78 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCSetValuesQuick ( )

Set the values for a quick MCMC run.

Definition at line 57 of file BCEngineMCMC.cxx.

void BCEngineMCMC::MCMCSetWriteChainToFile ( bool  flag)
inline

Sets flag to write Markov chains to file.

Definition at line 384 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCSetWritePreRunToFile ( bool  flag)
inline

Sets flag to write pre run to file.

Definition at line 389 of file BCEngineMCMC.h.

void BCEngineMCMC::MCMCTrialFunction ( unsigned  ichain,
std::vector< double > &  x 
)
virtual

Random walk trial function. The default trial function is a Breit-Wigner. It can be overloaded by the user to set the trial function.

Parameters
ichainthe chain index
xpoint with the dimension fMCMCNParameters

Definition at line 484 of file BCEngineMCMC.cxx.

double BCEngineMCMC::MCMCTrialFunctionSingle ( unsigned  ichain,
unsigned  ipar 
)
virtual

Random walk trial function. The default trial function is a Breit-Wigner. It can be overloaded by the user to set the trial function.

Parameters
ichainthe chain index
iparthe parameter index
Returns
the unscaled proposal point

Definition at line 492 of file BCEngineMCMC.cxx.

virtual void BCEngineMCMC::MCMCUserIterationInterface ( )
inlinevirtual

Method executed for every iteration of the MCMC. User's code should be provided via overloading in the derived class

Definition at line 651 of file BCEngineMCMC.h.

BCEngineMCMC & BCEngineMCMC::operator= ( const BCEngineMCMC engineMCMC)

Defaut assignment operator

Definition at line 258 of file BCEngineMCMC.cxx.

void BCEngineMCMC::ResetResults ( )
virtual

Reset the MCMC variables.

Definition at line 1524 of file BCEngineMCMC.cxx.

int BCEngineMCMC::SetMarginalized ( unsigned  index,
TH1D *  h 
)

Sets the histogram with 1D marginalized distributions for parameter.

Parameters
iindex of the parameter
hpointer to an existing histogram

Definition at line 1713 of file BCEngineMCMC.cxx.

int BCEngineMCMC::SetMarginalized ( unsigned  index1,
unsigned  index2,
TH2D *  h 
)

Sets the histogram with 2D marginalized distributions for two parameters.

Parameters
index1index of the first parameter
index2index of the second parameter
hpointer to an existing histogram

Definition at line 1730 of file BCEngineMCMC.cxx.

void BCEngineMCMC::SetNbins ( unsigned int  nbins)

Set the number of bins for the marginalized distribution of all parameters

Parameters
nbinsNumber of bins

Definition at line 283 of file BCEngineMCMC.cxx.

void BCEngineMCMC::WriteMarkovChain ( bool  flag)
inline

Flag for writing Markov chain to ROOT file (true) or not (false)

Definition at line 492 of file BCEngineMCMC.h.

Member Data Documentation

std::vector<double> BCEngineMCMC::fMarginalModes
protected

A vector of best fit parameters estimated from the marginalized probability

Definition at line 933 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCBestFitParameters
protected

A vector of best fit parameters found by MCMC

Definition at line 925 of file BCEngineMCMC.h.

int BCEngineMCMC::fMCMCCurrentChain
protected

The current chain index. If not called within the running of the algorithm, return -1.

Definition at line 742 of file BCEngineMCMC.h.

int BCEngineMCMC::fMCMCCurrentIteration
protected

The current iteration number. If not called within the running of the algorithm, return -1.

Definition at line 737 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCEfficiencies
protected

The efficiencies for all parameters and chains.

Definition at line 816 of file BCEngineMCMC.h.

double BCEngineMCMC::fMCMCEfficiencyMax
protected

The maximum allowed efficiency for MCMC

Definition at line 824 of file BCEngineMCMC.h.

double BCEngineMCMC::fMCMCEfficiencyMin
protected

The minimum required efficiency for MCMC

Definition at line 820 of file BCEngineMCMC.h.

bool BCEngineMCMC::fMCMCFlagConvergenceGlobal
protected

Flag for convergence

Definition at line 759 of file BCEngineMCMC.h.

int BCEngineMCMC::fMCMCFlagInitialPosition
protected

Variable which defines the initial position. 0 (default) center of the allowed region, (1) random initial position (2) pre-defined intial position.

Definition at line 830 of file BCEngineMCMC.h.

bool BCEngineMCMC::fMCMCFlagOrderParameters
protected

Flag which controls the sequence parameters during the running of the MCMC.

Definition at line 835 of file BCEngineMCMC.h.

bool BCEngineMCMC::fMCMCFlagPreRun
protected

Defines if a prerun should be performed or not

Definition at line 801 of file BCEngineMCMC.h.

bool BCEngineMCMC::fMCMCFlagRun
protected

Defines if MCMC has been performed or not

Definition at line 805 of file BCEngineMCMC.h.

bool BCEngineMCMC::fMCMCFlagWriteChainToFile
protected

Flag to write Markov chains to file

Definition at line 784 of file BCEngineMCMC.h.

bool BCEngineMCMC::fMCMCFlagWritePreRunToFile
protected

Flag to write pre run to file

Definition at line 788 of file BCEngineMCMC.h.

std::vector<TH1D *> BCEngineMCMC::fMCMCH1Marginalized
protected

An array of marginalized distributions

Definition at line 915 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCInitialPosition
protected

The intial position of each Markov chain. The length of the vectors is equal to fMCMCNChains * fMCMCNParameters. First, the values of the first Markov chain are saved, then those of the second and so on

Definition at line 812 of file BCEngineMCMC.h.

double BCEngineMCMC::fMCMCLogMaximum
protected

The function value at the mode on the log scale

Definition at line 929 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::fMCMCNChains
protected

Number of Markov chains ran in parallel

Definition at line 723 of file BCEngineMCMC.h.

std::vector<unsigned> BCEngineMCMC::fMCMCNIterations
protected

Number of total iterations of the Markov chains. The length of the vector is equal to fMCMCNChains.

Definition at line 732 of file BCEngineMCMC.h.

int BCEngineMCMC::fMCMCNIterationsConvergenceGlobal
protected

Number of iterations needed for all chains to convergence simultaneously

Definition at line 755 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::fMCMCNIterationsMax
protected

Maximum number of iterations for a Markov chain prerun

Definition at line 763 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::fMCMCNIterationsPreRunMin
protected

Minimum number of iterations for the pre-run

Definition at line 771 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::fMCMCNIterationsRun
protected

Number of iterations for a Markov chain run

Definition at line 767 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::fMCMCNIterationsUpdate
protected

Number of iterations for updating scale factors

Definition at line 746 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::fMCMCNIterationsUpdateMax
protected

Maximum number of iterations for updating scale factors

Definition at line 750 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::fMCMCNLag
protected

The lag for the Markov Chain

Definition at line 727 of file BCEngineMCMC.h.

unsigned BCEngineMCMC::fMCMCNTrials
protected

Number of trials

Definition at line 780 of file BCEngineMCMC.h.

std::vector<int> BCEngineMCMC::fMCMCNTrialsTrue
protected

Number of accepted trials for each chain. The length of the vector is equal to fMCMCNChains * fMCMCNParameters.

Definition at line 776 of file BCEngineMCMC.h.

int BCEngineMCMC::fMCMCPhase
protected

The phase of the run. 1: pre-run, 2: main run.

Definition at line 841 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCprob
protected

The log of the probability of the current points of each Markov chain. The length of the vectors is fMCMCNChains.

Definition at line 869 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCprobMax
protected

The maximum (log) probability of each Markov chain. The length of the vector is fMCMCNChains.

Definition at line 874 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCprobMean
protected

The mean of all log prob values of each Markov chain. The length of the vector is equal to fMCMCNChains.

Definition at line 879 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCprobVar
protected

The variance of all log prob values of each Markov chain. The length of the vector is equal to fMCMCNChains.

Definition at line 884 of file BCEngineMCMC.h.

double BCEngineMCMC::fMCMCRValue
protected

The R-value at which the chains did converge

Definition at line 904 of file BCEngineMCMC.h.

double BCEngineMCMC::fMCMCRValueCriterion
protected

The R-value criterion for convergence of log-likelihood

Definition at line 896 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCRValueParameters
protected

The R-values for each parameter

Definition at line 907 of file BCEngineMCMC.h.

double BCEngineMCMC::fMCMCRValueParametersCriterion
protected

The R-value criterion for convergence of parameters

Definition at line 900 of file BCEngineMCMC.h.

bool BCEngineMCMC::fMCMCRValueUseStrict
protected

flag: use exactly the R-value definition of Gelman/Rubin (R_strict) or a relaxed, simplified version (R_relax) [default]. Note that R_relax <= R_strict, and in some cases even R_relax < 1, but we always have R_strict >= 1.

Definition at line 892 of file BCEngineMCMC.h.

std::vector<TTree *> BCEngineMCMC::fMCMCTrees
protected

The trees containing the Markov chains. The length of the vector is fMCMCNChains.

Definition at line 921 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCTrialFunctionScaleFactor
protected

Scales the width of the trial functions by a scale factor for each parameter and chain

Definition at line 793 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCTrialFunctionScaleFactorStart
protected

Start values of the scale factors for the trial functions.

Definition at line 797 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCx
protected

The current points of each Markov chain. The length of the vectors is equal to fMCMCNChains * fMCMCNParameters. First, the values of the first Markov chain are saved, then those of the second and so on.

Definition at line 848 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCxMax
protected

The maximum points of each Markov chain. The length of the vector is fMCMCNChains * fMCMCNParameters. First, the values of the first Markov chain are saved, then those of the second and so on.

Definition at line 854 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCxMean
protected

The mean of all parameters of each Markov chain. The length of the vector is equal to fMCMCNChains * fMCMCNParameters.

Definition at line 859 of file BCEngineMCMC.h.

std::vector<double> BCEngineMCMC::fMCMCxVar
protected

The variance of all parameters of each Markov chain. The length of the vector is equal to fMCMCNChains * fMCMCNParameters.

Definition at line 864 of file BCEngineMCMC.h.

BCParameterSet BCEngineMCMC::fParameters
protected

Parameter settings

Definition at line 719 of file BCEngineMCMC.h.

TRandom3* BCEngineMCMC::fRandom
protected

Random number generator

Definition at line 911 of file BCEngineMCMC.h.


The documentation for this class was generated from the following files: