Вернемся к еще одному быстрому вопросу о том, как правильно использовать выкорчевывание. Я пытаюсь загрузить выходной файл 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, и я могу получить доступ к содержимому загруженных файлов и увидеть, какие массивы загружены, а какие нет.
В чем может быть причина и / или как я могу это обработать?