27 using namespace RooFit;
29 void rf608_fitresultaspdf()
35 RooRealVar x(
"x",
"x", -20, 20);
38 RooRealVar mean(
"mean",
"mean of g1 and g2", 0, -1, 1);
39 RooRealVar sigma_g1(
"sigma_g1",
"width of g1", 2);
40 RooGaussian g1(
"g1",
"g1", x, mean, sigma_g1);
42 RooRealVar sigma_g2(
"sigma_g2",
"width of g2", 4, 3.0, 5.0);
43 RooGaussian g2(
"g2",
"g2", x, mean, sigma_g2);
45 RooRealVar frac(
"frac",
"frac", 0.5, 0.0, 1.0);
46 RooAddPdf model(
"model",
"model", RooArgList(g1, g2), frac);
49 RooDataSet *data = model.generate(x, 1000);
54 RooFitResult *r = model.fitTo(*data, Save());
59 RooAbsPdf *parabPdf = r->createHessePdf(RooArgSet(frac, mean, sigma_g2));
65 RooDataSet *d = parabPdf->generate(RooArgSet(mean, sigma_g2, frac), 100000);
68 TH3 *hh_3d = (TH3 *)parabPdf->createHistogram(
"mean,sigma_g2,frac", 25, 25, 25);
69 hh_3d->SetFillColor(kBlue);
74 RooAbsPdf *pdf_sigmag2_frac = parabPdf->createProjection(mean);
75 RooAbsPdf *pdf_mean_frac = parabPdf->createProjection(sigma_g2);
76 RooAbsPdf *pdf_mean_sigmag2 = parabPdf->createProjection(frac);
79 TH2 *hh_sigmag2_frac = (TH2 *)pdf_sigmag2_frac->createHistogram(
"sigma_g2,frac", 50, 50);
80 TH2 *hh_mean_frac = (TH2 *)pdf_mean_frac->createHistogram(
"mean,frac", 50, 50);
81 TH2 *hh_mean_sigmag2 = (TH2 *)pdf_mean_sigmag2->createHistogram(
"mean,sigma_g2", 50, 50);
82 hh_mean_frac->SetLineColor(kBlue);
83 hh_sigmag2_frac->SetLineColor(kBlue);
84 hh_mean_sigmag2->SetLineColor(kBlue);
87 new TCanvas(
"rf608_fitresultaspdf_1",
"rf608_fitresultaspdf_1", 600, 600);
91 TCanvas *c2 =
new TCanvas(
"rf608_fitresultaspdf_2",
"rf608_fitresultaspdf_2", 900, 600);
94 gPad->SetLeftMargin(0.15);
95 hh_mean_sigmag2->GetZaxis()->SetTitleOffset(1.4);
96 hh_mean_sigmag2->Draw(
"surf3");
98 gPad->SetLeftMargin(0.15);
99 hh_sigmag2_frac->GetZaxis()->SetTitleOffset(1.4);
100 hh_sigmag2_frac->Draw(
"surf3");
102 gPad->SetLeftMargin(0.15);
103 hh_mean_frac->GetZaxis()->SetTitleOffset(1.4);
104 hh_mean_frac->Draw(
"surf3");
107 TH1 *tmp1 = d->createHistogram(
"mean,sigma_g2", 50, 50);
108 TH1 *tmp2 = d->createHistogram(
"sigma_g2,frac", 50, 50);
109 TH1 *tmp3 = d->createHistogram(
"mean,frac", 50, 50);
112 gPad->SetLeftMargin(0.15);
113 tmp1->GetZaxis()->SetTitleOffset(1.4);
116 gPad->SetLeftMargin(0.15);
117 tmp2->GetZaxis()->SetTitleOffset(1.4);
120 gPad->SetLeftMargin(0.15);
121 tmp3->GetZaxis()->SetTitleOffset(1.4);