20x = ROOT.RooRealVar(
"x",
"x", 0, 10)
24mean = ROOT.RooRealVar(
"mean",
"mean of gaussians", 5)
25sigma1 = ROOT.RooRealVar(
"sigma1",
"width of gaussians", 0.5)
26sigma2 = ROOT.RooRealVar(
"sigma2",
"width of gaussians", 1)
28sig1 = ROOT.RooGaussian(
"sig1",
"Signal component 1", x, mean, sigma1)
29sig2 = ROOT.RooGaussian(
"sig2",
"Signal component 2", x, mean, sigma2)
32a0 = ROOT.RooRealVar(
"a0",
"a0", 0.5, 0., 1.)
33a1 = ROOT.RooRealVar(
"a1",
"a1", -0.2, 0., 1.)
34bkg = ROOT.RooChebychev(
"bkg",
"Background", x, ROOT.RooArgList(a0, a1))
42sig1frac = ROOT.RooRealVar(
43 "sig1frac",
"fraction of component 1 in signal", 0.8, 0., 1.)
44sig = ROOT.RooAddPdf(
"sig",
"Signal", ROOT.RooArgList(
45 sig1, sig2), ROOT.RooArgList(sig1frac))
51bkgfrac = ROOT.RooRealVar(
"bkgfrac",
"fraction of background", 0.5, 0., 1.)
52model = ROOT.RooAddPdf(
53 "model",
"g1+g2+a", ROOT.RooArgList(bkg, sig), ROOT.RooArgList(bkgfrac))
59data = model.generate(ROOT.RooArgSet(x), 1000)
65xframe = x.frame(ROOT.RooFit.Title(
66 "Example of composite pdf=(sig1+sig2)+bkg"))
71ras_bkg = ROOT.RooArgSet(bkg)
72model.plotOn(xframe, ROOT.RooFit.Components(ras_bkg),
73 ROOT.RooFit.LineStyle(ROOT.kDashed))
76ras_bkg_sig2 = ROOT.RooArgSet(bkg, sig2)
77model.plotOn(xframe, ROOT.RooFit.Components(ras_bkg_sig2),
78 ROOT.RooFit.LineStyle(ROOT.kDotted))
90model2 = ROOT.RooAddPdf(
"model",
"g1+g2+a", ROOT.RooArgList(bkg,
91 sig1, sig2), ROOT.RooArgList(bkgfrac, sig1frac), ROOT.kTRUE)
102model2.plotOn(xframe, ROOT.RooFit.LineColor(ROOT.kRed),
103 ROOT.RooFit.LineStyle(ROOT.kDashed))
104model2.plotOn(xframe, ROOT.RooFit.Components(ras_bkg_sig2),
105 ROOT.RooFit.LineColor(ROOT.kRed), ROOT.RooFit.LineStyle(ROOT.kDashed))
109c = ROOT.TCanvas(
"rf201_composite",
"rf201_composite", 600, 600)
110ROOT.gPad.SetLeftMargin(0.15)
111xframe.GetYaxis().SetTitleOffset(1.4)
114c.SaveAs(
"rf201_composite.png")