22 using namespace RooFit;
24 void rf306_condpereventerrors()
30 RooRealVar dt(
"dt",
"dt", -10, 10);
31 RooRealVar dterr(
"dterr",
"per-event error on dt", 0.01, 10);
34 RooRealVar bias(
"bias",
"bias", 0, -10, 10);
35 RooRealVar sigma(
"sigma",
"per-event error scale factor", 1, 0.1, 10);
36 RooGaussModel gm(
"gm1",
"gauss model scaled bt per-event error", dt, bias, sigma, dterr);
39 RooRealVar tau(
"tau",
"tau", 1.548);
40 RooDecay decay_gm(
"decay_gm",
"decay", dt, tau, gm, RooDecay::DoubleSided);
46 RooLandau pdfDtErr(
"pdfDtErr",
"pdfDtErr", dterr, RooConst(1), RooConst(0.25));
47 RooDataSet *expDataDterr = pdfDtErr.generate(dterr, 10000);
53 RooDataSet *data = decay_gm.generate(dt, ProtoData(*expDataDterr));
59 decay_gm.fitTo(*data, ConditionalObservables(dterr));
65 TH1 *hh_decay = decay_gm.createHistogram(
"hh_decay", dt, Binning(50), YVar(dterr, Binning(50)));
66 hh_decay->SetLineColor(kBlue);
69 RooPlot *frame = dt.frame(Title(
"Slices of decay(dt|dterr) at various dterr"));
70 for (Int_t ibin = 0; ibin < 100; ibin += 20) {
72 decay_gm.plotOn(frame, Normalization(5.));
76 RooPlot *frame2 = dt.frame(Title(
"Projection of decay(dt|dterr) on dt"));
84 decay_gm.plotOn(frame2, ProjWData(*expDataDterr, kTRUE));
87 TCanvas *c =
new TCanvas(
"rf306_condpereventerrors",
"rf306_condperventerrors", 1200, 400);
90 gPad->SetLeftMargin(0.20);
91 hh_decay->GetZaxis()->SetTitleOffset(2.5);
92 hh_decay->Draw(
"surf");
94 gPad->SetLeftMargin(0.15);
95 frame->GetYaxis()->SetTitleOffset(1.6);
98 gPad->SetLeftMargin(0.15);
99 frame2->GetYaxis()->SetTitleOffset(1.6);