2

回到学习如何正确使用连根拔起的另一个快速问题。我正在尝试加载 Delphes 输出 .root 文件,并且我正在尝试从使用 uproot.open 转换为使用 uproot.lazyarrays 以使用拆分 MC 文件,当我天真地尝试解决这个问题时,我遇到了一些问题.root 文件中的信息。

我可以用 uproot.open 正确打开任何文件并获取所有内容,“show”命令将它们全部列出。

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,我可以访问已加载文件的内容并查看哪些数组已加载,哪些未加载。

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

4

0 回答 0