17x = ROOT.RooRealVar(
"x",
"x", 0, 10)
21mean = ROOT.RooRealVar(
"mean",
"mean of gaussians", 5)
22sigma1 = ROOT.RooRealVar(
"sigma1",
"width of gaussians", 0.5)
23sigma2 = ROOT.RooRealVar(
"sigma2",
"width of gaussians", 1)
25sig1 = ROOT.RooGaussian(
"sig1",
"Signal component 1", x, mean, sigma1)
26sig2 = ROOT.RooGaussian(
"sig2",
"Signal component 2", x, mean, sigma2)
29a0 = ROOT.RooRealVar(
"a0",
"a0", 0.5, 0.0, 1.0)
30a1 = ROOT.RooRealVar(
"a1",
"a1", -0.2, 0.0, 1.0)
31bkg = ROOT.RooChebychev(
"bkg",
"Background", x, [a0, a1])
34sig1frac = ROOT.RooRealVar(
"sig1frac",
"fraction of component 1 in signal", 0.8, 0.0, 1.0)
35sig = ROOT.RooAddPdf(
"sig",
"Signal", [sig1, sig2], [sig1frac])
42nsig = ROOT.RooRealVar(
"nsig",
"number of signal events", 500, 0.0, 10000)
43nbkg = ROOT.RooRealVar(
"nbkg",
"number of background events", 500, 0, 10000)
44model = ROOT.RooAddPdf(
"model",
"(g1+g2)+a", [bkg, sig], [nbkg, nsig])
51data = model.generate({x})
58xframe = x.frame(Title=
"extended ML fit example")
60model.plotOn(xframe, Normalization=dict(scaleFactor=1.0, scaleType=ROOT.RooAbsReal.RelativeExpected))
67 Normalization=dict(scaleFactor=1.0, scaleType=ROOT.RooAbsReal.RelativeExpected),
71ras_bkg_sig2 = {bkg, sig2}
74 Components=ras_bkg_sig2,
76 Normalization=dict(scaleFactor=1.0, scaleType=ROOT.RooAbsReal.RelativeExpected),
87esig = ROOT.RooExtendPdf(
"esig",
"extended signal pdf", sig, nsig)
88ebkg = ROOT.RooExtendPdf(
"ebkg",
"extended background pdf", bkg, nbkg)
94model2 = ROOT.RooAddPdf(
"model2",
"(g1+g2)+a", [ebkg, esig])
97c = ROOT.TCanvas(
"rf202_extendedmlfit",
"rf202_extendedmlfit", 600, 600)
98ROOT.gPad.SetLeftMargin(0.15)
99xframe.GetYaxis().SetTitleOffset(1.4)
102c.SaveAs(
"rf202_extendedmlfit.png")