23 using namespace RooFit;
25 void rf804_mcstudy_constr()
31 RooRealVar x(
"x",
"x", -10, 10);
34 RooRealVar m(
"m",
"m", 0, -10, 10);
35 RooRealVar s(
"s",
"s", 2, 0.1, 10);
36 RooGaussian g(
"g",
"g", x, m, s);
39 RooPolynomial p(
"p",
"p", x);
42 RooRealVar f(
"f",
"f", 0.4, 0., 1.);
43 RooAddPdf sum(
"sum",
"sum", RooArgSet(g, p), f);
46 RooGaussian fconstraint(
"fconstraint",
"fconstraint", f, RooConst(0.7), RooConst(0.1));
49 RooProdPdf sumc(
"sumc",
"sum with constraint", RooArgSet(sum, fconstraint));
55 RooMCStudy mcs(sumc, x, Constrain(f), Silence(), Binned(), FitOptions(PrintLevel(-1)));
60 mcs.generateAndFit(500, 2000);
63 TH1 *h_f_gen = mcs.fitParDataSet().createHistogram(
"f_gen", -40);
66 RooPlot *frame1 = mcs.plotParam(f, Bins(40));
67 frame1->SetTitle(
"Distribution of fitted f values");
70 RooPlot *frame2 = mcs.plotPull(f, Bins(40), FitGauss());
71 frame1->SetTitle(
"Distribution of f pull values");
73 TCanvas *c =
new TCanvas(
"rf804_mcstudy_constr",
"rf804_mcstudy_constr", 1200, 400);
76 gPad->SetLeftMargin(0.15);
77 h_f_gen->GetYaxis()->SetTitleOffset(1.4);
80 gPad->SetLeftMargin(0.15);
81 frame1->GetYaxis()->SetTitleOffset(1.4);
84 gPad->SetLeftMargin(0.15);
85 frame2->GetYaxis()->SetTitleOffset(1.4);