19 x = ROOT.RooRealVar(
"x",
"x", -8, 8)
22 mean = ROOT.RooRealVar(
"mean",
"mean", 0, -8, 8)
23 sigma = ROOT.RooRealVar(
"sigma",
"sigma", 0.3, 0.1, 10)
24 gx = ROOT.RooGaussian(
"gx",
"gx", x, mean, sigma)
27 a0 = ROOT.RooRealVar(
"a0",
"a0", -0.1, -1, 1)
28 a1 = ROOT.RooRealVar(
"a1",
"a1", 0.004, -1, 1)
29 px = ROOT.RooChebychev(
"px",
"px", x, ROOT.RooArgList(a0, a1))
32 f = ROOT.RooRealVar(
"f",
"f", 0.2, 0., 1.)
33 model = ROOT.RooAddPdf(
34 "model",
"model", ROOT.RooArgList(gx, px), ROOT.RooArgList(f))
41 mean_ctl = ROOT.RooRealVar(
"mean_ctl",
"mean_ctl", -3, -8, 8)
42 gx_ctl = ROOT.RooGaussian(
"gx_ctl",
"gx_ctl", x, mean_ctl, sigma)
45 a0_ctl = ROOT.RooRealVar(
"a0_ctl",
"a0_ctl", -0.1, -1, 1)
46 a1_ctl = ROOT.RooRealVar(
"a1_ctl",
"a1_ctl", 0.5, -0.1, 1)
47 px_ctl = ROOT.RooChebychev(
48 "px_ctl",
"px_ctl", x, ROOT.RooArgList(a0_ctl, a1_ctl))
51 f_ctl = ROOT.RooRealVar(
"f_ctl",
"f_ctl", 0.5, 0., 1.)
52 model_ctl = ROOT.RooAddPdf(
58 ROOT.RooArgList(f_ctl))
64 data = model.generate(ROOT.RooArgSet(x), 100)
65 data_ctl = model_ctl.generate(ROOT.RooArgSet(x), 2000)
71 sample = ROOT.RooCategory(
"sample",
"sample")
72 sample.defineType(
"physics")
73 sample.defineType(
"control")
76 combData = ROOT.RooDataSet(
80 ROOT.RooFit.Index(sample),
92 simPdf = ROOT.RooSimultaneous(
"simPdf",
"simultaneous pdf", sample)
96 simPdf.addPdf(model,
"physics")
97 simPdf.addPdf(model_ctl,
"control")
103 simPdf.fitTo(combData)
109 frame1 = x.frame(ROOT.RooFit.Bins(30), ROOT.RooFit.Title(
"Physics sample"))
112 combData.plotOn(frame1, ROOT.RooFit.Cut(
"sample==sample::physics"))
120 sampleSet = ROOT.RooArgSet(sample)
121 simPdf.plotOn(frame1, ROOT.RooFit.Slice(sample,
"physics"), ROOT.RooFit.Components(
122 "px"), ROOT.RooFit.ProjWData(sampleSet, combData), ROOT.RooFit.LineStyle(ROOT.kDashed))
125 frame2 = x.frame(ROOT.RooFit.Bins(30), ROOT.RooFit.Title(
"Control sample"))
126 combData.plotOn(frame2, ROOT.RooFit.Cut(
"sample==sample::control"))
127 simPdf.plotOn(frame2, ROOT.RooFit.Slice(sample,
"control"),
128 ROOT.RooFit.ProjWData(sampleSet, combData))
129 simPdf.plotOn(frame2, ROOT.RooFit.Slice(sample,
"control"), ROOT.RooFit.Components(
130 "px_ctl"), ROOT.RooFit.ProjWData(sampleSet, combData), ROOT.RooFit.LineStyle(ROOT.kDashed))
132 c = ROOT.TCanvas(
"rf501_simultaneouspdf",
133 "rf501_simultaneouspdf", 800, 400)
136 ROOT.gPad.SetLeftMargin(0.15)
137 frame1.GetYaxis().SetTitleOffset(1.4)
140 ROOT.gPad.SetLeftMargin(0.15)
141 frame2.GetYaxis().SetTitleOffset(1.4)
144 c.SaveAs(
"rf501_simultaneouspdf.png")