24 using namespace RooFit;
26 void fillWorkspace(RooWorkspace &w);
28 void rf510_wsnamedsets()
33 RooWorkspace *w =
new RooWorkspace(
"w");
38 RooAbsPdf *model = w->pdf(
"model");
41 RooDataSet *data = model->generate(*w->set(
"observables"), 1000);
47 RooPlot *frame = ((RooRealVar *)w->set(
"observables")->first())->frame();
52 w->loadSnapshot(
"reference_fit");
53 model->plotOn(frame, LineColor(kRed));
54 w->loadSnapshot(
"reference_fit_bkgonly");
55 model->plotOn(frame, LineColor(kRed), LineStyle(kDashed));
58 new TCanvas(
"rf510_wsnamedsets",
"rf503_wsnamedsets", 600, 600);
59 gPad->SetLeftMargin(0.15);
60 frame->GetYaxis()->SetTitleOffset(1.4);
70 void fillWorkspace(RooWorkspace &w)
76 RooRealVar x(
"x",
"x", 0, 10);
79 RooRealVar mean(
"mean",
"mean of gaussians", 5, 0, 10);
80 RooRealVar sigma1(
"sigma1",
"width of gaussians", 0.5);
81 RooRealVar sigma2(
"sigma2",
"width of gaussians", 1);
83 RooGaussian sig1(
"sig1",
"Signal component 1", x, mean, sigma1);
84 RooGaussian sig2(
"sig2",
"Signal component 2", x, mean, sigma2);
87 RooRealVar a0(
"a0",
"a0", 0.5, 0., 1.);
88 RooRealVar a1(
"a1",
"a1", 0.2, 0., 1.);
89 RooChebychev bkg(
"bkg",
"Background", x, RooArgSet(a0, a1));
92 RooRealVar sig1frac(
"sig1frac",
"fraction of component 1 in signal", 0.8, 0., 1.);
93 RooAddPdf sig(
"sig",
"Signal", RooArgList(sig1, sig2), sig1frac);
96 RooRealVar bkgfrac(
"bkgfrac",
"fraction of background", 0.5, 0., 1.);
97 RooAddPdf model(
"model",
"g1+g2+a", RooArgList(bkg, sig), bkgfrac);
112 RooArgSet *params = (RooArgSet *)model.getParameters(x);
113 w.defineSet(
"parameters", *params);
114 w.defineSet(
"observables", x);
129 RooDataSet *refData = model.generate(x, 10000);
130 model.fitTo(*refData, PrintLevel(-1));
134 w.saveSnapshot(
"reference_fit", *params, kTRUE);
140 bkgfrac.setConstant(kTRUE);
141 bkgfrac.removeError();
142 model.fitTo(*refData, PrintLevel(-1));
144 w.saveSnapshot(
"reference_fit_bkgonly", *params, kTRUE);