我试图简单地使用 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' ,事情不会崩溃。任何建议表示赞赏。