gpt4 book ai didi

python - 在 PyRoot 中声明一个 TTree 分支

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

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

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

这会因错误而崩溃:

ValueError: invalid argument for AddressOf().

我怀疑 AddressOf() 的参数可能需要像 Int_t 这样的 Root 类型,但我不认为 python 数据类型需要明确——而且我不知道如何强制int 的数据类型为 Int_t。最后,如果您执行完全相同的操作,只是将“int”替换为“TString”并将“/I”替换为“/S”,则不会崩溃。任何建议表示赞赏。

最佳答案

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

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

关于python - 在 PyRoot 中声明一个 TTree 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22625726/

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