19x = ROOT.RooRealVar(
"x",
"x", 0, 11)
22mean = ROOT.RooRealVar(
"mean",
"mean of gaussians", 5)
23sigma1 = ROOT.RooRealVar(
"sigma1",
"width of gaussians", 0.5)
24sigma2 = ROOT.RooRealVar(
"sigma2",
"width of gaussians", 1)
26sig1 = ROOT.RooGaussian(
"sig1",
"Signal component 1", x, mean, sigma1)
27sig2 = ROOT.RooGaussian(
"sig2",
"Signal component 2", x, mean, sigma2)
30a0 = ROOT.RooRealVar(
"a0",
"a0", 0.5, 0.0, 1.0)
31a1 = ROOT.RooRealVar(
"a1",
"a1", 0.2, 0.0, 1.0)
32bkg = ROOT.RooChebychev(
"bkg",
"Background", x, [a0, a1])
35sig1frac = ROOT.RooRealVar(
"sig1frac",
"fraction of component 1 in signal", 0.8, 0.0, 1.0)
36sig = ROOT.RooAddPdf(
"sig",
"Signal", [sig1, sig2], sig1frac)
43x.setRange(
"signalRange", 4, 6)
46nsig = ROOT.RooRealVar(
"nsig",
"number of signal events in signalRange", 500, 0.0, 10000)
47nbkg = ROOT.RooRealVar(
"nbkg",
"number of background events in signalRange", 500, 0, 10000)
50model = ROOT.RooAddPdf(
"model",
"(g1+g2)+a", [bkg, sig], [nbkg, nsig])
56data = model.generate(x, 1000)
58canv = ROOT.TCanvas(
"Canvas",
"Canvas", 1500, 600)
72model1 = ROOT.RooAddPdf(model)
73r = model1.fitTo(data, Save=
True, PrintLevel=-1)
76frame = x.frame(Title=
"Full range fitted")
78model1.plotOn(frame, VisualizeError=r)
88x.setRange(
"left", 0.0, 4.0)
89x.setRange(
"right", 6.0, 10.0)
91model2 = ROOT.RooAddPdf(model)
92r2 = model2.fitTo(data, Range=
"left,right", Save=
True, PrintLevel=-1)
95frame2 = x.frame(Title=
"Fit in left/right sideband")
97model2.plotOn(frame2, VisualizeError=r2)
109x.setRange(
"leftToMiddle", 0.0, 5.0)
111model3 = ROOT.RooAddPdf(model)
112r3 = model3.fitTo(data, Range=
"leftToMiddle", Save=
True, PrintLevel=-1)
115frame3 = x.frame(Title=
"Fit from left to middle")
117model3.plotOn(frame3, VisualizeError=r3)
119model3.paramOn(frame3)
124canv.SaveAs(
"rf204a_extendedLikelihood.png")