回到学习如何正确使用连根拔起的另一个快速问题。我正在尝试加载 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,我可以访问已加载文件的内容并查看哪些数组已加载,哪些未加载。
可能是什么原因和/或我该如何处理?