12 from __future__ 
import print_function
 
   20 x = ROOT.RooRealVar(
"x", 
"x", 0, 10)
 
   24 mean = ROOT.RooRealVar(
"mean", 
"mean of gaussians", 5, -10, 10)
 
   25 sigma1 = ROOT.RooRealVar(
"sigma1", 
"width of gaussians", 0.5, 0.1, 10)
 
   26 sigma2 = ROOT.RooRealVar(
"sigma2", 
"width of gaussians", 1, 0.1, 10)
 
   28 sig1 = ROOT.RooGaussian(
"sig1", 
"Signal component 1", x, mean, sigma1)
 
   29 sig2 = ROOT.RooGaussian(
"sig2", 
"Signal component 2", x, mean, sigma2)
 
   32 a0 = ROOT.RooRealVar(
"a0", 
"a0", 0.5, 0., 1.)
 
   33 a1 = ROOT.RooRealVar(
"a1", 
"a1", -0.2)
 
   34 bkg = ROOT.RooChebychev(
"bkg", 
"Background", x, ROOT.RooArgList(a0, a1))
 
   37 sig1frac = ROOT.RooRealVar(
 
   38     "sig1frac", 
"fraction of component 1 in signal", 0.8, 0., 1.)
 
   40     "sig", 
"Signal", ROOT.RooArgList(sig1, sig2), ROOT.RooArgList(sig1frac))
 
   43 bkgfrac = ROOT.RooRealVar(
"bkgfrac", 
"fraction of background", 0.5, 0., 1.)
 
   44 model = ROOT.RooAddPdf(
 
   45     "model", 
"g1+g2+a", ROOT.RooArgList(bkg, sig), ROOT.RooArgList(bkgfrac))
 
   48 data = model.generate(ROOT.RooArgSet(x), 1000)
 
   54 r = model.fitTo(data, ROOT.RooFit.Save())
 
   70 ROOT.gStyle.SetOptStat(0)
 
   71 ROOT.gStyle.SetPalette(1)
 
   72 hcorr = r.correlationHist()
 
   75 frame = ROOT.RooPlot(sigma1, sig1frac, 0.45, 0.60, 0.65, 0.90)
 
   76 frame.SetTitle(
"Covariance between sigma1 and sig1frac")
 
   77 r.plotOn(frame, sigma1, sig1frac, 
"ME12ABHV")
 
   83 print(
"EDM = ", r.edm())
 
   84 print(
"-log(L) minimum = ", r.minNll())
 
   87 print(
"final value of floating parameters")
 
   88 r.floatParsFinal().Print(
"s")
 
   91 print(
"correlation between sig1frac and a0 is  ", r.correlation(
 
   93 print(
"correlation between bkgfrac and mean is ", r.correlation(
 
   97 cor = r.correlationMatrix()
 
   98 cov = r.covarianceMatrix()
 
  101 print(
"correlation matrix")
 
  103 print(
"covariance matrix")
 
  110 f = ROOT.TFile(
"rf607_fitresult.root", 
"RECREATE")
 
  117 c = ROOT.TCanvas(
"rf607_fitresult", 
"rf607_fitresult", 800, 400)
 
  120 ROOT.gPad.SetLeftMargin(0.15)
 
  121 hcorr.GetYaxis().SetTitleOffset(1.4)
 
  124 ROOT.gPad.SetLeftMargin(0.15)
 
  125 frame.GetYaxis().SetTitleOffset(1.6)
 
  128 c.SaveAs(
"rf607_fitresult.png")