Logo ROOT  
Reference Guide
rf709_BarlowBeeston.C File Reference

Detailed Description

View in nbviewer Open in SWAN

Implementing the Barlow-Beeston method for taking into account the statistical uncertainty of a Monte-Carlo fit template.

RooFit v3.60 -- Developed by Wouter Verkerke and David Kirkby
Copyright (C) 2000-2013 NIKHEF, University of California & Stanford University
All rights reserved, please read http://roofit.sourceforge.net/license.txt
[#1] INFO:Minization -- p.d.f. provides expected number of events, including extended term in likelihood.
[#1] INFO:Minization -- RooMinimizer::optimizeConst: activating const optimization
[#1] INFO:Minization -- The following expressions have been identified as constant and will be precalculated and cached: (p_h_sig,p_h_bkg)
**********
** 1 **SET PRINT 0
**********
**********
** 2 **SET NOGRAD
**********
PARAMETER DEFINITIONS:
NO. NAME VALUE STEP SIZE LIMITS
1 Abkg 1.00000e+00 4.95000e-01 1.00000e-02 5.00000e+03
2 Asig 1.00000e+00 4.95000e-01 1.00000e-02 5.00000e+03
**********
** 3 **SET ERR 0.5
**********
**********
** 4 **SET PRINT 0
**********
**********
** 5 **SET STR 1
**********
**********
** 6 **MIGRAD 1000 1
**********
MIGRAD MINIMIZATION HAS CONVERGED.
MIGRAD WILL VERIFY CONVERGENCE AND ERROR MATRIX.
FCN=-2388.31 FROM MIGRAD STATUS=CONVERGED 59 CALLS 60 TOTAL
EDM=6.50963e-06 STRATEGY= 1 ERROR MATRIX ACCURATE
EXT PARAMETER STEP FIRST
NO. NAME VALUE ERROR SIZE DERIVATIVE
1 Abkg 6.14547e-02 2.11669e-03 4.23105e-06 -2.89246e+00
2 Asig 8.33778e-01 1.89800e-01 9.38840e-05 -8.95027e-01
ERR DEF= 0.5
**********
** 7 **SET ERR 0.5
**********
**********
** 8 **SET PRINT 0
**********
**********
** 9 **HESSE 1000
**********
FCN=-2388.31 FROM HESSE STATUS=OK 10 CALLS 70 TOTAL
EDM=6.51699e-06 STRATEGY= 1 ERROR MATRIX ACCURATE
EXT PARAMETER INTERNAL INTERNAL
NO. NAME VALUE ERROR STEP SIZE VALUE
1 Abkg 6.14547e-02 2.11685e-03 8.46210e-07 -1.56438e+00
2 Asig 8.33778e-01 1.89814e-01 1.87768e-05 -1.54512e+00
ERR DEF= 0.5
[#1] INFO:Minization -- RooMinimizer::optimizeConst: deactivating const optimization
[#1] INFO:Minization -- p.d.f. provides expected number of events, including extended term in likelihood.
[#1] INFO:Minization -- Including the following constraint terms in minimization: (hc_sig,hc_bkg)
[#1] INFO:Fitting -- RooAddition::defaultErrorLevel(nll_model1_sumData_with_constr) Summation contains a RooNLLVar, using its error level
[#1] INFO:Minization -- RooMinimizer::optimizeConst: activating const optimization
[#1] INFO:Minization -- The following expressions will be evaluated in cache-and-track mode: (p_ph_sig,p_ph_bkg)
**********
** 1 **SET PRINT 0
**********
**********
** 2 **SET NOGRAD
**********
PARAMETER DEFINITIONS:
NO. NAME VALUE STEP SIZE LIMITS
1 Abkg 1.00000e+00 4.95000e-01 1.00000e-02 5.00000e+03
2 Asig 1.00000e+00 4.95000e-01 1.00000e-02 5.00000e+03
3 p_ph_bkg_gamma_bin_0 1.00000e+00 4.96292e-02 0.00000e+00 1.00000e+03
4 p_ph_bkg_gamma_bin_1 1.00000e+00 4.96292e-02 0.00000e+00 1.00000e+03
5 p_ph_bkg_gamma_bin_10 1.00000e+00 4.81683e-02 0.00000e+00 1.00000e+03
6 p_ph_bkg_gamma_bin_11 1.00000e+00 5.17088e-02 0.00000e+00 1.00000e+03
7 p_ph_bkg_gamma_bin_12 1.00000e+00 5.11645e-02 0.00000e+00 1.00000e+03
8 p_ph_bkg_gamma_bin_13 1.00000e+00 5.01255e-02 0.00000e+00 1.00000e+03
9 p_ph_bkg_gamma_bin_14 1.00000e+00 5.13665e-02 0.00000e+00 1.00000e+03
10 p_ph_bkg_gamma_bin_15 1.00000e+00 4.93865e-02 0.00000e+00 1.00000e+03
11 p_ph_bkg_gamma_bin_16 1.00000e+00 5.07020e-02 0.00000e+00 1.00000e+03
12 p_ph_bkg_gamma_bin_17 1.00000e+00 4.86792e-02 0.00000e+00 1.00000e+03
13 p_ph_bkg_gamma_bin_18 1.00000e+00 5.27780e-02 0.00000e+00 1.00000e+03
14 p_ph_bkg_gamma_bin_19 1.00000e+00 4.85643e-02 0.00000e+00 1.00000e+03
15 p_ph_bkg_gamma_bin_2 1.00000e+00 4.90881e-02 0.00000e+00 1.00000e+03
16 p_ph_bkg_gamma_bin_20 1.00000e+00 4.95074e-02 0.00000e+00 1.00000e+03
17 p_ph_bkg_gamma_bin_21 1.00000e+00 4.96904e-02 0.00000e+00 1.00000e+03
18 p_ph_bkg_gamma_bin_22 1.00000e+00 5.10310e-02 0.00000e+00 1.00000e+03
19 p_ph_bkg_gamma_bin_23 1.00000e+00 4.86792e-02 0.00000e+00 1.00000e+03
20 p_ph_bkg_gamma_bin_24 1.00000e+00 4.95074e-02 0.00000e+00 1.00000e+03
21 p_ph_bkg_gamma_bin_3 1.00000e+00 5.17088e-02 0.00000e+00 1.00000e+03
22 p_ph_bkg_gamma_bin_4 1.00000e+00 5.08329e-02 0.00000e+00 1.00000e+03
23 p_ph_bkg_gamma_bin_5 1.00000e+00 5.06370e-02 0.00000e+00 1.00000e+03
24 p_ph_bkg_gamma_bin_6 1.00000e+00 5.17088e-02 0.00000e+00 1.00000e+03
25 p_ph_bkg_gamma_bin_7 1.00000e+00 4.81683e-02 0.00000e+00 1.00000e+03
26 p_ph_bkg_gamma_bin_8 1.00000e+00 4.89116e-02 0.00000e+00 1.00000e+03
27 p_ph_bkg_gamma_bin_9 1.00000e+00 4.97519e-02 0.00000e+00 1.00000e+03
28 p_ph_sig_gamma_bin_11 1.00000e+00 3.53553e-01 0.00000e+00 1.00000e+03
29 p_ph_sig_gamma_bin_12 1.00000e+00 2.35702e-01 0.00000e+00 1.00000e+03
30 p_ph_sig_gamma_bin_13 1.00000e+00 2.42536e-01 0.00000e+00 1.00000e+03
31 p_ph_sig_gamma_bin_14 1.00000e+00 4.08248e-01 0.00000e+00 1.00000e+03
32 p_ph_sig_gamma_bin_15 1.00000e+00 1.00000e+00 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE32 IS AT ITS LOWER ALLOWED LIMIT.
**********
** 3 **SET ERR 0.5
**********
**********
** 4 **SET PRINT 0
**********
**********
** 5 **SET STR 1
**********
**********
** 6 **MIGRAD 1.6e+04 1
**********
MIGRAD MINIMIZATION HAS CONVERGED.
FCN=-2282.23 FROM MIGRAD STATUS=CONVERGED 678 CALLS 679 TOTAL
EDM=3.22904e-05 STRATEGY= 1 ERROR MATRIX UNCERTAINTY 4.0 per cent
EXT PARAMETER STEP FIRST
NO. NAME VALUE ERROR SIZE DERIVATIVE
1 Abkg 6.13800e-02 2.20007e-03 1.23596e-06 2.83314e+01
2 Asig 8.50507e-01 2.30325e-01 6.38421e-05 5.87286e-01
3 p_ph_bkg_gamma_bin_0 9.98047e-01 3.71725e-02 -7.16183e-06 5.44794e-02
4 p_ph_bkg_gamma_bin_1 1.00029e+00 3.72063e-02 -6.99607e-06 6.61256e-02
5 p_ph_bkg_gamma_bin_10 9.80291e-01 3.58648e-02 -8.43676e-06 -4.39623e-02
6 p_ph_bkg_gamma_bin_11 1.00612e+00 3.95761e-02 -1.30946e-05 -2.40671e+00
7 p_ph_bkg_gamma_bin_12 1.00453e+00 4.49136e-02 2.72725e-05 -2.74507e+00
8 p_ph_bkg_gamma_bin_13 9.91157e-01 4.00819e-02 1.95392e-05 -5.92968e-01
9 p_ph_bkg_gamma_bin_14 9.95972e-01 3.84117e-02 -7.35477e-06 -9.64110e-01
10 p_ph_bkg_gamma_bin_15 1.00900e+00 3.73278e-02 -1.24049e-05 2.95046e-01
11 p_ph_bkg_gamma_bin_16 1.02997e+00 3.84551e-02 -4.71081e-06 2.00609e-01
12 p_ph_bkg_gamma_bin_17 1.00768e+00 3.66321e-02 -6.44293e-06 1.07790e-01
13 p_ph_bkg_gamma_bin_18 1.01965e+00 3.97945e-02 -5.52428e-06 1.43183e-01
14 p_ph_bkg_gamma_bin_19 9.74997e-01 3.60743e-02 -8.80379e-06 -7.43751e-02
15 p_ph_bkg_gamma_bin_2 9.96150e-01 3.67541e-02 -7.30122e-06 4.55320e-02
16 p_ph_bkg_gamma_bin_20 9.99851e-01 3.71118e-02 -7.02865e-06 6.41653e-02
17 p_ph_bkg_gamma_bin_21 9.98263e-01 3.72199e-02 -7.14591e-06 5.54687e-02
18 p_ph_bkg_gamma_bin_22 9.98316e-01 3.81884e-02 -7.14203e-06 5.28519e-02
19 p_ph_bkg_gamma_bin_23 9.83937e-01 3.62827e-02 -8.18043e-06 -2.20353e-02
20 p_ph_bkg_gamma_bin_24 1.02664e+00 3.75311e-02 -4.97535e-06 1.95313e-01
21 p_ph_bkg_gamma_bin_3 1.00553e+00 3.87905e-02 -6.60476e-06 8.55876e-02
22 p_ph_bkg_gamma_bin_4 9.90574e-01 3.79282e-02 -7.70648e-06 1.42148e-02
23 p_ph_bkg_gamma_bin_5 9.92294e-01 3.78128e-02 -7.58214e-06 2.31733e-02
24 p_ph_bkg_gamma_bin_6 1.01041e+00 3.88677e-02 -6.23632e-06 1.08003e-01
25 p_ph_bkg_gamma_bin_7 9.97199e-01 3.61069e-02 -7.22424e-06 5.31287e-02
26 p_ph_bkg_gamma_bin_8 9.80281e-01 3.63974e-02 -8.43747e-06 -4.26945e-02
27 p_ph_bkg_gamma_bin_9 1.00975e+00 3.74398e-02 -6.28583e-06 1.13462e-01
28 p_ph_sig_gamma_bin_11 1.09459e+00 2.95086e-01 -2.14193e-04 -1.90672e-01
29 p_ph_sig_gamma_bin_12 1.07095e+00 2.09961e-01 -8.87826e-05 3.71203e-01
30 p_ph_sig_gamma_bin_13 8.91495e-01 1.94710e-01 -4.27837e-05 6.41259e-01
31 p_ph_sig_gamma_bin_14 9.47683e-01 3.09459e-01 -1.41412e-04 -5.27753e-02
32 p_ph_sig_gamma_bin_15 1.14095e+00 8.19493e-01 1.63221e-04 8.16586e-03
ERR DEF= 0.5
**********
** 7 **SET ERR 0.5
**********
**********
** 8 **SET PRINT 0
**********
**********
** 9 **HESSE 1.6e+04
**********
FCN=-2282.23 FROM HESSE STATUS=OK 639 CALLS 1318 TOTAL
EDM=7.72255e-05 STRATEGY= 1 ERROR MATRIX ACCURATE
EXT PARAMETER INTERNAL INTERNAL
NO. NAME VALUE ERROR STEP SIZE VALUE
1 Abkg 6.13800e-02 2.22709e-03 4.12889e-06 -1.56439e+00
2 Asig 8.50507e-01 2.35778e-01 9.17056e-05 -1.54486e+00
3 p_ph_bkg_gamma_bin_0 9.98047e-01 4.74228e-02 4.94370e-05 -1.50760e+00
4 p_ph_bkg_gamma_bin_1 1.00029e+00 4.74763e-02 4.94370e-05 -1.50753e+00
5 p_ph_bkg_gamma_bin_10 9.80291e-01 4.56200e-02 4.79818e-05 -1.50817e+00
6 p_ph_bkg_gamma_bin_11 1.00612e+00 5.08524e-02 5.21176e-05 -1.50735e+00
7 p_ph_bkg_gamma_bin_12 1.00453e+00 5.09701e-02 5.19588e-05 -1.50740e+00
8 p_ph_bkg_gamma_bin_13 9.91157e-01 4.89292e-02 5.06394e-05 -1.50782e+00
9 p_ph_bkg_gamma_bin_14 9.95972e-01 4.97163e-02 5.15499e-05 -1.50767e+00
10 p_ph_bkg_gamma_bin_15 1.00900e+00 4.76423e-02 4.92850e-05 -1.50726e+00
11 p_ph_bkg_gamma_bin_16 1.02997e+00 4.92155e-02 5.05056e-05 -1.50660e+00
12 p_ph_bkg_gamma_bin_17 1.00768e+00 4.67445e-02 4.84907e-05 -1.50730e+00
13 p_ph_bkg_gamma_bin_18 1.01965e+00 5.09631e-02 5.25736e-05 -1.50692e+00
14 p_ph_bkg_gamma_bin_19 9.74997e-01 4.58683e-02 4.83762e-05 -1.50834e+00
15 p_ph_bkg_gamma_bin_2 9.96150e-01 4.68633e-02 4.88980e-05 -1.50766e+00
16 p_ph_bkg_gamma_bin_20 9.99851e-01 4.73499e-02 4.93157e-05 -1.50754e+00
17 p_ph_bkg_gamma_bin_21 9.98263e-01 4.74862e-02 4.94980e-05 -1.50760e+00
18 p_ph_bkg_gamma_bin_22 9.98316e-01 4.87627e-02 5.08334e-05 -1.50759e+00
19 p_ph_bkg_gamma_bin_23 9.83937e-01 4.61877e-02 4.84907e-05 -1.50805e+00
20 p_ph_bkg_gamma_bin_24 1.02664e+00 4.79832e-02 4.93156e-05 -1.50670e+00
21 p_ph_bkg_gamma_bin_3 1.00553e+00 4.95866e-02 5.15085e-05 -1.50737e+00
22 p_ph_bkg_gamma_bin_4 9.90574e-01 4.83846e-02 5.06360e-05 -1.50784e+00
23 p_ph_bkg_gamma_bin_5 9.92294e-01 4.82410e-02 5.04409e-05 -1.50778e+00
24 p_ph_bkg_gamma_bin_6 1.01041e+00 4.97071e-02 5.15085e-05 -1.50721e+00
25 p_ph_bkg_gamma_bin_7 9.97199e-01 4.60138e-02 4.79818e-05 -1.50763e+00
26 p_ph_bkg_gamma_bin_8 9.80281e-01 4.63204e-02 4.87222e-05 -1.50817e+00
27 p_ph_bkg_gamma_bin_9 1.00975e+00 4.78188e-02 4.95592e-05 -1.50723e+00
28 p_ph_sig_gamma_bin_11 1.09459e+00 3.37438e-01 3.28479e-04 -1.50462e+00
29 p_ph_sig_gamma_bin_12 1.07095e+00 2.21326e-01 1.99896e-04 -1.50533e+00
30 p_ph_sig_gamma_bin_13 8.91495e-01 2.03106e-01 2.03458e-04 -1.51107e+00
31 p_ph_sig_gamma_bin_14 9.47683e-01 3.57655e-01 3.77115e-04 -1.50922e+00
32 p_ph_sig_gamma_bin_15 1.14095e+00 1.11196e+00 1.08088e-03 -1.50323e+00
ERR DEF= 0.5
[#1] INFO:Minization -- RooMinimizer::optimizeConst: deactivating const optimization
[#1] INFO:Minization -- p.d.f. provides expected number of events, including extended term in likelihood.
[#1] INFO:Minization -- Including the following constraint terms in minimization: (hc_sigbkg)
[#1] INFO:Fitting -- RooAddition::defaultErrorLevel(nll_model2_sumData_with_constr) Summation contains a RooNLLVar, using its error level
[#1] INFO:Minization -- RooMinimizer::optimizeConst: activating const optimization
[#1] INFO:Minization -- The following expressions will be evaluated in cache-and-track mode: (p_ph_sig2,p_ph_bkg2)
**********
** 1 **SET PRINT 0
**********
**********
** 2 **SET NOGRAD
**********
PARAMETER DEFINITIONS:
NO. NAME VALUE STEP SIZE LIMITS
1 Abkg 1.00000e+00 4.95000e-01 1.00000e-02 5.00000e+03
2 Asig 1.00000e+00 4.95000e-01 1.00000e-02 5.00000e+03
3 p_ph_sig2_gamma_bin_0 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE3 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE3 BROUGHT BACK INSIDE LIMITS.
4 p_ph_sig2_gamma_bin_1 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE4 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE4 BROUGHT BACK INSIDE LIMITS.
5 p_ph_sig2_gamma_bin_10 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE5 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE5 BROUGHT BACK INSIDE LIMITS.
6 p_ph_sig2_gamma_bin_11 1.00000e+00 3.53553e-01 0.00000e+00 1.00000e+03
7 p_ph_sig2_gamma_bin_12 1.00000e+00 2.35702e-01 0.00000e+00 1.00000e+03
8 p_ph_sig2_gamma_bin_13 1.00000e+00 2.42536e-01 0.00000e+00 1.00000e+03
9 p_ph_sig2_gamma_bin_14 1.00000e+00 4.08248e-01 0.00000e+00 1.00000e+03
10 p_ph_sig2_gamma_bin_15 1.00000e+00 1.00000e+00 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE10 IS AT ITS LOWER ALLOWED LIMIT.
11 p_ph_sig2_gamma_bin_16 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE11 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE11 BROUGHT BACK INSIDE LIMITS.
12 p_ph_sig2_gamma_bin_17 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE12 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE12 BROUGHT BACK INSIDE LIMITS.
13 p_ph_sig2_gamma_bin_18 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE13 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE13 BROUGHT BACK INSIDE LIMITS.
14 p_ph_sig2_gamma_bin_19 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE14 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE14 BROUGHT BACK INSIDE LIMITS.
15 p_ph_sig2_gamma_bin_2 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE15 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE15 BROUGHT BACK INSIDE LIMITS.
16 p_ph_sig2_gamma_bin_20 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE16 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE16 BROUGHT BACK INSIDE LIMITS.
17 p_ph_sig2_gamma_bin_21 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE17 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE17 BROUGHT BACK INSIDE LIMITS.
18 p_ph_sig2_gamma_bin_22 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE18 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE18 BROUGHT BACK INSIDE LIMITS.
19 p_ph_sig2_gamma_bin_23 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE19 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE19 BROUGHT BACK INSIDE LIMITS.
20 p_ph_sig2_gamma_bin_24 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE20 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE20 BROUGHT BACK INSIDE LIMITS.
21 p_ph_sig2_gamma_bin_3 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE21 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE21 BROUGHT BACK INSIDE LIMITS.
22 p_ph_sig2_gamma_bin_4 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE22 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE22 BROUGHT BACK INSIDE LIMITS.
23 p_ph_sig2_gamma_bin_5 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE23 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE23 BROUGHT BACK INSIDE LIMITS.
24 p_ph_sig2_gamma_bin_6 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE24 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE24 BROUGHT BACK INSIDE LIMITS.
25 p_ph_sig2_gamma_bin_7 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE25 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE25 BROUGHT BACK INSIDE LIMITS.
26 p_ph_sig2_gamma_bin_8 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE26 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE26 BROUGHT BACK INSIDE LIMITS.
27 p_ph_sig2_gamma_bin_9 1.00000e+00 inf 0.00000e+00 1.00000e+03
MINUIT WARNING IN PARAMETR
============== VARIABLE27 BROUGHT BACK INSIDE LIMITS.
MINUIT WARNING IN PARAMETR
============== VARIABLE27 BROUGHT BACK INSIDE LIMITS.
**********
** 3 **SET ERR 0.5
**********
**********
** 4 **SET PRINT 0
**********
**********
** 5 **SET STR 1
**********
**********
** 6 **MIGRAD 1.35e+04 1
**********
MIGRAD MINIMIZATION HAS CONVERGED.
MIGRAD WILL VERIFY CONVERGENCE AND ERROR MATRIX.
FCN=-2291.45 FROM MIGRAD STATUS=CONVERGED 1074 CALLS 1075 TOTAL
EDM=5.33608e-05 STRATEGY= 1 ERROR MATRIX ACCURATE
EXT PARAMETER STEP FIRST
NO. NAME VALUE ERROR SIZE DERIVATIVE
1 Abkg 6.14396e-02 2.21881e-03 4.13559e-06 -4.41296e+01
2 Asig 8.34408e-01 2.03008e-01 9.30538e-05 -8.65120e-01
3 p_ph_sig2_gamma_bin_0 9.97977e-01 4.74184e-02 4.95146e-05 2.82438e-01
4 p_ph_sig2_gamma_bin_1 1.00022e+00 4.74717e-02 4.95144e-05 2.30502e-01
5 p_ph_sig2_gamma_bin_10 9.80256e-01 4.56170e-02 4.80590e-05 7.14152e-01
6 p_ph_sig2_gamma_bin_11 1.01066e+00 4.88753e-02 5.04866e-05 8.12095e-01
7 p_ph_sig2_gamma_bin_12 1.01175e+00 4.83913e-02 4.87304e-05 1.45863e-01
8 p_ph_sig2_gamma_bin_13 9.83606e-01 4.66986e-02 4.79414e-05 1.21197e-01
9 p_ph_sig2_gamma_bin_14 9.94795e-01 4.83050e-02 5.04315e-05 8.78700e-01
10 p_ph_sig2_gamma_bin_15 1.00964e+00 4.73305e-02 4.91474e-05 1.06952e-01
11 p_ph_sig2_gamma_bin_16 1.02983e+00 4.92085e-02 5.05815e-05 -4.88517e-01
12 p_ph_sig2_gamma_bin_17 1.00759e+00 4.67394e-02 4.85659e-05 5.74385e-02
13 p_ph_sig2_gamma_bin_18 1.01953e+00 5.09568e-02 5.26537e-05 -2.13148e-01
14 p_ph_sig2_gamma_bin_19 9.74972e-01 4.58656e-02 4.84546e-05 8.16686e-01
15 p_ph_sig2_gamma_bin_2 9.96083e-01 4.68591e-02 4.89750e-05 3.33076e-01
16 p_ph_sig2_gamma_bin_20 9.99777e-01 4.73454e-02 4.93929e-05 2.41903e-01
17 p_ph_sig2_gamma_bin_21 9.98192e-01 4.74818e-02 4.95757e-05 2.76785e-01
18 p_ph_sig2_gamma_bin_22 9.98245e-01 4.87583e-02 5.09132e-05 2.61429e-01
19 p_ph_sig2_gamma_bin_23 9.83895e-01 4.61844e-02 4.85684e-05 6.19089e-01
20 p_ph_sig2_gamma_bin_24 1.02651e+00 4.79766e-02 4.93901e-05 -4.24164e-01
21 p_ph_sig2_gamma_bin_3 1.00545e+00 4.95815e-02 5.15886e-05 9.86818e-02
22 p_ph_sig2_gamma_bin_4 9.90519e-01 4.83807e-02 5.07164e-05 4.30253e-01
23 p_ph_sig2_gamma_bin_5 9.92236e-01 4.82370e-02 5.05207e-05 3.96794e-01
24 p_ph_sig2_gamma_bin_6 1.01031e+00 4.97016e-02 5.15880e-05 -9.57956e-03
25 p_ph_sig2_gamma_bin_7 9.97130e-01 4.60096e-02 4.80572e-05 3.20349e-01
26 p_ph_sig2_gamma_bin_8 9.80246e-01 4.63173e-02 4.88006e-05 6.92914e-01
27 p_ph_sig2_gamma_bin_9 1.00966e+00 4.78135e-02 4.96358e-05 5.22262e-03
ERR DEF= 0.5
**********
** 7 **SET ERR 0.5
**********
**********
** 8 **SET PRINT 0
**********
**********
** 9 **HESSE 1.35e+04
**********
FCN=-2291.45 FROM HESSE STATUS=OK 460 CALLS 1535 TOTAL
EDM=5.33547e-05 STRATEGY= 1 ERROR MATRIX ACCURATE
EXT PARAMETER INTERNAL INTERNAL
NO. NAME VALUE ERROR STEP SIZE VALUE
1 Abkg 6.14396e-02 2.21887e-03 8.27117e-07 -1.56438e+00
2 Asig 8.34408e-01 2.02972e-01 1.86108e-05 -1.54511e+00
3 p_ph_sig2_gamma_bin_0 9.97977e-01 4.74183e-02 9.90292e-06 -1.50760e+00
4 p_ph_sig2_gamma_bin_1 1.00022e+00 4.74716e-02 9.90288e-06 -1.50753e+00
5 p_ph_sig2_gamma_bin_10 9.80256e-01 4.56169e-02 9.61180e-06 -1.50817e+00
6 p_ph_sig2_gamma_bin_11 1.01066e+00 4.88739e-02 1.00973e-05 -1.50720e+00
7 p_ph_sig2_gamma_bin_12 1.01175e+00 4.83851e-02 9.74607e-06 -1.50717e+00
8 p_ph_sig2_gamma_bin_13 9.83606e-01 4.66936e-02 9.58827e-06 -1.50806e+00
9 p_ph_sig2_gamma_bin_14 9.94795e-01 4.83042e-02 1.00863e-05 -1.50771e+00
10 p_ph_sig2_gamma_bin_15 1.00964e+00 4.73303e-02 9.82949e-06 -1.50724e+00
11 p_ph_sig2_gamma_bin_16 1.02983e+00 4.92084e-02 1.01163e-05 -1.50660e+00
12 p_ph_sig2_gamma_bin_17 1.00759e+00 4.67393e-02 9.71318e-06 -1.50730e+00
13 p_ph_sig2_gamma_bin_18 1.01953e+00 5.09567e-02 1.05307e-05 -1.50693e+00
14 p_ph_sig2_gamma_bin_19 9.74972e-01 4.58655e-02 9.69093e-06 -1.50834e+00
15 p_ph_sig2_gamma_bin_2 9.96083e-01 4.68590e-02 9.79499e-06 -1.50766e+00
16 p_ph_sig2_gamma_bin_20 9.99777e-01 4.73452e-02 9.87858e-06 -1.50755e+00
17 p_ph_sig2_gamma_bin_21 9.98192e-01 4.74817e-02 9.91514e-06 -1.50760e+00
18 p_ph_sig2_gamma_bin_22 9.98245e-01 4.87581e-02 1.01826e-05 -1.50760e+00
19 p_ph_sig2_gamma_bin_23 9.83895e-01 4.61843e-02 9.71367e-06 -1.50805e+00
20 p_ph_sig2_gamma_bin_24 1.02651e+00 4.79764e-02 9.87802e-06 -1.50671e+00
21 p_ph_sig2_gamma_bin_3 1.00545e+00 4.95814e-02 1.03177e-05 -1.50737e+00
22 p_ph_sig2_gamma_bin_4 9.90519e-01 4.83806e-02 1.01433e-05 -1.50784e+00
23 p_ph_sig2_gamma_bin_5 9.92236e-01 4.82369e-02 1.01041e-05 -1.50779e+00
24 p_ph_sig2_gamma_bin_6 1.01031e+00 4.97015e-02 2.06352e-06 -1.50721e+00
25 p_ph_sig2_gamma_bin_7 9.97130e-01 4.60094e-02 9.61144e-06 -1.50763e+00
26 p_ph_sig2_gamma_bin_8 9.80246e-01 4.63172e-02 9.76012e-06 -1.50817e+00
27 p_ph_sig2_gamma_bin_9 1.00966e+00 4.78134e-02 1.98543e-06 -1.50724e+00
ERR DEF= 0.5
[#1] INFO:Minization -- RooMinimizer::optimizeConst: deactivating const optimization
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model0) directly selected PDF components: (p_h_sig)
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model0) indirectly selected PDF components: ()
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model0) directly selected PDF components: (p_h_bkg)
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model0) indirectly selected PDF components: ()
[#1] INFO:Plotting -- RooPlot::updateFitRangeNorm: New event count of 50 will supercede previous event count of 1050 for normalization of PDF projections
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model1) directly selected PDF components: (p_ph_sig)
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model1) indirectly selected PDF components: (sp_ph)
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model1) directly selected PDF components: (p_ph_bkg)
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model1) indirectly selected PDF components: (sp_ph)
[#1] INFO:Plotting -- RooPlot::updateFitRangeNorm: New event count of 50 will supercede previous event count of 1050 for normalization of PDF projections
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model2) directly selected PDF components: (p_ph_sig2)
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model2) indirectly selected PDF components: (sp_ph)
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model2) directly selected PDF components: (p_ph_bkg2)
[#1] INFO:Plotting -- RooAbsPdf::plotOn(model2) indirectly selected PDF components: (sp_ph)
[#1] INFO:Plotting -- RooPlot::updateFitRangeNorm: New event count of 50 will supercede previous event count of 1050 for normalization of PDF projections
Asig [normal ] = 0.833778 +/- 0.189814
Asig [BB ] = 0.850507 +/- 0.235778
Asig [BBlight] = 0.834408 +/- 0.202972
#include "RooRealVar.h"
#include "RooGaussian.h"
#include "RooUniform.h"
#include "RooDataSet.h"
#include "RooDataHist.h"
#include "RooHistFunc.h"
#include "RooRealSumPdf.h"
#include "RooProdPdf.h"
#include "RooPlot.h"
#include "TCanvas.h"
#include "TPaveText.h"
#include <iostream>
#include <memory>
using namespace RooFit;
void rf709_BarlowBeeston()
{
// First, construct a likelihood model with a Gaussian signal on top of a uniform background
RooRealVar x("x", "x", -20, 20);
x.setBins(25);
RooRealVar meanG("meanG", "meanG", 1, -10, 10);
RooRealVar sigG("sigG", "sigG", 1.5, -10, 10);
RooGaussian g("g", "Gauss", x, meanG, sigG);
RooUniform u("u", "Uniform", x);
// Generate the data to be fitted
std::unique_ptr<RooDataSet> sigData(g.generate(x, 50));
std::unique_ptr<RooDataSet> bkgData(u.generate(x, 1000));
RooDataSet sumData("sumData", "Gauss + Uniform", x);
sumData.append(*sigData);
sumData.append(*bkgData);
// Make histogram templates for signal and background.
// Let's take a signal distribution with low statistics and a more accurate
// background distribution.
// Normally, these come from Monte Carlo simulations, but we will just generate them.
std::unique_ptr<RooDataHist> dh_sig( g.generateBinned(x, 50) );
std::unique_ptr<RooDataHist> dh_bkg( u.generateBinned(x, 10000) );
// ***** Case 0 - 'Rigid templates' *****
// Construct histogram shapes for signal and background
RooHistFunc p_h_sig("p_h_sig","p_h_sig",x,*dh_sig);
RooHistFunc p_h_bkg("p_h_bkg","p_h_bkg",x,*dh_bkg);
// Construct scale factors for adding the two distributions
RooRealVar Asig0("Asig","Asig",1,0.01,5000);
RooRealVar Abkg0("Abkg","Abkg",1,0.01,5000);
// Construct the sum model
RooRealSumPdf model0("model0","model0",
RooArgList(p_h_sig,p_h_bkg),
RooArgList(Asig0,Abkg0),
true);
// ***** Case 1 - 'Barlow Beeston' *****
// Construct parameterized histogram shapes for signal and background
RooParamHistFunc p_ph_sig1("p_ph_sig","p_ph_sig",*dh_sig);
RooParamHistFunc p_ph_bkg1("p_ph_bkg","p_ph_bkg",*dh_bkg);
RooRealVar Asig1("Asig","Asig",1,0.01,5000);
RooRealVar Abkg1("Abkg","Abkg",1,0.01,5000);
// Construct the sum of these
RooRealSumPdf model_tmp("sp_ph", "sp_ph",
RooArgList(p_ph_sig1,p_ph_bkg1),
RooArgList(Asig1,Abkg1),
true);
// Construct the subsidiary poisson measurements constraining the histogram parameters
// These ensure that the bin contents of the histograms are only allowed to vary within
// the statistical uncertainty of the Monte Carlo.
RooHistConstraint hc_sig("hc_sig","hc_sig",p_ph_sig1);
RooHistConstraint hc_bkg("hc_bkg","hc_bkg",p_ph_bkg1);
// Construct the joint model with template PDFs and constraints
RooProdPdf model1("model1","model1",RooArgSet(hc_sig,hc_bkg),Conditional(model_tmp,x));
// ***** Case 2 - 'Barlow Beeston' light (one parameter per bin for all samples) *****
// Construct the histogram shapes, using the same parameters for signal and background
// This requires passing the first histogram to the second, so that their common parameters
// can be re-used.
// The first ParamHistFunc will create one parameter per bin, such as `p_ph_sig2_gamma_bin_0`.
// This allows bin 0 to fluctuate up and down.
// Then, the SAME parameters are connected to the background histogram, so the bins flucutate
// synchronously. This reduces the number of parameters.
RooParamHistFunc p_ph_sig2("p_ph_sig2", "p_ph_sig2", *dh_sig);
RooParamHistFunc p_ph_bkg2("p_ph_bkg2", "p_ph_bkg2", *dh_bkg, p_ph_sig2, true);
RooRealVar Asig2("Asig","Asig",1,0.01,5000);
RooRealVar Abkg2("Abkg","Abkg",1,0.01,5000);
// As before, construct the sum of signal2 and background2
RooRealSumPdf model2_tmp("sp_ph","sp_ph",
RooArgList(p_ph_sig2,p_ph_bkg2),
RooArgList(Asig2,Abkg2),
true);
// Construct the subsidiary poisson measurements constraining the statistical fluctuations
RooHistConstraint hc_sigbkg("hc_sigbkg","hc_sigbkg",RooArgSet(p_ph_sig2,p_ph_bkg2));
// Construct the joint model
RooProdPdf model2("model2","model2",hc_sigbkg, RooFit::Conditional(model2_tmp,x));
// ************ Fit all models to data and plot *********************
auto result0 = model0.fitTo(sumData, PrintLevel(0), Save());
auto result1 = model1.fitTo(sumData, PrintLevel(0), Save());
auto result2 = model2.fitTo(sumData, PrintLevel(0), Save());
TCanvas* can = new TCanvas("can", "", 1500, 600);
can->Divide(3,1);
TPaveText pt(-19.5, 1, -2, 25);
pt.SetFillStyle(0);
can->cd(1);
auto frame = x.frame(Title("No template uncertainties"));
// Plot data to enable automatic determination of model0 normalisation:
sumData.plotOn(frame);
model0.plotOn(frame, LineColor(kBlue), VisualizeError(*result0));
// Plot data again to show it on top of model0 error bands:
sumData.plotOn(frame);
// Plot model components
model0.plotOn(frame, LineColor(kBlue));
model0.plotOn(frame, Components(p_h_sig), LineColor(kAzure));
model0.plotOn(frame, Components(p_h_bkg), LineColor(kRed));
model0.paramOn(frame);
sigData->plotOn(frame, MarkerColor(kBlue));
frame->Draw();
for (auto text : {
"No template uncertainties",
"are taken into account.",
"This leads to low errors",
"for the parameters A, since",
"the only source of errors",
"are the data statistics."}) {
}
can->cd(2);
frame = x.frame(Title("Barlow Beeston for Sig & Bkg separately"));
sumData.plotOn(frame);
model1.plotOn(frame, LineColor(kBlue), VisualizeError(*result1));
// Plot data again to show it on top of error bands:
sumData.plotOn(frame);
model1.plotOn(frame, LineColor(kBlue));
model1.plotOn(frame, Components(p_ph_sig1), LineColor(kAzure));
model1.plotOn(frame, Components(p_ph_bkg1), LineColor(kRed));
model1.paramOn(frame, Parameters(RooArgSet(Asig1, Abkg1)));
sigData->plotOn(frame, MarkerColor(kBlue));
frame->Draw();
pt.Clear();
for (auto text : {
"With gamma parameters, the",
"signal & background templates",
"can adapt to the data.",
"Note how the blue signal",
"template changes its shape.",
"This leads to higher errors",
"of the scale parameters A."}) {
}
can->cd(3);
frame = x.frame(Title("Barlow Beeston light for (Sig+Bkg)"));
sumData.plotOn(frame);
model2.plotOn(frame, LineColor(kBlue), VisualizeError(*result2));
// Plot data again to show it on top of model0 error bands:
sumData.plotOn(frame);
model2.plotOn(frame, LineColor(kBlue));
model2.plotOn(frame, Components(p_ph_sig2), LineColor(kAzure));
model2.plotOn(frame, Components(p_ph_bkg2), LineColor(kRed));
model2.paramOn(frame, Parameters(RooArgSet(Asig2, Abkg2)));
sigData->plotOn(frame, MarkerColor(kBlue));
frame->Draw();
pt.Clear();
for (auto text : {
"When signal and background",
"template share one gamma para-",
"meter per bin, they adapt less.",
"The errors of the A parameters",
"also shrink slightly."}) {
}
std::cout << "Asig [normal ] = " << Asig0.getVal() << " +/- " << Asig0.getError() << std::endl;
std::cout << "Asig [BB ] = " << Asig1.getVal() << " +/- " << Asig1.getError() << std::endl;
std::cout << "Asig [BBlight] = " << Asig2.getVal() << " +/- " << Asig2.getError() << std::endl;
}

Based on a demo by Wouter Verkerke

Definition in file rf709_BarlowBeeston.C.

TPave::SetBorderSize
virtual void SetBorderSize(Int_t bordersize=4)
Definition: TPave.h:79
RooUniform
Definition: RooUniform.h:24
RooPlot::Draw
virtual void Draw(Option_t *options=0)
Draw this plot and all of the elements it contains.
Definition: RooPlot.cxx:691
TPaveText::Clear
virtual void Clear(Option_t *option="")
Clear all lines in this pavetext.
Definition: TPaveText.cxx:209
RooHistFunc.h
RooFit::PrintLevel
RooCmdArg PrintLevel(Int_t code)
Definition: RooGlobalFunc.cxx:189
RooFit::VisualizeError
RooCmdArg VisualizeError(const RooDataSet &paramData, Double_t Z=1)
Definition: RooGlobalFunc.cxx:70
RooArgList
Definition: RooArgList.h:21
RooGaussian.h
TObject::DrawClone
virtual TObject * DrawClone(Option_t *option="") const
Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad...
Definition: TObject.cxx:221
x
Double_t x[n]
Definition: legend1.C:17
RooGaussian
Definition: RooGaussian.h:25
TPad::Divide
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.
Definition: TPad.cxx:1166
TCanvas.h
RooDataSet.h
text
TText * text
Definition: entrylist_figure1.C:10
TPaveText.h
RooProdPdf.h
RooParamHistFunc.h
RooFit
Definition: RooCFunction1Binding.h:29
TCanvas::cd
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
Definition: TCanvas.cxx:704
RooDataHist.h
RooPlot.h
RooRealVar.h
kRed
@ kRed
Definition: Rtypes.h:66
RooHistConstraint
Definition: RooHistConstraint.h:19
RooHistFunc
Definition: RooHistFunc.h:30
TPaveText::AddText
virtual TText * AddText(Double_t x1, Double_t y1, const char *label)
Add a new Text line to this pavetext at given coordinates.
Definition: TPaveText.cxx:183
RooFit::Conditional
RooCmdArg Conditional(const RooArgSet &pdfSet, const RooArgSet &depSet, Bool_t depsAreCond=kFALSE)
Definition: RooGlobalFunc.cxx:225
RooFit::LineColor
RooCmdArg LineColor(Color_t color)
Definition: RooGlobalFunc.cxx:56
RooHistConstraint.h
TCanvas
Definition: TCanvas.h:23
RooParamHistFunc
Definition: RooParamHistFunc.h:20
RooFit::Parameters
RooCmdArg Parameters(const RooArgSet &params)
Definition: RooGlobalFunc.cxx:218
kBlue
@ kBlue
Definition: Rtypes.h:66
RooDataSet
Definition: RooDataSet.h:33
TPaveText
Definition: TPaveText.h:21
RooFit::MarkerColor
RooCmdArg MarkerColor(Color_t color)
Definition: RooGlobalFunc.cxx:87
pt
TPaveText * pt
Definition: entrylist_figure1.C:7
RooRealSumPdf.h
RooRealVar
Definition: RooRealVar.h:35
RooFit::Components
RooCmdArg Components(const RooArgSet &compSet)
Definition: RooGlobalFunc.cxx:74
RooFit::Save
RooCmdArg Save(Bool_t flag=kTRUE)
Definition: RooGlobalFunc.cxx:187
RooProdPdf
Definition: RooProdPdf.h:33
kAzure
@ kAzure
Definition: Rtypes.h:67
RooRealSumPdf
Definition: RooRealSumPdf.h:25
RooFit::Title
RooCmdArg Title(const char *name)
Definition: RooGlobalFunc.cxx:173
RooUniform.h
RooArgSet
Definition: RooArgSet.h:28
g
#define g(i)
Definition: RSha256.hxx:123