And*_*rew 3 c++ python boost cython root-framework
我正在尝试使用python为TTree(ROOT对象)创建一个过滤器pyROOT.我从TTree获得了几个分支的信息,其中一些分支是C++类型的vector<int>,vector<float>或者vector<string>是.
为了将信息传递到新树,我需要从旧树访问它,我需要将向量等的地址传递给树,然后填充树.为此,我需要访问这样一个新向量的地址.这在C++中非常简单,但在查看Cython和boost之后,我无法解决这个问题.最终我想要像:
cppintvectorinpython = getcppintvector()
oldtree.setbranchaddress(branchname,cppintvectorinpython)
Run Code Online (Sandbox Code Playgroud)
这可能吗?
CINT为您导出了许多STL类std::vector.要创建例如std::vector<double>来自pyROOT do
import ROOT as r
vec = r.vector('double')()
Run Code Online (Sandbox Code Playgroud)
TTree由于pyROOT,设置分支地址然后非常透明,例如,您不需要使用指针
tree = r.gDirectory.Get('oldtree')
tree.SetBranchAddress("vec_branch_name", vec)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3720 次 |
| 最近记录: |