31f_cb = ROOT.TF1(
"MyCrystalBall",
"crystalball", -5.0, 5.0)
32f_exp = ROOT.TF1(
"MyExponential",
"expo", -5.0, 5.0)
35f_exp.SetParameters(1.0, -0.3)
36f_cb.SetParameters(1, signal_mean, 0.3, 2, 1.5)
40fnorm_exp_cb = ROOT.TF1NormSum(f_cb, f_exp, nsig, nbkg)
43f_sum = ROOT.TF1(
"fsum", fnorm_exp_cb, -5.0, 5.0, fnorm_exp_cb.GetNpar())
46parameter_values = fnorm_exp_cb.GetParameters()
47f_sum.SetParameters(parameter_values.data())
56f_sum.SetParName(1,
"NBackground")
57f_sum.SetParName(0,
"NSignal")
58for i
in range(2, f_sum.GetNpar()):
59 f_sum.SetParName(i, fnorm_exp_cb.GetParName(i))
64h_sum = ROOT.TH1D(
"h_ExpCB",
"Exponential Bkg + CrystalBall function", nBins, -5.0, 5.0)
65h_sum.FillRandom(
"fsum", nEvents)
66print(
"Time to generate {0} events: ".
format(nEvents))
71h_sum.Scale(1.0,
"width")
75c1 = ROOT.TCanvas(
"Fit",
"Fit", 800, 1000)
77result = h_sum.Fit(
"fsum",
"SQ")
80print(
"Time to fit using ROOT TF1Normsum: ")
84for i, pref
in enumerate([nsig, nbkg, signal_mean]):
85 if not ROOT.TMath.AreEqualAbs(pref, f_sum.GetParameter(i), f_sum.GetParError(i) * 10.0):
88 "Difference found in fitted {0} - difference is {1:.2f} sigma".
format(
89 f_sum.GetParName(i), (f_sum.GetParameter(i) - pref) / f_sum.GetParError(i)
93ROOT.gStyle.SetOptStat(0)
95t1 = ROOT.TLatex(-2.5, 300000,
"NSignal = {0:g} #pm {1:g}".
format(f_sum.GetParameter(0), f_sum.GetParError(0)))
96t2 = ROOT.TLatex(-2.5, 270000,
"Nbackgr = {0:g} #pm {1:g}".
format(f_sum.GetParameter(1), f_sum.GetParError(1)))
100c1.SaveAs(
"fitNormSum.png")
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t format
static void SetDefaultMinimizer(const char *type, const char *algo=nullptr)
Set the default Minimizer type and corresponding algorithms.