20 using namespace RooFit;
22 void rf610_visualerror()
28 RooRealVar x(
"x",
"x", -10, 10);
30 RooRealVar m(
"m",
"m", 0, -10, 10);
31 RooRealVar s(
"s",
"s", 2, 1, 50);
32 RooGaussian sig(
"sig",
"sig", x, m, s);
34 RooRealVar m2(
"m2",
"m2", -1, -10, 10);
35 RooRealVar s2(
"s2",
"s2", 6, 1, 50);
36 RooGaussian bkg(
"bkg",
"bkg", x, m2, s2);
38 RooRealVar fsig(
"fsig",
"fsig", 0.33, 0, 1);
39 RooAddPdf model(
"model",
"model", RooArgList(sig, bkg), fsig);
43 RooAbsData *d = model.generateBinned(x, 1000);
46 RooFitResult *r = model.fitTo(*d, Save());
52 RooPlot *frame = x.frame(Bins(40), Title(
"P.d.f with visualized 1-sigma error band"));
72 model.plotOn(frame, VisualizeError(*r, 1), FillColor(kOrange));
83 model.plotOn(frame, VisualizeError(*r, 1, kFALSE), DrawOption(
"L"), LineWidth(2), LineColor(kRed));
88 model.plotOn(frame, VisualizeError(*r, 1), FillColor(kOrange), Components(
"bkg"));
89 model.plotOn(frame, VisualizeError(*r, 1, kFALSE), DrawOption(
"L"), LineWidth(2), LineColor(kRed), Components(
"bkg"),
94 model.plotOn(frame, Components(
"bkg"), LineStyle(kDashed));
102 RooPlot *frame2 = x.frame(Bins(40), Title(
"Visualization of 2-sigma partial error from (m,m2)"));
115 model.plotOn(frame2, VisualizeError(*r, RooArgSet(m, m2), 2), FillColor(kCyan));
116 model.plotOn(frame2, Components(
"bkg"), VisualizeError(*r, RooArgSet(m, m2), 2), FillColor(kCyan));
118 model.plotOn(frame2);
119 model.plotOn(frame2, Components(
"bkg"), LineStyle(kDashed));
120 frame2->SetMinimum(0);
123 RooPlot *frame3 = x.frame(Bins(40), Title(
"Visualization of 2-sigma partial error from (s,s2)"));
126 model.plotOn(frame3, VisualizeError(*r, RooArgSet(s, s2), 2), FillColor(kGreen));
127 model.plotOn(frame3, Components(
"bkg"), VisualizeError(*r, RooArgSet(s, s2), 2), FillColor(kGreen));
129 model.plotOn(frame3);
130 model.plotOn(frame3, Components(
"bkg"), LineStyle(kDashed));
131 frame3->SetMinimum(0);
134 RooPlot *frame4 = x.frame(Bins(40), Title(
"Visualization of 2-sigma partial error from fsig"));
137 model.plotOn(frame4, VisualizeError(*r, RooArgSet(fsig), 2), FillColor(kMagenta));
138 model.plotOn(frame4, Components(
"bkg"), VisualizeError(*r, RooArgSet(fsig), 2), FillColor(kMagenta));
140 model.plotOn(frame4);
141 model.plotOn(frame4, Components(
"bkg"), LineStyle(kDashed));
142 frame4->SetMinimum(0);
144 TCanvas *c =
new TCanvas(
"rf610_visualerror",
"rf610_visualerror", 800, 800);
147 gPad->SetLeftMargin(0.15);
148 frame->GetYaxis()->SetTitleOffset(1.4);
151 gPad->SetLeftMargin(0.15);
152 frame2->GetYaxis()->SetTitleOffset(1.6);
155 gPad->SetLeftMargin(0.15);
156 frame3->GetYaxis()->SetTitleOffset(1.6);
159 gPad->SetLeftMargin(0.15);
160 frame4->GetYaxis()->SetTitleOffset(1.6);