Loading [MathJax]/extensions/tex2jax.js
ROOT
6.06/09
Reference Guide
ROOT Home Page
Main Page
Related Pages
User's Classes
Namespaces
All Classes
Files
Release Notes
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
roofit
roofitcore
test
rf204_extrangefit.cxx
Go to the documentation of this file.
1
//////////////////////////////////////////////////////////////////////////
2
//
3
// 'ADDITION AND CONVOLUTION' RooFit tutorial macro #204
4
//
5
// Extended maximum likelihood fit with alternate range definition
6
// for observed number of events.
7
//
8
//
9
//
10
// 07/2008 - Wouter Verkerke
11
//
12
/////////////////////////////////////////////////////////////////////////
13
14
#ifndef __CINT__
15
#include "
RooGlobalFunc.h
"
16
#endif
17
#include "
RooRealVar.h
"
18
#include "
RooDataSet.h
"
19
#include "
RooGaussian.h
"
20
#include "
RooChebychev.h
"
21
#include "
RooAddPdf.h
"
22
#include "
RooExtendPdf.h
"
23
#include "
RooFitResult.h
"
24
#include "TCanvas.h"
25
#include "
RooPlot.h
"
26
using namespace
RooFit
;
27
28
29
class
TestBasic204 :
public
RooFitTestUnit
30
{
31
public
:
32
TestBasic204(
TFile
* refFile,
Bool_t
writeRef,
Int_t
verbose
) : RooFitTestUnit(
"Extended ML fit in sub range"
,refFile,writeRef,verbose) {} ;
33
Bool_t
testCode() {
34
35
// S e t u p c o m p o n e n t p d f s
36
// ---------------------------------------
37
38
// Declare observable x
39
RooRealVar
x
(
"x"
,
"x"
,0,10) ;
40
41
// Create two Gaussian PDFs g1(x,mean1,sigma) anf g2(x,mean2,sigma) and their parameters
42
RooRealVar
mean(
"mean"
,
"mean of gaussians"
,5) ;
43
RooRealVar
sigma1(
"sigma1"
,
"width of gaussians"
,0.5) ;
44
RooRealVar
sigma2(
"sigma2"
,
"width of gaussians"
,1) ;
45
46
RooGaussian
sig1(
"sig1"
,
"Signal component 1"
,
x
,mean,sigma1) ;
47
RooGaussian
sig2(
"sig2"
,
"Signal component 2"
,
x
,mean,sigma2) ;
48
49
// Build Chebychev polynomial p.d.f.
50
RooRealVar
a0(
"a0"
,
"a0"
,0.5,0.,1.) ;
51
RooRealVar
a1(
"a1"
,
"a1"
,-0.2,0.,1.) ;
52
RooChebychev
bkg(
"bkg"
,
"Background"
,
x
,
RooArgSet
(a0,a1)) ;
53
54
// Sum the signal components into a composite signal p.d.f.
55
RooRealVar
sig1frac(
"sig1frac"
,
"fraction of component 1 in signal"
,0.8,0.,1.) ;
56
RooAddPdf
sig(
"sig"
,
"Signal"
,
RooArgList
(sig1,sig2),sig1frac) ;
57
58
59
// 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
60
// ------------------------------------------------------------------------------
61
62
// Define signal range in which events counts are to be defined
63
x
.setRange(
"signalRange"
,4,6) ;
64
65
// Associated nsig/nbkg as expected number of events with sig/bkg _in_the_range_ "signalRange"
66
RooRealVar
nsig(
"nsig"
,
"number of signal events in signalRange"
,500,0.,10000) ;
67
RooRealVar
nbkg(
"nbkg"
,
"number of background events in signalRange"
,500,0,10000) ;
68
RooExtendPdf
esig(
"esig"
,
"extended signal p.d.f"
,sig,nsig,
"signalRange"
) ;
69
RooExtendPdf
ebkg(
"ebkg"
,
"extended background p.d.f"
,bkg,nbkg,
"signalRange"
) ;
70
71
72
// S u m e x t e n d e d c o m p o n e n t s
73
// ---------------------------------------------
74
75
// Construct sum of two extended p.d.f. (no coefficients required)
76
RooAddPdf
model(
"model"
,
"(g1+g2)+a"
,
RooArgList
(ebkg,esig)) ;
77
78
79
// S a m p l e d a t a , f i t m o d e l
80
// -------------------------------------------
81
82
// Generate 1000 events from model so that nsig,nbkg come out to numbers <<500 in fit
83
RooDataSet
*data = model.generate(
x
,1000) ;
84
85
86
// Perform unbinned extended ML fit to data
87
RooFitResult
* r = model.fitTo(*data,
Extended
(
kTRUE
),
Save
()) ;
88
89
90
regResult(r,
"rf204_result"
) ;
91
92
delete
data ;
93
return
kTRUE
;
94
}
95
} ;
RooGlobalFunc.h
RooAddPdf
Definition:
RooAddPdf.h:29
RooArgSet
Definition:
RooArgSet.h:26
TFile
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
Definition:
TFile.h:45
RooRealVar.h
RooFitResult
Definition:
RooFitResult.h:41
Int_t
int Int_t
Definition:
RtypesCore.h:41
Bool_t
bool Bool_t
Definition:
RtypesCore.h:59
RooGaussian.h
RooFit::Extended
RooCmdArg Extended(Bool_t flag=kTRUE)
Definition:
RooGlobalFunc.cxx:154
x
Double_t x[n]
Definition:
legend1.C:17
RooFit
Definition:
RooCFunction1Binding.h:26
RooGaussian
Definition:
RooGaussian.h:25
RooFitResult.h
RooRealVar
Definition:
RooRealVar.h:37
verbose
bool verbose
Definition:
binarySearchTime.cxx:27
RooAddPdf.h
RooExtendPdf.h
RooPlot.h
RooDataSet
Definition:
RooDataSet.h:29
RooDataSet.h
RooExtendPdf
Definition:
RooExtendPdf.h:22
RooFit::Save
RooCmdArg Save(Bool_t flag=kTRUE)
Definition:
RooGlobalFunc.cxx:184
RooChebychev.h
RooArgList
Definition:
RooArgList.h:21
RooChebychev
Definition:
RooChebychev.h:25
kTRUE
const Bool_t kTRUE
Definition:
Rtypes.h:91