149 filename =
"results/example_combined_GaussExample_model.root";
154 cout <<
"will run standard hist2workspace example" << endl;
155 gROOT->ProcessLine(
".! prepareHistFactory .");
156 gROOT->ProcessLine(
".! hist2workspace config/example.xml");
157 cout <<
"\n\n---------------------" << endl;
158 cout <<
"Done creating example input" << endl;
159 cout <<
"---------------------\n\n" << endl;
170 cout <<
"StandardRooStatsDemoMacro: Input file " <<
filename <<
" is not found" << endl;
180 cout <<
"workspace not found" << endl;
193 cout <<
"data or ModelConfig was not found" << endl;
214 fc.AdditionalNToysFactor(
218 fc.CreateConfBelt(
true);
240 if (!
mc->GetPdf()->canBeExtended()) {
241 if (
data->numEntries() == 1)
242 fc.FluctuateNumDataEntries(
false);
244 cout <<
"Not sure what to do about this model" << endl;
258 if (
mc->GetGlobalObservables()) {
259 cout <<
"will use global observables for unconditional ensemble" << endl;
260 mc->GetGlobalObservables()->Print();
309 std::unique_ptr<RooAbsReal>
nll{
mc->GetPdf()->createNLL(*
data)};
310 std::unique_ptr<RooAbsReal> profile{
nll->createProfile(*
mc->GetParametersOfInterest())};
314 if (
mc->GetNuisanceParameters())
319 cout <<
"\nWill use these parameter points to generate pseudo data for bkg only" << endl;
331 histOfUL->GetXaxis()->SetTitle(
"Upper Limit (background only)");
332 histOfUL->GetYaxis()->SetTitle(
"Entries");
337 w->loadSnapshot(
"paramsToGenerateData");
340 std::unique_ptr<RooDataSet>
toyData;
342 if (!
mc->GetPdf()->canBeExtended()) {
343 if (
data->numEntries() == 1)
344 toyData = std::unique_ptr<RooDataSet>{
mc->GetPdf()->generate(*
mc->GetObservables(), 1)};
346 cout <<
"Not sure what to do about this model" << endl;
349 toyData = std::unique_ptr<RooDataSet>{
mc->GetPdf()->generate(*
mc->GetObservables(), Extended())};
358 std::unique_ptr<RooDataSet>
one{
mc->GetPdf()->generate(*
mc->GetGlobalObservables(), 1)};
360 std::unique_ptr<RooArgSet> allVars{
mc->GetPdf()->getVariables()};
361 allVars->assign(*values);
365 for (
auto const&
tt :
simPdf->indexCat()) {
372 std::unique_ptr<RooArgSet>
globtmp{
pdftmp->getObservables(*
mc->GetGlobalObservables())};
452 c1->SaveAs(
"one-sided_upper_limit_output.pdf");
471 for (
int i = 1; i <=
cumulative->GetNbinsX(); ++i) {
484 cout <<
"-1 sigma band " <<
band1sigDown <<
" [Power Constraint)]" << endl;
485 cout <<
"median of band " <<
bandMedian << endl;
486 cout <<
"+1 sigma band " <<
band1sigUp << endl;
487 cout <<
"+2 sigma band " <<
band2sigUp << endl;
490 cout <<
"\nobserved 95% upper-limit " <<
interval->UpperLimit(*
firstPOI) << endl;
491 cout <<
"CLb strict [P(toy>obs|0)] for observed 95% upper-limit " << CLb << endl;
492 cout <<
"CLb inclusive [P(toy>=obs|0)] for observed 95% upper-limit " <<
CLbinclusive << endl;
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
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
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
R__EXTERN TSystem * gSystem
Abstract base class for binned and unbinned datasets.
Abstract interface for all probability density functions.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Container class to hold unbinned data.
Variable that can be changed from the outside.
Facilitates simultaneous fitting of multiple PDFs to subsets of a given dataset.
ConfidenceBelt is a concrete implementation of the ConfInterval interface.
The FeldmanCousins class (like the Feldman-Cousins technique) is essentially a specific configuration...
ModelConfig is a simple class that holds configuration information specifying how a model should be u...
PointSetInterval is a concrete implementation of the ConfInterval interface.
ProfileLikelihoodTestStat is an implementation of the TestStatistic interface that calculates the pro...
Holds configuration options for proof and proof-lite.
ToyMCSampler is an implementation of the TestStatSampler interface.
Persistable container for RooFit projects.
TObject * Get(const char *namecycle) override
Return pointer to object identified by namecycle.
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
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.
1-D histogram with a float per channel (see TH1 documentation)
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
double nll(double pdf, double weight, int binnedL, int doBinOffset)
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
Namespace for the RooStats classes.
double SignificanceToPValue(double Z)
returns p-value corresponding to a 1-sided significance