17 x = ROOT.RooRealVar(
"x",
"x", 0, 10)
21 mean = ROOT.RooRealVar(
"mean",
"mean of gaussians", 5)
22 sigma1 = ROOT.RooRealVar(
"sigma1",
"width of gaussians", 0.5)
23 sigma2 = ROOT.RooRealVar(
"sigma2",
"width of gaussians", 1)
25 sig1 = ROOT.RooGaussian(
"sig1",
"Signal component 1", x, mean, sigma1)
26 sig2 = ROOT.RooGaussian(
"sig2",
"Signal component 2", x, mean, sigma2)
29 a0 = ROOT.RooRealVar(
"a0",
"a0", 0.5, 0., 1.)
30 a1 = ROOT.RooRealVar(
"a1",
"a1", -0.2, 0., 1.)
31 bkg = ROOT.RooChebychev(
"bkg",
"Background", x, ROOT.RooArgList(a0, a1))
34 sig1frac = ROOT.RooRealVar(
35 "sig1frac",
"fraction of component 1 in signal", 0.8, 0., 1.)
37 "sig",
"Signal", ROOT.RooArgList(sig1, sig2), ROOT.RooArgList(sig1frac))
44 nsig = ROOT.RooRealVar(
"nsig",
"number of signal events", 500, 0., 10000)
45 nbkg = ROOT.RooRealVar(
46 "nbkg",
"number of background events", 500, 0, 10000)
47 model = ROOT.RooAddPdf(
62 data = model.generate(ROOT.RooArgSet(x))
69 xframe = x.frame(ROOT.RooFit.Title(
"extended ML fit example"))
71 model.plotOn(xframe, ROOT.RooFit.Normalization(
72 1.0, ROOT.RooAbsReal.RelativeExpected))
75 ras_bkg = ROOT.RooArgSet(bkg)
77 xframe, ROOT.RooFit.Components(ras_bkg), ROOT.RooFit.LineStyle(
78 ROOT.kDashed), ROOT.RooFit.Normalization(
79 1.0, ROOT.RooAbsReal.RelativeExpected))
82 ras_bkg_sig2 = ROOT.RooArgSet(bkg, sig2)
84 xframe, ROOT.RooFit.Components(ras_bkg_sig2), ROOT.RooFit.LineStyle(
85 ROOT.kDotted), ROOT.RooFit.Normalization(
86 1.0, ROOT.RooAbsReal.RelativeExpected))
96 esig = ROOT.RooExtendPdf(
"esig",
"extended signal p.d.f", sig, nsig)
97 ebkg = ROOT.RooExtendPdf(
"ebkg",
"extended background p.d.f", bkg, nbkg)
103 model2 = ROOT.RooAddPdf(
"model2",
"(g1+g2)+a", ROOT.RooArgList(ebkg, esig))
106 c = ROOT.TCanvas(
"rf202_extendedmlfit",
"rf202_extendedmlfit", 600, 600)
107 ROOT.gPad.SetLeftMargin(0.15)
108 xframe.GetYaxis().SetTitleOffset(1.4)
111 c.SaveAs(
"rf202_extendedmlfit.png")