With default parameters the macro will attempt to run the standard hist2workspace example and read the ROOT file that it produces.
The macro will scan through all the categories in a simPdf find the corresponding observable. For each category, it will loop through each of the nuisance parameters and plot
You can specify how many sigma to vary by changing nSigmaToVary. You can also change the signal rate by changing muVal.
Processing /mnt/build/workspace/root-makedoc-v612/rootspi/rdoc/src/v6-12-00-patches/tutorials/roostats/StandardHistFactoryPlotsWithCategories.C...
[1mRooFit v3.60 -- Developed by Wouter Verkerke and David Kirkby[0m
Copyright (C) 2000-2013 NIKHEF, University of California & Stanford University
All rights reserved, please read http://roofit.sourceforge.net/license.txt
1) 0x4c097d0 RooRealVar:: alpha_syst2 = 0 L(-5 - 5) "alpha_syst2"
2) 0x4c11a10 RooRealVar:: alpha_syst3 = 0 L(-5 - 5) "alpha_syst3"
3) 0x4bb6100 RooRealVar:: gamma_stat_channel1_bin_0 = 1 L(0 - 1.25) "gamma_stat_channel1_bin_0"
4) 0x4bd0970 RooRealVar:: gamma_stat_channel1_bin_1 = 1 L(0 - 1.5) "gamma_stat_channel1_bin_1"
check expectedData by category
Is a simultaneous PDF
on type channel1
channelCat==channelCat::channel1
channel1 channel1
[#1] INFO:Plotting -- RooTreeData::plotOn: plotting 234 events out of 234 total events
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
channelCat==channelCat::channel1
channel1 channel1
[#1] INFO:Plotting -- RooTreeData::plotOn: plotting 234 events out of 234 total events
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
channelCat==channelCat::channel1
channel1 channel1
[#1] INFO:Plotting -- RooTreeData::plotOn: plotting 234 events out of 234 total events
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
channelCat==channelCat::channel1
channel1 channel1
[#1] INFO:Plotting -- RooTreeData::plotOn: plotting 234 events out of 234 total events
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
[#0] ERROR:Eval -- RooAbsReal::logEvalError(channel1_model) evaluation error,
origin : RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
message : p.d.f normalization integral is zero or negative
server values: !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1.5 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1.5 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=2 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=2 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1.25 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1.5 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1.75 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=2 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
[#1] INFO:NumericIntegration -- RooRealIntegral::init(channel1_model_Int[obs_x_channel1]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_channel1)
[#0] ERROR:Eval -- RooAbsReal::logEvalError(channel1_model) evaluation error,
origin : RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
message : p.d.f normalization integral is zero or negative
server values: !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1.5 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1.5 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=2 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=2 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1.25 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1.5 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=1.75 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)
[#0] WARNING:Plotting -- At observable [x]=2 RooRealSumPdf::channel1_model[ binWidth_obs_x_channel1_0 * L_x_signal_channel1_overallSyst_x_Exp + binWidth_obs_x_channel1_1 * L_x_background1_channel1_overallSyst_x_StatUncert + binWidth_obs_x_channel1_2 * L_x_background2_channel1_overallSyst_x_StatUncert ]
p.d.f normalization integral is zero or negative @ !funcList=(L_x_signal_channel1_overallSyst_x_Exp = 0,L_x_background1_channel1_overallSyst_x_StatUncert = 0,L_x_background2_channel1_overallSyst_x_StatUncert = 0), !coefList=(binWidth_obs_x_channel1_0 = 2,binWidth_obs_x_channel1_1 = 2,binWidth_obs_x_channel1_2 = 2)