47struct BayesianNumericalOptions {
 
   49   double confLevel = 0.95;      
 
   57   bool plotPosterior = 
false; 
 
   62   double nSigmaNuisance = -1; 
 
   66BayesianNumericalOptions optBayes;
 
   68void StandardBayesianNumericalDemo(
const char *infile = 
"", 
const char *workspaceName = 
"combined",
 
   69                                   const char *modelConfigName = 
"ModelConfig", 
const char *dataName = 
"obsData")
 
   73   double confLevel = optBayes.confLevel;
 
   74   TString integrationType = optBayes.integrationType;
 
   75   int nToys = optBayes.nToys;
 
   76   bool scanPosterior = optBayes.scanPosterior;
 
   77   bool plotPosterior = optBayes.plotPosterior;
 
   78   int nScanPoints = optBayes.nScanPoints;
 
   79   int intervalType = optBayes.intervalType;
 
   80   int maxPOI = optBayes.maxPOI;
 
   81   double nSigmaNuisance = optBayes.nSigmaNuisance;
 
   88   if (!strcmp(infile, 
"")) {
 
   89      filename = 
"results/example_combined_GaussExample_model.root";
 
   94         cout << 
"HistFactory file cannot be generated on Windows - exit" << endl;
 
   98         cout << 
"will run standard hist2workspace example" << endl;
 
   99         gROOT->ProcessLine(
".! prepareHistFactory .");
 
  100         gROOT->ProcessLine(
".! hist2workspace config/example.xml");
 
  101         cout << 
"\n\n---------------------" << endl;
 
  102         cout << 
"Done creating example input" << endl;
 
  103         cout << 
"---------------------\n\n" << endl;
 
  114      cout << 
"StandardRooStatsDemoMacro: Input file " << 
filename << 
" is not found" << endl;
 
  125      cout << 
"workspace not found" << endl;
 
  138      cout << 
"data or ModelConfig was not found" << endl;
 
  157   if (nSigmaNuisance > 0) {
 
  160      std::unique_ptr<RooFitResult> res{
 
  166      for (
int i = 0; i < nuisPar.getSize(); ++i) {
 
  169         v->setMin(
TMath::Max(
v->getMin(), 
v->getVal() - nSigmaNuisance * 
v->getError()));
 
  170         v->setMax(
TMath::Min(
v->getMax(), 
v->getVal() + nSigmaNuisance * 
v->getError()));
 
  171         std::cout << 
"setting interval for nuisance  " << 
v->GetName() << 
" : [ " << 
v->getMin() << 
" , " 
  172                   << 
v->getMax() << 
" ]" << std::endl;
 
  177   bayesianCalc.SetConfidenceLevel(confLevel); 
 
  181   if (intervalType == 0)
 
  182      bayesianCalc.SetShortestInterval(); 
 
  183   if (intervalType == 1)
 
  184      bayesianCalc.SetLeftSideTailFraction(0.5); 
 
  185   if (intervalType == 2)
 
  186      bayesianCalc.SetLeftSideTailFraction(0.); 
 
  188   if (!integrationType.
IsNull()) {
 
  189      bayesianCalc.SetIntegrationType(integrationType); 
 
  190      bayesianCalc.SetNumIters(nToys); 
 
  194   if (integrationType.
Contains(
"TOYMC")) {
 
  196      cout << 
"using TOYMC integration: make nuisance pdf from the model " << std::endl;
 
  198      bayesianCalc.ForceNuisancePdf(*nuisPdf);
 
  199      scanPosterior = 
true; 
 
  204      bayesianCalc.SetScanOfPosterior(nScanPoints);
 
  207   if (maxPOI != -999 && maxPOI > poi->
getMin())
 
  213   cout << 
"\n>>>> RESULT : " << confLevel * 100 << 
"% interval on " << poi->
GetName() << 
" is : [" 
  228   cout << 
"\nDrawing plot of posterior function....." << endl;
 
  231   bayesianCalc.SetScanOfPosterior(nScanPoints);
 
winID h TVirtualViewer3D TVirtualGLPainter char TVirtualGLPainter plot
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
 
R__EXTERN TSystem * gSystem
 
static int DefaultPrintLevel()
 
static const std::string & DefaultMinimizerType()
 
void Print(Option_t *options=nullptr) const override
Print the object to the defaultPrintStream().
 
RooAbsArg * first() const
 
RooAbsData is the common abstract base class for binned and unbinned datasets.
 
virtual RooFit::OwningPtr< RooFitResult > fitTo(RooAbsData &data, const RooLinkedList &cmdList={})
Fit PDF to given dataset.
 
virtual double getMin(const char *name=nullptr) const
Get minimum of currently defined range.
 
static void setEvalErrorLoggingMode(ErrorLoggingMode m)
Set evaluation error logging mode.
 
RooArgList is a container object that can hold multiple RooAbsArg objects.
 
A RooPlot is a plot frame and a container for graphics objects within that frame.
 
RooRealVar represents a variable that can be changed from the outside.
 
void setMax(const char *name, double value)
Set maximum of name range to given value.
 
BayesianCalculator is a concrete implementation of IntervalCalculator, providing the computation of a...
 
ModelConfig is a simple class that holds configuration information specifying how a model should be u...
 
virtual void SetPriorPdf(const RooAbsPdf &pdf)
Set the Prior Pdf, add to the workspace if not already there.
 
const RooArgSet * GetParametersOfInterest() const
get RooArgSet containing the parameter of interest (return nullptr if not existing)
 
const RooArgSet * GetNuisanceParameters() const
get RooArgSet containing the nuisance parameters (return nullptr if not existing)
 
RooAbsPdf * GetPdf() const
get model PDF (return nullptr if pdf has not been specified or does not exist)
 
SimpleInterval is a concrete implementation of the ConfInterval interface.
 
virtual double UpperLimit()
return the interval upper limit
 
virtual double LowerLimit()
return the interval lower limit
 
The RooWorkspace is a persistable container for RooFit projects.
 
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
 
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
 
const char * GetName() const override
Returns name of object.
 
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
 
RooCmdArg Minimizer(const char *type, const char *alg=nullptr)
 
RooCmdArg Hesse(bool flag=true)
 
RooCmdArg Save(bool flag=true)
 
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
 
Namespace for the RooStats classes.
 
RooAbsPdf * MakeNuisancePdf(RooAbsPdf &pdf, const RooArgSet &observables, const char *name)
extract constraint terms from pdf
 
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
 
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.