20 using namespace RooFit;
22 void rf202_extendedmlfit()
29 RooRealVar x(
"x",
"x", 0, 10);
32 RooRealVar mean(
"mean",
"mean of gaussians", 5);
33 RooRealVar sigma1(
"sigma1",
"width of gaussians", 0.5);
34 RooRealVar sigma2(
"sigma2",
"width of gaussians", 1);
36 RooGaussian sig1(
"sig1",
"Signal component 1", x, mean, sigma1);
37 RooGaussian sig2(
"sig2",
"Signal component 2", x, mean, sigma2);
40 RooRealVar a0(
"a0",
"a0", 0.5, 0., 1.);
41 RooRealVar a1(
"a1",
"a1", 0.2, 0., 1.);
42 RooChebychev bkg(
"bkg",
"Background", x, RooArgSet(a0, a1));
45 RooRealVar sig1frac(
"sig1frac",
"fraction of component 1 in signal", 0.8, 0., 1.);
46 RooAddPdf sig(
"sig",
"Signal", RooArgList(sig1, sig2), sig1frac);
56 RooRealVar nsig(
"nsig",
"number of signal events", 500, 0., 10000);
57 RooRealVar nbkg(
"nbkg",
"number of background events", 500, 0, 10000);
58 RooAddPdf model(
"model",
"(g1+g2)+a", RooArgList(bkg, sig), RooArgList(nbkg, nsig));
65 RooDataSet *data = model.generate(x);
72 RooPlot *xframe = x.frame(Title(
"extended ML fit example"));
74 model.plotOn(xframe, Normalization(1.0, RooAbsReal::RelativeExpected));
77 model.plotOn(xframe, Components(bkg), LineStyle(kDashed), Normalization(1.0, RooAbsReal::RelativeExpected));
80 model.plotOn(xframe, Components(RooArgSet(bkg, sig2)), LineStyle(kDotted),
81 Normalization(1.0, RooAbsReal::RelativeExpected));
94 RooExtendPdf esig(
"esig",
"extended signal p.d.f", sig, nsig);
95 RooExtendPdf ebkg(
"ebkg",
"extended background p.d.f", bkg, nbkg);
101 RooAddPdf model2(
"model2",
"(g1+g2)+a", RooArgList(ebkg, esig));
104 new TCanvas(
"rf202_composite",
"rf202_composite", 600, 600);
105 gPad->SetLeftMargin(0.15);
106 xframe->GetYaxis()->SetTitleOffset(1.4);