26 using namespace RooFit;
28 void rf607_fitresult()
34 RooRealVar x(
"x",
"x", 0, 10);
37 RooRealVar mean(
"mean",
"mean of gaussians", 5, -10, 10);
38 RooRealVar sigma1(
"sigma1",
"width of gaussians", 0.5, 0.1, 10);
39 RooRealVar sigma2(
"sigma2",
"width of gaussians", 1, 0.1, 10);
41 RooGaussian sig1(
"sig1",
"Signal component 1", x, mean, sigma1);
42 RooGaussian sig2(
"sig2",
"Signal component 2", x, mean, sigma2);
45 RooRealVar a0(
"a0",
"a0", 0.5, 0., 1.);
46 RooRealVar a1(
"a1",
"a1", -0.2);
47 RooChebychev bkg(
"bkg",
"Background", x, RooArgSet(a0, a1));
50 RooRealVar sig1frac(
"sig1frac",
"fraction of component 1 in signal", 0.8, 0., 1.);
51 RooAddPdf sig(
"sig",
"Signal", RooArgList(sig1, sig2), sig1frac);
54 RooRealVar bkgfrac(
"bkgfrac",
"fraction of background", 0.5, 0., 1.);
55 RooAddPdf model(
"model",
"g1+g2+a", RooArgList(bkg, sig), bkgfrac);
58 RooDataSet *data = model.generate(x, 1000);
64 RooFitResult *r = model.fitTo(*data, Save());
80 gStyle->SetOptStat(0);
81 TH2 *hcorr = r->correlationHist();
84 RooPlot *frame =
new RooPlot(sigma1, sig1frac, 0.45, 0.60, 0.65, 0.90);
85 frame->SetTitle(
"Covariance between sigma1 and sig1frac");
86 r->plotOn(frame, sigma1, sig1frac,
"ME12ABHV");
92 cout <<
"EDM = " << r->edm() << endl;
93 cout <<
"-log(L) at minimum = " << r->minNll() << endl;
96 cout <<
"final value of floating parameters" << endl;
97 r->floatParsFinal().Print(
"s");
100 cout <<
"correlation between sig1frac and a0 is " << r->correlation(sig1frac, a0) << endl;
101 cout <<
"correlation between bkgfrac and mean is " << r->correlation(
"bkgfrac",
"mean") << endl;
104 const TMatrixDSym &cor = r->correlationMatrix();
105 const TMatrixDSym &cov = r->covarianceMatrix();
108 cout <<
"correlation matrix" << endl;
110 cout <<
"covariance matrix" << endl;
117 TFile f(
"rf607_fitresult.root",
"RECREATE");
124 TCanvas *c =
new TCanvas(
"rf607_fitresult",
"rf607_fitresult", 800, 400);
127 gPad->SetLeftMargin(0.15);
128 hcorr->GetYaxis()->SetTitleOffset(1.4);
131 gPad->SetLeftMargin(0.15);
132 frame->GetYaxis()->SetTitleOffset(1.6);