PyROOT を使用して ROOT ファイルから値を読み込もうとしていますが、この問題で立ち往生しています。どんな助けでも大歓迎です。
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 によって示されるように、図のように与えられます。
ありがとう!