在PyR中声明TTree分支

2024-09-29 01:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python简单地定义一个根TTree并给它一个TBranch。听起来很合理,对吧?我试过了:

from ROOT import *
myvar = int()
mytree = TTree('mytree', 'mytree')
tree.Branch('myvar', AddressOf(myvar), 'myvar/I')
exit(0)

这个错误导致崩溃:

^{pr2}$

我怀疑AddressOf()的参数可能需要像Int\u这样的根类型,但我不认为python数据类型需要显式化——而且我也不知道如何强制Int的数据类型为Int,事情不会崩溃。如有任何建议,我们将不胜感激。在


Tags: fromimportbranchtree定义exitrootint
2条回答

可能确实需要不同的数据类型,整数应该是正确的。看看带有pyroothere的根Cern人员示例。在

您需要为“myvar”使用不同的数据类型。这是因为数据在root内部使用的方式。在

from ROOT import *
from array import array
myvar = array( 'i', [ 0 ] )
mytree = TTree('mytree', 'mytree')
mytree.Branch('myvar', myvar, 'myvar/I')
exit(0)

这应该是有效的,它可以从您的示例中消除崩溃 有关详细信息,请参见本网页: http://wlav.web.cern.ch/wlav/pyroot/tpytree.html

相关问题 更多 >