51 struct BayesianMCMCOptions {
53 double confLevel = 0.95;
57 int numIters = 100000;
58 int numBurnInSteps = 100;
61 BayesianMCMCOptions optMCMC;
63 void StandardBayesianMCMCDemo(
const char* infile =
"",
64 const char* workspaceName =
"combined",
65 const char* modelConfigName =
"ModelConfig",
66 const char* dataName =
"obsData"){
74 const char* filename =
"";
75 if (!strcmp(infile,
"")) {
76 filename =
"results/example_combined_GaussExample_model.root";
81 cout <<
"HistFactory file cannot be generated on Windows - exit" << endl;
85 cout <<
"will run standard hist2workspace example"<<endl;
86 gROOT->ProcessLine(
".! prepareHistFactory .");
87 gROOT->ProcessLine(
".! hist2workspace config/example.xml");
88 cout <<
"\n\n---------------------"<<endl;
89 cout <<
"Done creating example input"<<endl;
90 cout <<
"---------------------\n\n"<<endl;
102 cout <<
"StandardRooStatsDemoMacro: Input file " << filename <<
" is not found" << endl;
115 cout <<
"workspace not found" << endl;
128 cout <<
"data or ModelConfig was not found" <<endl;
154 mcmc.SetConfidenceLevel(optMCMC.confLevel);
156 mcmc.SetProposalFunction(sp);
157 mcmc.SetNumIters(optMCMC.numIters);
158 mcmc.SetNumBurnInSteps(optMCMC.numBurnInSteps);
161 if (optMCMC.intervalType == 0) mcmc.SetIntervalType(MCMCInterval::kShortest);
162 if (optMCMC.intervalType == 1) mcmc.SetLeftSideTailFraction(0.5);
163 if (optMCMC.intervalType == 2) mcmc.SetLeftSideTailFraction(0.);
166 if (optMCMC.minPOI != -999)
167 firstPOI->
setMin(optMCMC.minPOI);
168 if (optMCMC.maxPOI != -999)
169 firstPOI->
setMax(optMCMC.maxPOI);
194 plot.DrawChainScatter(*firstPOI,*nuis);
198 cout <<
"\n>>>> RESULT : " << optMCMC.confLevel*100 <<
"% interval on " <<firstPOI->
GetName()<<
" is : ["<<
virtual const char * GetName() const
Returns name of object.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
TIterator * createIterator(Bool_t dir=kIterForward) const
ModelConfig is a simple class that holds configuration information specifying how a model should be u...
This class provides simple and straightforward utilities to plot a MCMCInterval object.
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
Iterator abstract base class.
void setMax(const char *name, Double_t value)
Set maximum of name range to given value.
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=1, Int_t netopt=0)
Create / open a file.
RooRealVar represents a fundamental (non-derived) real valued object.
RooAbsData * data(const char *name) const
Retrieve dataset (binned or unbinned) with given name. A null pointer is returned if not found...
R__EXTERN TSystem * gSystem
Class implementing a proposal function that samples the parameter space by moving only in one coordin...
RooAbsArg * first() const
void setMin(const char *name, Double_t value)
Set minimum of name range to given value.
RooAbsData is the common abstract base class for binned and unbinned datasets.
virtual Double_t UpperLimit(RooRealVar ¶m)
get the highest value of param that is within the confidence interval
TObject * obj(const char *name) const
Return any type of object (RooAbsArg, RooAbsData or generic object) with given name) ...
Namespace for the RooStats classes.
const RooArgSet * GetParametersOfInterest() const
get RooArgSet containing the parameter of interest (return NULL if not existing)
virtual Double_t LowerLimit(RooRealVar ¶m)
get the lowest value of param that is within the confidence interval
virtual void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0)
Automatic pad generation by division.
const RooArgSet * GetNuisanceParameters() const
get RooArgSet containing the nuisance parameters (return NULL if not existing)
virtual TObject * Next()=0
MCMCInterval is a concrete implementation of the RooStats::ConfInterval interface.
Bayesian Calculator estimating an interval or a credible region using the Markov-Chain Monte Carlo me...
void Print(Option_t *opts=0) const
Print contents of the workspace.
Int_t CeilNint(Double_t x)
The RooWorkspace is a persistable container for RooFit projects.