23x = ROOT.RooRealVar(
"x",
"x", -5, 5)
24y = ROOT.RooRealVar(
"y",
"y", -5, 5)
25z = ROOT.RooRealVar(
"z",
"z", -5, 5)
29 "gx",
"gx", x, ROOT.RooFit.RooConst(0), ROOT.RooFit.RooConst(1))
31 "gy",
"gy", y, ROOT.RooFit.RooConst(0), ROOT.RooFit.RooConst(1))
33 "gz",
"gz", z, ROOT.RooFit.RooConst(0), ROOT.RooFit.RooConst(1))
34sig = ROOT.RooProdPdf(
"sig",
"sig", ROOT.RooArgList(gx, gy, gz))
37px = ROOT.RooPolynomial(
"px",
"px", x, ROOT.RooArgList(
38 ROOT.RooFit.RooConst(-0.1), ROOT.RooFit.RooConst(0.004)))
39py = ROOT.RooPolynomial(
"py",
"py", y, ROOT.RooArgList(
40 ROOT.RooFit.RooConst(0.1), ROOT.RooFit.RooConst(-0.004)))
41pz = ROOT.RooPolynomial(
"pz",
"pz", z)
42bkg = ROOT.RooProdPdf(
"bkg",
"bkg", ROOT.RooArgList(px, py, pz))
45fsig = ROOT.RooRealVar(
"fsig",
"signal fraction", 0.1, 0., 1.)
46model = ROOT.RooAddPdf(
"model",
"model", ROOT.RooArgList(
47 sig, bkg), ROOT.RooArgList(fsig))
50data = model.generate(ROOT.RooArgSet(x, y, z), 200000)
60model.fitTo(data, ROOT.RooFit.NumCPU(4), ROOT.RooFit.Timer(ROOT.kTRUE))
67sigyz = sig.createProjection(ROOT.RooArgSet(x))
68totyz = model.createProjection(ROOT.RooArgSet(x))
69llratio_func = ROOT.RooFormulaVar(
70 "llratio",
"log10(@0)-log10(@1)", ROOT.RooArgList(sigyz, totyz))
74data.addColumn(llratio_func)
75dataSel = data.reduce(ROOT.RooFit.Cut(
"llratio>0.7"))
78frame = x.frame(ROOT.RooFit.Title(
79 "Projection on X with LLratio(y,z)>0.7"), ROOT.RooFit.Bins(40))
89model.plotOn(frame, ROOT.RooFit.ProjWData(dataSel), ROOT.RooFit.NumCPU(4))
91c = ROOT.TCanvas(
"rf603_multicpu",
"rf603_multicpu", 600, 600)
92ROOT.gPad.SetLeftMargin(0.15)
93frame.GetYaxis().SetTitleOffset(1.6)
96c.SaveAs(
"rf603_multicpu.png")