首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyroot Ntuple处理程序

pyroot Ntuple处理程序
EN

Stack Overflow用户
提问于 2014-05-11 21:34:32
回答 1查看 559关注 0票数 1

我想创建类来处理TTree:

代码语言:javascript
复制
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 i发生了错误:

代码语言:javascript
复制
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的类型?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-17 13:19:16

如果您想在Python环境中使用根类,最好使用rootpy而不是pyroot。在rootpy中,包含树的根文件到HDF5格式的PyTables转换已经完成。看看你想要的是不是根。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23598189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档