22 using namespace RooFit;
24 void rf316_llratioplot()
31 RooRealVar x(
"x",
"x", -5, 5);
32 RooRealVar y(
"y",
"y", -5, 5);
33 RooRealVar z(
"z",
"z", -5, 5);
36 RooGaussian gx(
"gx",
"gx", x, RooConst(0), RooConst(1));
37 RooGaussian gy(
"gy",
"gy", y, RooConst(0), RooConst(1));
38 RooGaussian gz(
"gz",
"gz", z, RooConst(0), RooConst(1));
39 RooProdPdf sig(
"sig",
"sig", RooArgSet(gx, gy, gz));
42 RooPolynomial px(
"px",
"px", x, RooArgSet(RooConst(-0.1), RooConst(0.004)));
43 RooPolynomial py(
"py",
"py", y, RooArgSet(RooConst(0.1), RooConst(-0.004)));
44 RooPolynomial pz(
"pz",
"pz", z);
45 RooProdPdf bkg(
"bkg",
"bkg", RooArgSet(px, py, pz));
48 RooRealVar fsig(
"fsig",
"signal fraction", 0.1, 0., 1.);
49 RooAddPdf model(
"model",
"model", RooArgList(sig, bkg), fsig);
51 RooDataSet *data = model.generate(RooArgSet(x, y, z), 20000);
57 RooPlot *frame = x.frame(Title(
"Projection of 3D data and pdf on X"), Bins(40));
66 RooAbsPdf *sigyz = sig.createProjection(x);
67 RooAbsPdf *totyz = model.createProjection(x);
70 RooFormulaVar llratio_func(
"llratio",
"log10(@0)-log10(@1)", RooArgList(*sigyz, *totyz));
76 data->addColumn(llratio_func);
79 RooDataSet *dataSel = (RooDataSet *)data->reduce(Cut(
"llratio>0.7"));
82 RooPlot *frame2 = x.frame(Title(
"Same projection on X with LLratio(y,z)>0.7"), Bins(40));
85 dataSel->plotOn(frame2);
91 RooDataSet *mcprojData = model.generate(RooArgSet(x, y, z), 10000);
94 mcprojData->addColumn(llratio_func);
95 RooDataSet *mcprojDataSel = (RooDataSet *)mcprojData->reduce(Cut(
"llratio>0.7"));
99 model.plotOn(frame2, ProjWData(*mcprojDataSel));
101 TCanvas *c =
new TCanvas(
"rf316_llratioplot",
"rf316_llratioplot", 800, 400);
104 gPad->SetLeftMargin(0.15);
105 frame->GetYaxis()->SetTitleOffset(1.4);
108 gPad->SetLeftMargin(0.15);
109 frame2->GetYaxis()->SetTitleOffset(1.4);