19x = ROOT.RooRealVar(
"x",
"x", -8, 8)
22mean = ROOT.RooRealVar(
"mean",
"mean", 0, -8, 8)
23sigma = ROOT.RooRealVar(
"sigma",
"sigma", 0.3, 0.1, 10)
24gx = ROOT.RooGaussian(
"gx",
"gx", x, mean, sigma)
27a0 = ROOT.RooRealVar(
"a0",
"a0", -0.1, -1, 1)
28a1 = ROOT.RooRealVar(
"a1",
"a1", 0.004, -1, 1)
29px = ROOT.RooChebychev(
"px",
"px", x, [a0, a1])
32f = ROOT.RooRealVar(
"f",
"f", 0.2, 0.0, 1.0)
33model = ROOT.RooAddPdf(
"model",
"model", [gx, px], [f])
40mean_ctl = ROOT.RooRealVar(
"mean_ctl",
"mean_ctl", -3, -8, 8)
41gx_ctl = ROOT.RooGaussian(
"gx_ctl",
"gx_ctl", x, mean_ctl, sigma)
44a0_ctl = ROOT.RooRealVar(
"a0_ctl",
"a0_ctl", -0.1, -1, 1)
45a1_ctl = ROOT.RooRealVar(
"a1_ctl",
"a1_ctl", 0.5, -0.1, 1)
46px_ctl = ROOT.RooChebychev(
"px_ctl",
"px_ctl", x, [a0_ctl, a1_ctl])
49f_ctl = ROOT.RooRealVar(
"f_ctl",
"f_ctl", 0.5, 0.0, 1.0)
50model_ctl = ROOT.RooAddPdf(
"model_ctl",
"model_ctl", [gx_ctl, px_ctl], [f_ctl])
56data = model.generate({x}, 100)
57data_ctl = model_ctl.generate({x}, 2000)
63sample = ROOT.RooCategory(
"sample",
"sample")
64sample.defineType(
"physics")
65sample.defineType(
"control")
68combData = ROOT.RooDataSet(
72 ROOT.RooFit.Index(sample),
73 ROOT.RooFit.Import(
"physics", data),
74 ROOT.RooFit.Import(
"control", data_ctl),
81simPdf = ROOT.RooSimultaneous(
"simPdf",
"simultaneous pdf", sample)
85simPdf.addPdf(model,
"physics")
86simPdf.addPdf(model_ctl,
"control")
98frame1 = x.frame(Bins=30, Title=
"Physics sample")
101combData.plotOn(frame1, Cut=
"sample==sample::physics")
110simPdf.plotOn(frame1, Slice=(sample,
"physics"), Components=
"px", ProjWData=(sampleSet, combData), LineStyle=
"--")
113frame2 = x.frame(Bins=30, Title=
"Control sample")
114combData.plotOn(frame2, Cut=
"sample==sample::control")
115simPdf.plotOn(frame2, Slice=(sample,
"control"), ProjWData=(sampleSet, combData))
116simPdf.plotOn(frame2, Slice=(sample,
"control"), Components=
"px_ctl", ProjWData=(sampleSet, combData), LineStyle=
"--")
118c = ROOT.TCanvas(
"rf501_simultaneouspdf",
"rf501_simultaneouspdf", 800, 400)
121ROOT.gPad.SetLeftMargin(0.15)
122frame1.GetYaxis().SetTitleOffset(1.4)
125ROOT.gPad.SetLeftMargin(0.15)
126frame2.GetYaxis().SetTitleOffset(1.4)
129c.SaveAs(
"rf501_simultaneouspdf.png")