18x = ROOT.RooRealVar(
"x", 
"x", -5, 5)
 
   19y = ROOT.RooRealVar(
"y", 
"y", -5, 5)
 
   20z = ROOT.RooRealVar(
"z", 
"z", -5, 5)
 
   24    "gx", 
"gx", x, ROOT.RooFit.RooConst(0), ROOT.RooFit.RooConst(1))
 
   26    "gy", 
"gy", y, ROOT.RooFit.RooConst(0), ROOT.RooFit.RooConst(1))
 
   28    "gz", 
"gz", z, ROOT.RooFit.RooConst(0), ROOT.RooFit.RooConst(1))
 
   29sig = ROOT.RooProdPdf(
"sig", 
"sig", ROOT.RooArgList(gx, gy, gz))
 
   32px = ROOT.RooPolynomial(
"px", 
"px", x, ROOT.RooArgList(
 
   33    ROOT.RooFit.RooConst(-0.1), ROOT.RooFit.RooConst(0.004)))
 
   34py = ROOT.RooPolynomial(
"py", 
"py", y, ROOT.RooArgList(
 
   35    ROOT.RooFit.RooConst(0.1), ROOT.RooFit.RooConst(-0.004)))
 
   36pz = ROOT.RooPolynomial(
"pz", 
"pz", z)
 
   37bkg = ROOT.RooProdPdf(
"bkg", 
"bkg", ROOT.RooArgList(px, py, pz))
 
   40fsig = ROOT.RooRealVar(
"fsig", 
"signal fraction", 0.1, 0., 1.)
 
   41model = ROOT.RooAddPdf(
"model", 
"model", ROOT.RooArgList(
 
   42    sig, bkg), ROOT.RooArgList(fsig))
 
   45data = model.generate(ROOT.RooArgSet(x, y, z), 200000)
 
   55model.fitTo(data, ROOT.RooFit.NumCPU(4), ROOT.RooFit.Timer(ROOT.kTRUE))
 
   62sigyz = sig.createProjection(ROOT.RooArgSet(x))
 
   63totyz = model.createProjection(ROOT.RooArgSet(x))
 
   64llratio_func = ROOT.RooFormulaVar(
 
   65    "llratio", 
"log10(@0)-log10(@1)", ROOT.RooArgList(sigyz, totyz))
 
   69data.addColumn(llratio_func)
 
   70dataSel = data.reduce(ROOT.RooFit.Cut(
"llratio>0.7"))
 
   73frame = x.frame(ROOT.RooFit.Title(
 
   74    "Projection on X with LLratio(y,z)>0.7"), ROOT.RooFit.Bins(40))
 
   84model.plotOn(frame, ROOT.RooFit.ProjWData(dataSel), ROOT.RooFit.NumCPU(4))
 
   86c = ROOT.TCanvas(
"rf603_multicpu", 
"rf603_multicpu", 600, 600)
 
   87ROOT.gPad.SetLeftMargin(0.15)
 
   88frame.GetYaxis().SetTitleOffset(1.6)
 
   91c.SaveAs(
"rf603_multicpu.png")