Я пытаюсь считывать значения из файла ROOT с помощью PyROOT и застрял с этой проблемой.Любая помощь приветствуется.
import ROOT
rootFile = "file.root"
f = ROOT.TFile(rootFile,'read')
tree = f.Get('FCS_ParametrizationInput')
leaves = tree.GetListOfLeaves()
# define dynamically a python class containing root Leaves objects
class PyListOfLeaves(dict) :
pass
# create an istance
pyl = PyListOfLeaves()
for i in range(0,leaves.GetEntries() ) :
leaf = leaves.At(i)
name = leaf.GetName()
# add dynamically attribute to my class
pyl.__setattr__(name,leaf)
if name == 'TruthPz':
break
nev = tree.GetEntries()
for iev in range(0,nev) :
tree.GetEntry(iev)
# get values from the tree using Python class pyl which contains leaves
# objects
px = pyl.TruthPx.GetValue()
py = pyl.TruthPy.GetValue()
pz = pyl.TruthPz.GetValue()
print(px)
if iev == 10:
break
Я основал свой код на этой ссылке.Я думаю, что следую всему, как указано в этом примере.Однако вместо того, чтобы считывать значения импульса, как положено, я получаю постоянный вывод нулей.Моя древовидная структура показана на рисунке TBrowser.
Спасибо!