3 filein = TFile(
"mymccheck_uniform_50GeV.root",
"read")
4 tree = filein.Get(
"detsimana/tree")
5 tree.SetBranchStatus(
"*",0)
6 tree.SetBranchStatus(
"nu_eng_mcn",1)
8 h_energy = TH1D(
"heng",
"heng", 500, 0., 50)
10 h_energy.Fill(entry.nu_eng_mcn)
12 hinv = h_energy.Clone()
13 hloginv = h_energy.Clone()
14 for i
in range(h_energy.GetNbinsX()):
15 if h_energy.GetBinContent(i+1) != 0:
16 hinv.SetBinContent(i+1, h_energy.Integral()/h_energy.GetBinContent(i+1))
17 hloginv.SetBinContent(i+1, TMath.Log(h_energy.Integral()/h_energy.GetBinContent(i+1)))
22 def profile(y, p):
return p[0]+p[1]*TMath.Power(y,-p[2])+p[3]*TMath.Power(y, -p[4])+p[5]*y
24 if energy > threshold:
25 return profile(energy, par)
27 return profile(100., par)
34 fit_log = TF1(
"fit_log", fit_log_fcn, 0, 50, 6)
35 fit_log.SetLineColor(kRed)
45 fit_log.SetNpx(200000)
48 hflat = TH1D(
"hflat",
"hflat", 500, 0., 50)
53 for j
in range(tree.GetEntries()):
54 hflat.Fill(fit_log.GetRandom())
62 hflat.Scale(hinv.Integral()/(2500*hflat.Integral()))
63 hflat.SetLineColor(kRed)
64 hflat.Multiply(h_energy)
70 hflat.GetYaxis().SetRangeUser(0, 2500)
71 hflat.GetXaxis().SetRangeUser(0, 50)
72 hflat.Draw(
"hist same")
76 c.Print(
"test_fit.pdf")