This tutorial shows an example of creating a combined model using the High Level model Factory.
␛[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] INFO:ObjectHandling -- RooWorkspace::exportToCint(HLFavtoryCombinationexample_ws) INFO: references to all objects in this workspace will be created in CINT in 'namespace HLFavtoryCombinationexample_ws'
[#1] INFO:Minization -- p.d.f. provides expected number of events, including extended term in likelihood.
[#1] INFO:Minization -- RooMinimizer::optimizeConst: activating const optimization
RooAbsTestStatistic::initSimMode: creating slave calculator #0 for state model1 (211 dataset entries)
RooAbsTestStatistic::initSimMode: creating slave calculator #1 for state model2 (175 dataset entries)
[#1] INFO:Fitting -- RooAbsTestStatistic::initSimMode: created 2 slave calculators.
[#1] INFO:Minization -- The following expressions have been identified as constant and will be precalculated and cached: (flat1)
[#1] INFO:Minization -- The following expressions will be evaluated in cache-and-track mode: (gauss1)
[#1] INFO:Minization -- The following expressions have been identified as constant and will be precalculated and cached: (flat2)
[#1] INFO:Minization -- The following expressions will be evaluated in cache-and-track mode: (gauss2)
**********
** 1 **SET PRINT 1
**********
**********
** 2 **SET NOGRAD
**********
PARAMETER DEFINITIONS:
NO. NAME VALUE STEP SIZE LIMITS
1 mean1 5.00000e+01 1.00000e+01 0.00000e+00 1.00000e+02
2 mean2 8.00000e+01 1.00000e+01 0.00000e+00 1.00000e+02
3 nbkg1 1.00000e+02 5.00000e+01 0.00000e+00 1.00000e+03
4 nbkg2 8.00000e+01 4.00000e+01 0.00000e+00 1.00000e+03
5 nsig1 1.20000e+02 3.00000e+01 0.00000e+00 3.00000e+02
6 nsig2 9.00000e+01 4.00000e+01 0.00000e+00 4.00000e+02
**********
** 3 **SET ERR 0.5
**********
**********
** 4 **SET PRINT 1
**********
**********
** 5 **SET STR 1
**********
NOW USING STRATEGY 1: TRY TO BALANCE SPEED AGAINST RELIABILITY
**********
** 6 **MIGRAD 3000 1
**********
FIRST CALL TO USER FUNCTION AT NEW START POINT, WITH IFLAG=4.
START MIGRAD MINIMIZATION. STRATEGY 1. CONVERGENCE WHEN EDM .LT. 1.00e-03
FCN=199.77 FROM MIGRAD STATUS=INITIATE 24 CALLS 25 TOTAL
EDM= unknown STRATEGY= 1 NO ERROR MATRIX
EXT PARAMETER CURRENT GUESS STEP FIRST
NO. NAME VALUE ERROR SIZE DERIVATIVE
1 mean1 5.00000e+01 1.00000e+01 2.01358e-01 3.07908e+01
2 mean2 8.00000e+01 1.00000e+01 2.57889e-01 9.66677e+00
3 nbkg1 1.00000e+02 5.00000e+01 1.72186e-01 2.07463e+01
4 nbkg2 8.00000e+01 4.00000e+01 1.52384e-01 -8.44368e+00
5 nsig1 1.20000e+02 3.00000e+01 2.05758e-01 2.55303e+00
6 nsig2 9.00000e+01 4.00000e+01 2.45245e-01 -4.65857e+00
ERR DEF= 0.5
MIGRAD MINIMIZATION HAS CONVERGED.
MIGRAD WILL VERIFY CONVERGENCE AND ERROR MATRIX.
COVARIANCE MATRIX CALCULATED SUCCESSFULLY
FCN=199.349 FROM MIGRAD STATUS=CONVERGED 92 CALLS 93 TOTAL
EDM=6.01075e-05 STRATEGY= 1 ERROR MATRIX ACCURATE
EXT PARAMETER STEP FIRST
NO. NAME VALUE ERROR SIZE DERIVATIVE
1 mean1 4.98783e+01 4.26590e-01 8.34391e-05 -6.57258e-01
2 mean2 7.98952e+01 6.49972e-01 1.58369e-04 -2.57944e-01
3 nbkg1 9.18179e+01 1.06581e+01 3.55527e-04 5.08825e-02
4 nbkg2 8.25577e+01 1.03903e+01 3.59387e-04 -2.86339e-02
5 nsig1 1.19174e+02 1.18598e+01 7.72527e-04 -2.99954e-02
6 nsig2 9.24320e+01 1.08502e+01 6.13208e-04 -3.16233e-03
ERR DEF= 0.5
EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 6 ERR DEF=0.5
1.820e-01 0.000e+00 9.170e-02 0.000e+00 -9.167e-02 0.000e+00
0.000e+00 4.225e-01 0.000e+00 -1.575e-02 0.000e+00 1.575e-02
9.170e-02 0.000e+00 1.136e+02 0.000e+00 -2.180e+01 0.000e+00
0.000e+00 -1.575e-02 0.000e+00 1.080e+02 0.000e+00 -2.545e+01
-9.167e-02 0.000e+00 -2.180e+01 0.000e+00 1.410e+02 0.000e+00
0.000e+00 1.575e-02 0.000e+00 -2.545e+01 0.000e+00 1.179e+02
PARAMETER CORRELATION COEFFICIENTS
NO. GLOBAL 1 2 3 4 5 6
1 0.02504 1.000 0.000 0.020 0.000 -0.018 0.000
2 0.00292 0.000 1.000 0.000 -0.002 0.000 0.002
3 0.17311 0.020 0.000 1.000 0.000 -0.172 0.000
4 0.22552 0.000 -0.002 0.000 1.000 0.000 -0.226
5 0.17289 -0.018 0.000 -0.172 0.000 1.000 0.000
6 0.22552 0.000 0.002 0.000 -0.226 0.000 1.000
**********
** 7 **SET ERR 0.5
**********
**********
** 8 **SET PRINT 1
**********
**********
** 9 **HESSE 3000
**********
COVARIANCE MATRIX CALCULATED SUCCESSFULLY
FCN=199.349 FROM HESSE STATUS=OK 40 CALLS 133 TOTAL
EDM=6.01118e-05 STRATEGY= 1 ERROR MATRIX ACCURATE
EXT PARAMETER INTERNAL INTERNAL
NO. NAME VALUE ERROR STEP SIZE VALUE
1 mean1 4.98783e+01 4.26588e-01 1.66878e-05 -2.43458e-03
2 mean2 7.98952e+01 6.49972e-01 3.16737e-05 6.40885e-01
3 nbkg1 9.18179e+01 1.06583e+01 7.11055e-05 -9.55088e-01
4 nbkg2 8.25577e+01 1.03906e+01 7.18775e-05 -9.87923e-01
5 nsig1 1.19174e+02 1.18599e+01 1.54505e-04 -2.06982e-01
6 nsig2 9.24320e+01 1.08505e+01 1.22642e-04 -5.67873e-01
ERR DEF= 0.5
EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 6 ERR DEF=0.5
1.820e-01 0.000e+00 9.119e-02 0.000e+00 -9.117e-02 0.000e+00
0.000e+00 4.225e-01 0.000e+00 -1.684e-02 0.000e+00 1.684e-02
9.119e-02 0.000e+00 1.137e+02 0.000e+00 -2.182e+01 0.000e+00
0.000e+00 -1.684e-02 0.000e+00 1.080e+02 0.000e+00 -2.546e+01
-9.117e-02 0.000e+00 -2.182e+01 0.000e+00 1.410e+02 0.000e+00
0.000e+00 1.684e-02 0.000e+00 -2.546e+01 0.000e+00 1.179e+02
PARAMETER CORRELATION COEFFICIENTS
NO. GLOBAL 1 2 3 4 5 6
1 0.02490 1.000 0.000 0.020 0.000 -0.018 0.000
2 0.00312 0.000 1.000 0.000 -0.002 0.000 0.002
3 0.17319 0.020 0.000 1.000 0.000 -0.172 0.000
4 0.22564 0.000 -0.002 0.000 1.000 0.000 -0.226
5 0.17297 -0.018 0.000 -0.172 0.000 1.000 0.000
6 0.22564 0.000 0.002 0.000 -0.226 0.000 1.000
[#1] INFO:Minization -- RooMinimizer::optimizeConst: deactivating const optimization
[#1] INFO:Plotting -- RooSimultaneous::plotOn(HLFavtoryCombinationexample_sigbkg) plot on x represents a slice in the index category (HLFavtoryCombinationexample_category)
[#1] INFO:Plotting -- RooAbsReal::plotOn(sb_model1) slice variable HLFavtoryCombinationexample_category was not projected anyway
[#1] INFO:Plotting -- RooSimultaneous::plotOn(HLFavtoryCombinationexample_sigbkg) plot on x represents a slice in the index category (HLFavtoryCombinationexample_category)
[#1] INFO:Plotting -- RooAbsReal::plotOn(sb_model2) slice variable HLFavtoryCombinationexample_category was not projected anyway
#include <fstream>
void rs602_HLFactoryCombinationexample() {
TString card_name(
"HLFavtoryCombinationexample.rs");
ofstream ofile(card_name);
ofile << "// The simplest card for combination\n\n"
<< "gauss1 = Gaussian(x[0,100],mean1[50,0,100],4);\n"
<< "flat1 = Polynomial(x,0);\n"
<< "sb_model1 = SUM(nsig1[120,0,300]*gauss1 , nbkg1[100,0,1000]*flat1);\n"
<< "gauss2 = Gaussian(x,mean2[80,0,100],5);\n"
<< "flat2 = Polynomial(x,0);\n"
<< "sb_model2 = SUM(nsig2[90,0,400]*gauss2 , nbkg2[80,0,1000]*flat2);\n";
ofile.close();
HLFactory hlf("HLFavtoryCombinationexample",
card_name,
false);
hlf.AddChannel("model1","sb_model1","flat1");
hlf.AddChannel("model2","sb_model2","flat2");
gROOT->SetStyle(
"Plain");
}
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
RooDataSet * generate(const RooArgSet &whatVars, Int_t nEvents, const RooCmdArg &arg1, const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none())
See RooAbsPdf::generate(const RooArgSet&,const RooCmdArg&,const RooCmdArg&,const RooCmdArg&,...
virtual RooFitResult * fitTo(RooAbsData &data, const RooCmdArg &arg1=RooCmdArg::none(), const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none())
Fit PDF to given dataset.
virtual RooPlot * plotOn(RooPlot *frame, const RooCmdArg &arg1=RooCmdArg::none(), const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none(), const RooCmdArg &arg9=RooCmdArg::none(), const RooCmdArg &arg10=RooCmdArg::none()) const
Helper calling plotOn(RooPlot*, RooLinkedList&) const.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
RooCategory represents a fundamental (non-derived) discrete value object.
virtual Bool_t setIndex(Int_t index, Bool_t printError=kTRUE)
Set value by specifying the index code of the desired state.
RooDataSet is a container class to hold unbinned data.
A RooPlot is a plot frame and a container for graphics objects within that frame.
virtual void Draw(Option_t *options=0)
Draw this plot and all of the elements it contains.
RooRealVar represents a fundamental (non-derived) real valued object.
RooCmdArg ProjWData(const RooAbsData &projData, Bool_t binData=kFALSE)
RooCmdArg Extended(Bool_t flag=kTRUE)
RooCmdArg Slice(const RooArgSet &sliceSet)
@(#)root/roostats:$Id$ Author: George Lewis, Kyle Cranmer