gpt4 book ai didi

python - pyroot Ntuple 处理程序

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:51 24 4
gpt4 key购买 nike

我想创建类来处理 TTree:

from ROOT import *
from Exceptions import *
import os.path

class NTupleHandler:

def __init__(self, fileName, eventType):
if not os.path.isfile(fileName):
raise InputError( fileName)
f = TFile(fileName, 'read')
if f is None:
raise InputError("openError"+fileName)
dir=f.Get(eventType)
if dir is None:
raise InputError("directory Error"+eventType)
tree=dir.Get('particle')
self.tree=tree
self.tree.GetEntriesFast()
print

def getEntry(self):
return self.tree.GetEntriesFast()

但是调用函数 getEntry 时发生错误:

Error
Traceback (most recent call last):
File "/home/ja/PycharmProjects/studyChi2/python/NTupleHandlerTester.py", line 19, in testHandlerShouldReturnNoEvents
self.assertLess(handler.getEntry(),10)
File "/home/ja/PycharmProjects/studyChi2/python/NTupleHandler.py", line 23, in getEntry
return self.tree.GetEntriesFast()
AttributeError: 'PyROOT_NoneType' object has no attribute 'GetEntriesFast'

如何强制 python 记住 NtupleHandler.tree 的类型?

最佳答案

如果你想在Python环境中使用ROOT类,你最好使用rootpy而不是pyroot。在 rootpy 中,已经使用 PyTables 将包含树的 ROOT 文件转换为 HDF5 格式。看看 rootpy 中是否有你想要的内容。

关于python - pyroot Ntuple 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23598189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com