不读upoot.open显示的内容

2024-09-25 00:21:20 发布

您现在位置:Python中文网/ 问答频道 /正文

回到另一个学习如何正确使用连根拔起快速问题。我正在尝试加载一个Delphes output.root文件,并尝试从使用outlot.open过渡到使用outlot.lazyarrays,以便使用剥离MC文件,当我天真地尝试这样做时,我很难从.root文件获取一些信息

我可以正确地打开任何文件与uplot.open和获得所有内容,“显示”命令列出他们所有

Track                      TStreamerInfo              asdtype('>i4')
Track.PT                   TStreamerBasicType         asjagged(asdtype('>f4'))

LargeJet                   TStreamerInfo              asdtype('>i4')
LargeJet.PT                TStreamerBasicType         asjagged(asdtype('>f4'))


events = uproot.lazyarrays("*.root","Delphes")
print(len(events))                      # correct merged event number

print(events._contents["Track.PT"])     # shows correctly
print(events._contents["LargeJet.PT"])  # shows ([] [] [] ... [])

events = uproot.open("tag_1_delphes_events.root")["Delphes"]
events = events.arrays(["LargeJet.PT"],outputtype=tuple)
print(events)                           # shows correctly

我希望lazyarrays能够正确地为所有内容加载,但是似乎我无法获得某些内容,而且我无法理解是哪一个以及根据什么规则加载的。我正在使用PyCharm,可以访问加载文件的内容,并查看哪些数组被加载,哪些没有

原因是什么和/或我该如何处理


Tags: 文件pt内容trackrootopeneventsshows