what’s wrong?
The code output the same result: 1541 and 1533
These are the correct values when the “bin size” = 1.
But it should be 9718 and 1533.
In this case, the first histogram has the “bin size” bigger than 1 (the second histogram has 1).
Try: h.GetBinWidth(h.GetMaximumBin())
It output only 1.0 for all histograms.
And the same place, what do you get from:
h.GetMaximumBin()
h.GetBinCenter(h.GetMaximumBin())
h.GetBinWidth(h.GetMaximumBin())
h.GetBinContent(h.GetMaximumBin())
Well, can i get real values of h.GetMaximumBin(), if i use
h = ROOT.TH1D(“h”, “histogram with channel 7”, 100, 0., 0.) ?
You can also get meaningful results when you use:
# Br 8 :Channel7 : ch7[size]/s
name = "ch7" # the leaf name
xmin = ROOT.Int_t(tree.GetMinimum(name)) # needs the leaf name here
xmax = ROOT.Int_t(tree.GetMaximum(name)) + 1 # needs the leaf name here
h = ROOT.TH1D("h", name + " histogram", (xmax - xmin), xmin, xmax) # fix bin size = 1
tree.Project("h", name) # can use the branch name or the leaf name here
h.GetMaximum() output 0.0, 0.0
I corrected it (the problem is that your “branch name” != “leaf name”).
def ch7_939(y):
c = ROOT.TCanvas()
myfile = ROOT.TFile.Open("/home/erg/2022.12/2022.12.01/"+y)
tree = myfile.Get("FADCData 939")
ROOT.gROOT.cd()
name = "ch7"
xmin = int(tree.GetMinimum(name))
xmax = int(tree.GetMaximum(name)) + 1
h = ROOT.TH1D("h", name + " histogram", (xmax - xmin), xmin, xmax)
tree.Project("h", name)
h.BufferEmpty(1)
ROOT.gPad.Update()
return h.GetMaximum(maxval=100000.0)
second = []
chan7_939 = []
m = os.listdir("/home/erg/2022.12/2022.12.01")
for i in range(len(m)):
second.append(m[i])
second.sort()
print(second)
for j in range(len(m)):
chan7_939.append(ch7_939(second[j]))
print(chan7_939)
Is it correct? Because i obtain the same result.
def ch7_939(y):
myfile = ROOT.TFile.Open("/home/erg/2022.12/2022.12.01/"+y)
tree = myfile.Get("FADCData 939")
ROOT.gROOT.cd() # newly created histograms should go here
name = "ch7"
xmin = int(tree.GetMinimum(name))
xmax = int(tree.GetMaximum(name)) + 1
h = ROOT.TH1D("h", name + " histogram", (xmax - xmin), xmin, xmax)
tree.Project("h", name)
return h.GetMaximum()
Regrettably, that didn’t help either.
I hope you get the correct values 1541 and 1533.
Correct only 1533. The first value should be 9718 according to the original histogram.
I guess it’s time you discuss it with your supervisor.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.