Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
StandardProfileInspectorDemo.C File Reference

Detailed Description

View in nbviewer Open in SWAN
Standard demo of the ProfileInspector class StandardProfileInspectorDemo

This is a standard demo that can be used with any ROOT file prepared in the standard way. You specify:

  • name for input ROOT file
  • name of workspace inside ROOT file that holds model and data
  • name of ModelConfig that specifies details for calculator tools
  • name of dataset

With default parameters the macro will attempt to run the standard hist2workspace example and read the ROOT file that it produces.

The actual heart of the demo is only about 10 lines long.

The ProfileInspector plots the conditional maximum likelihood estimate of each nuisance parameter in the model vs. the parameter of interest. (aka. profiled value of nuisance parameter vs. parameter of interest) (aka. best fit nuisance parameter with p.o.i fixed vs. parameter of interest)

[#1] INFO:Minimization -- p.d.f. provides expected number of events, including extended term in likelihood.
[#1] INFO:Minimization -- Including the following constraint terms in minimization: (lumiConstraint,alpha_syst1Constraint,alpha_syst2Constraint,alpha_syst3Constraint,gamma_stat_channel1_bin_0_constraint,gamma_stat_channel1_bin_1_constraint)
[#1] INFO:Minimization -- The global observables are not defined , normalize constraints with respect to the parameters (Lumi,SigXsecOverSM,alpha_syst1,alpha_syst2,alpha_syst3,gamma_stat_channel1_bin_0,gamma_stat_channel1_bin_1)
[#1] INFO:Fitting -- RooAbsPdf::fitTo(simPdf) fixing normalization set for coefficient determination to observables in data
[#1] INFO:Fitting -- using generic CPU library compiled with no vectorizations
[#1] INFO:Fitting -- Creation of NLL object took 9.8493 ms
[#1] INFO:Minimization -- RooProfileLL::evaluate(RooEvaluatorWrapper_Profile[SigXsecOverSM]) Creating instance of MINUIT
[#1] INFO:Fitting -- RooAddition::defaultErrorLevel(nll_simPdf_obsData) Summation contains a RooNLLVar, using its error level
[#1] INFO:Minimization -- RooProfileLL::evaluate(RooEvaluatorWrapper_Profile[SigXsecOverSM]) determining minimum likelihood for current configurations w.r.t all observable
[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
[#1] INFO:NumericIntegration -- RooRealIntegral::init(gamma_stat_channel1_bin_1_constraint_Int[gamma_stat_channel1_bin_1]) using numeric integrator RooIntegrator1D to calculate Int(gamma_stat_channel1_bin_1)
[#1] INFO:NumericIntegration -- RooRealIntegral::init(gamma_stat_channel1_bin_0_constraint_Int[gamma_stat_channel1_bin_0]) using numeric integrator RooIntegrator1D to calculate Int(gamma_stat_channel1_bin_0)
[#1] INFO:Minimization -- RooProfileLL::evaluate(RooEvaluatorWrapper_Profile[SigXsecOverSM]) minimum found at (SigXsecOverSM=1.11273)
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
.[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only
#include "TFile.h"
#include "TROOT.h"
#include "TCanvas.h"
#include "TList.h"
#include "TMath.h"
#include "TSystem.h"
#include "RooWorkspace.h"
#include "RooAbsData.h"
using namespace RooFit;
using namespace RooStats;
void StandardProfileInspectorDemo(const char *infile = "", const char *workspaceName = "combined",
const char *modelConfigName = "ModelConfig", const char *dataName = "obsData")
{
// -------------------------------------------------------
// First part is just to access a user-defined file
// or create the standard example file if it doesn't exist
const char *filename = "";
if (!strcmp(infile, "")) {
filename = "results/example_combined_GaussExample_model.root";
bool fileExist = !gSystem->AccessPathName(filename); // note opposite return code
// if file does not exists generate with histfactory
if (!fileExist) {
// Normally this would be run on the command line
cout << "will run standard hist2workspace example" << endl;
gROOT->ProcessLine(".! prepareHistFactory .");
gROOT->ProcessLine(".! hist2workspace config/example.xml");
cout << "\n\n---------------------" << endl;
cout << "Done creating example input" << endl;
cout << "---------------------\n\n" << endl;
}
} else
filename = infile;
TFile *file = TFile::Open(filename);
// -------------------------------------------------------
// Tutorial starts here
// -------------------------------------------------------
// get the workspace out of the file
// get the modelConfig out of the file
ModelConfig *mc = (ModelConfig *)w->obj(modelConfigName);
// get the modelConfig out of the file
// -----------------------------
// now use the profile inspector
TList *list = p.GetListOfProfilePlots(*data, mc);
// now make plots
TCanvas *c1 = new TCanvas("c1", "ProfileInspectorDemo", 800, 200);
if (list->GetSize() > 4) {
double n = list->GetSize();
int nx = (int)sqrt(n);
int ny = TMath::CeilNint(n / nx);
c1->Divide(ny, nx);
} else
c1->Divide(list->GetSize());
for (int i = 0; i < list->GetSize(); ++i) {
c1->cd(i + 1);
list->At(i)->Draw("al");
}
cout << endl;
}
#define gROOT
Definition TROOT.h:417
externTSystem * gSystem
Definition TSystem.h:582
Abstract base class for binned and unbinned datasets.
Definition RooAbsData.h:56
Utility class to plot conditional MLE of nuisance parameters vs.
TList * GetListOfProfilePlots(RooAbsData &data, RooStats::ModelConfig *config)
This tool makes a plot of the conditional maximum likelihood estimate of the nuisance parameter vs th...
Persistable container for RooFit projects.
The Canvas class.
Definition TCanvas.h:23
TObject * Get(const char *namecycle) override
Return pointer to object identified by namecycle.
A file, usually with extension .root, that stores data and code in the form of serialized objects in ...
Definition TFile.h:130
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.
Definition TFile.cxx:3787
A doubly linked list.
Definition TList.h:38
return c1
Definition legend1.C:41
const Int_t n
Definition legend1.C:16
VecExpr< UnaryOp< Sqrt< T >, VecExpr< A, T, D >, T >, T, D > sqrt(const VecExpr< A, T, D > &rhs)
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
Definition CodegenImpl.h:72
RooStats::ModelConfig ModelConfig
Namespace for the RooStats classes.
Definition CodegenImpl.h:66
Int_t CeilNint(Double_t x)
Returns the nearest integer of TMath::Ceil(x).
Definition TMath.h:685
Author
Kyle Cranmer

Definition in file StandardProfileInspectorDemo.C.