use*_*163 4 python root-framework pyroot
我试图简单地使用 python 定义一个 Root TTree 并给它一个 TBranch。听起来很合理,对吧?我试过:
from ROOT import *
myvar = int()
mytree = TTree('mytree', 'mytree')
tree.Branch('myvar', AddressOf(myvar), 'myvar/I')
exit(0)
Run Code Online (Sandbox Code Playgroud)
这会因错误而崩溃:
ValueError: invalid argument for AddressOf().
Run Code Online (Sandbox Code Playgroud)
我怀疑 AddressOf() 的参数可能需要像 Int_t 这样的 Root 类型,但我不认为 python 数据类型需要明确——而且我无法弄清楚如何强制int 为 Int_t。最后,如果你做同样的事情,除了用 'TString' 替换 'int' 和用 '/S' 替换 '/I' ,事情不会崩溃。任何建议表示赞赏。
小智 5
您需要为“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)
Run Code Online (Sandbox Code Playgroud)
这应该可以工作,并且可以消除您的示例中的崩溃,请参阅此网页以获取更多信息:http : //wlav.web.cern.ch/wlav/pyroot/tpytree.html
| 归档时间: |
|
| 查看次数: |
4340 次 |
| 最近记录: |