Logo ROOT   6.14/05
Reference Guide
rf204_extrangefit.C File Reference

Detailed Description

View in nbviewer Open in SWAN 'ADDITION AND CONVOLUTION' RooFit tutorial macro #204

Extended maximum likelihood fit with alternate range definition for observed number of events.

0.0221021175385
3.79432415962
Processing /mnt/build/workspace/root-makedoc-v614/rootspi/rdoc/src/v6-14-00-patches/tutorials/roofit/rf204_extrangefit.C...
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:Eval -- RooRealVar::setRange(x) new range named 'signalRange' created with bounds [4,6]
[#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: (sig1,sig2)
[#1] INFO:Minization -- The following expressions will be evaluated in cache-and-track mode: (ebkg,esig)
**********
** 1 **SET PRINT 1
**********
**********
** 2 **SET NOGRAD
**********
PARAMETER DEFINITIONS:
NO. NAME VALUE STEP SIZE LIMITS
1 a0 5.00000e-01 1.00000e-01 0.00000e+00 1.00000e+00
2 a1 2.00000e-01 1.00000e-01 0.00000e+00 1.00000e+00
3 nbkg 5.00000e+02 2.50000e+02 0.00000e+00 1.00000e+04
4 nsig 5.00000e+02 2.50000e+02 0.00000e+00 1.00000e+04
5 sig1frac 8.00000e-01 1.00000e-01 0.00000e+00 1.00000e+00
**********
** 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 2500 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=-2469.1 FROM MIGRAD STATUS=INITIATE 16 CALLS 17 TOTAL
EDM= unknown STRATEGY= 1 NO ERROR MATRIX
EXT PARAMETER CURRENT GUESS STEP FIRST
NO. NAME VALUE ERROR SIZE DERIVATIVE
1 a0 5.00000e-01 1.00000e-01 2.01358e-01 -4.27132e+00
2 a1 2.00000e-01 1.00000e-01 2.57889e-01 7.20301e+02
3 nbkg 5.00000e+02 2.50000e+02 1.18625e-01 9.02152e+03
4 nsig 5.00000e+02 2.50000e+02 1.18625e-01 1.67008e+03
5 sig1frac 8.00000e-01 1.00000e-01 2.57889e-01 -4.70537e+01
ERR DEF= 0.5
MIGRAD MINIMIZATION HAS CONVERGED.
MIGRAD WILL VERIFY CONVERGENCE AND ERROR MATRIX.
COVARIANCE MATRIX CALCULATED SUCCESSFULLY
FCN=-3685.19 FROM MIGRAD STATUS=CONVERGED 202 CALLS 203 TOTAL
EDM=2.50137e-06 STRATEGY= 1 ERROR MATRIX ACCURATE
EXT PARAMETER STEP FIRST
NO. NAME VALUE ERROR SIZE DERIVATIVE
1 a0 5.13840e-01 5.68437e-02 4.59886e-03 -8.26885e-03
2 a1 9.47772e-02 8.90511e-02 5.11553e-03 -6.14600e-03
3 nbkg 1.55647e+02 1.74697e+01 1.93423e-04 -1.47395e-01
4 nsig 1.55090e+02 2.49963e+01 5.79373e-04 4.47479e-02
5 sig1frac 8.49724e-01 7.37471e-01 2.86381e-02 1.18659e-03
ERR DEF= 0.5
EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 5 ERR DEF=0.5
3.245e-03 1.382e-03 -2.497e-01 2.583e-01 -4.222e-03
1.382e-03 8.187e-03 -1.451e+00 1.512e+00 -2.239e-02
-2.497e-01 -1.451e+00 3.052e+02 -3.192e+02 4.859e+00
2.583e-01 1.512e+00 -3.192e+02 6.249e+02 -5.137e+00
-4.222e-03 -2.239e-02 4.859e+00 -5.137e+00 1.349e-01
PARAMETER CORRELATION COEFFICIENTS
NO. GLOBAL 1 2 3 4 5
1 0.26970 1.000 0.268 -0.251 0.181 -0.202
2 0.91955 0.268 1.000 -0.918 0.668 -0.674
3 0.94509 -0.251 -0.918 1.000 -0.731 0.757
4 0.73088 0.181 0.668 -0.731 1.000 -0.560
5 0.75953 -0.202 -0.674 0.757 -0.560 1.000
**********
** 7 **SET ERR 0.5
**********
**********
** 8 **SET PRINT 1
**********
**********
** 9 **HESSE 2500
**********
COVARIANCE MATRIX CALCULATED SUCCESSFULLY
FCN=-3685.19 FROM HESSE STATUS=OK 31 CALLS 234 TOTAL
EDM=2.5065e-06 STRATEGY= 1 ERROR MATRIX ACCURATE
EXT PARAMETER INTERNAL INTERNAL
NO. NAME VALUE ERROR STEP SIZE VALUE
1 a0 5.13840e-01 5.67783e-02 9.19772e-04 2.76827e-02
2 a1 9.47772e-02 8.77968e-02 2.04621e-04 -9.44912e-01
3 nbkg 1.55647e+02 1.72809e+01 3.86846e-05 -1.32063e+00
4 nsig 1.55090e+02 2.48285e+01 1.15875e-04 -1.32108e+00
5 sig1frac 8.49724e-01 7.37890e-01 1.14552e-03 7.74624e-01
ERR DEF= 0.5
EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 5 ERR DEF=0.5
3.238e-03 1.340e-03 -2.426e-01 2.503e-01 -4.164e-03
1.340e-03 7.951e-03 -1.411e+00 1.467e+00 -2.205e-02
-2.426e-01 -1.411e+00 2.987e+02 -3.117e+02 4.820e+00
2.503e-01 1.467e+00 -3.117e+02 6.165e+02 -5.075e+00
-4.164e-03 -2.205e-02 4.820e+00 -5.075e+00 1.353e-01
PARAMETER CORRELATION COEFFICIENTS
NO. GLOBAL 1 2 3 4 5
1 0.26570 1.000 0.264 -0.247 0.177 -0.199
2 0.91705 0.264 1.000 -0.916 0.663 -0.672
3 0.94384 -0.247 -0.916 1.000 -0.726 0.758
4 0.72654 0.177 0.663 -0.726 1.000 -0.556
5 0.76043 -0.199 -0.672 0.758 -0.556 1.000
[#1] INFO:Minization -- RooMinimizer::optimizeConst: deactivating const optimization
RooFitResult: minimized FCN value: -3685.19, estimated distance to minimum: 2.5065e-06
covariance matrix quality: Full, accurate covariance matrix
Status : MINIMIZE=0 HESSE=0
Floating Parameter FinalValue +/- Error
-------------------- --------------------------
a0 5.1384e-01 +/- 5.68e-02
a1 9.4777e-02 +/- 8.78e-02
nbkg 1.5565e+02 +/- 1.73e+01
nsig 1.5509e+02 +/- 2.48e+01
sig1frac 8.4972e-01 +/- 7.38e-01
#include "RooRealVar.h"
#include "RooDataSet.h"
#include "RooGaussian.h"
#include "RooChebychev.h"
#include "RooAddPdf.h"
#include "RooExtendPdf.h"
#include "RooFitResult.h"
#include "TCanvas.h"
#include "TAxis.h"
#include "RooPlot.h"
using namespace RooFit ;
void rf204_extrangefit()
{
// S e t u p c o m p o n e n t p d f s
// ---------------------------------------
// Declare observable x
RooRealVar x("x","x",0,10) ;
// Create two Gaussian PDFs g1(x,mean1,sigma) anf g2(x,mean2,sigma) and their parameters
RooRealVar mean("mean","mean of gaussians",5) ;
RooRealVar sigma1("sigma1","width of gaussians",0.5) ;
RooRealVar sigma2("sigma2","width of gaussians",1) ;
RooGaussian sig1("sig1","Signal component 1",x,mean,sigma1) ;
RooGaussian sig2("sig2","Signal component 2",x,mean,sigma2) ;
// Build Chebychev polynomial p.d.f.
RooRealVar a0("a0","a0",0.5,0.,1.) ;
RooRealVar a1("a1","a1",0.2,0.,1.) ;
RooChebychev bkg("bkg","Background",x,RooArgSet(a0,a1)) ;
// Sum the signal components into a composite signal p.d.f.
RooRealVar sig1frac("sig1frac","fraction of component 1 in signal",0.8,0.,1.) ;
RooAddPdf sig("sig","Signal",RooArgList(sig1,sig2),sig1frac) ;
// C o n s t r u c t e x t e n d e d c o m p s wi t h r a n g e s p e c
// ------------------------------------------------------------------------------
// Define signal range in which events counts are to be defined
x.setRange("signalRange",4,6) ;
// Associated nsig/nbkg as expected number of events with sig/bkg _in_the_range_ "signalRange"
RooRealVar nsig("nsig","number of signal events in signalRange",500,0.,10000) ;
RooRealVar nbkg("nbkg","number of background events in signalRange",500,0,10000) ;
RooExtendPdf esig("esig","extended signal p.d.f",sig,nsig,"signalRange") ;
RooExtendPdf ebkg("ebkg","extended background p.d.f",bkg,nbkg,"signalRange") ;
// S u m e x t e n d e d c o m p o n e n t s
// ---------------------------------------------
// Construct sum of two extended p.d.f. (no coefficients required)
RooAddPdf model("model","(g1+g2)+a",RooArgList(ebkg,esig)) ;
// S a m p l e d a t a , f i t m o d e l
// -------------------------------------------
// Generate 1000 events from model so that nsig,nbkg come out to numbers <<500 in fit
RooDataSet *data = model.generate(x,1000) ;
// Perform unbinned extended ML fit to data
RooFitResult* r = model.fitTo(*data,Extended(kTRUE),Save()) ;
r->Print() ;
}
Author
07/2008 - Wouter Verkerke

Definition in file rf204_extrangefit.C.