如果按照python的官方文档的方法,写个wraper来封装c/c++的代码做计算,费时费工还不一定能写对。而ROOT主要用来处理数据,对付日常的一些杂活显然功能有些单薄。不过ROOT有个python的扩展,把两个结合在了一起,于是一切都简单了。
首先是在编译ROOT的时候,打开ROOT的扩展选项: --enable-python
另外,还得在ROOT的默认环境变量的基础上,加个关于python的: export PYTHONPATH=$ROOTSYS/lib/root
系统的设置就这些了。
使用的时候,先写好c/c++的标准代码。然后在python里面这样调用
- import ROOT
- ROOT.gROOT.LoadMacro("your_code.c") #加载脚本
-
ROOT.gROOT.LoadMacro("your_code.c+") #编译,如果已生成so库,则加载
- ROOT.gROOT.LoadMacro("your_code.c++") #强制重新编译
- ROOT.gROOT.LoadMacro("your_code.c++O") #强制优化编译
- ROOT.gROOT.LoadMacro("your_code.c++g") #强制编译,并带有debug标记
-
ROOT.your_c_func() #执行
如此以来,python轻松获得了c的效率,并且还带了一个强大的ROOT库来做分析。另一方面,ROOT也获得了强悍的系统扩展,特别是还有scipy和numpy做数值计算。所谓工欲善其事,必先利其器。终于得到它了。
阅读(1185) | 评论(0) | 转发(0) |