我目前正在尝试从rootpy访问数学函数(如DeltaR ),但我不确定这是如何实现的。我在文档或任何例子中都没有看到任何东西。C++的等价物应该类似于:
double dR = ROOT::Math::VectorUtil::DeltaR((jets)[i],(partons)[i]);
但是我找不到一个根或者甚至是根的等价物。如果我试着用
import ROOT as r
r.Math.VectorUtil.DeltaR(jets[i],partons[i])我知道错误:
AttributeError: type object 'ROOT::Math' has no attribute 'VectorUtil'
当它非常清楚的时候,除非我不能正确理解“属性”是什么意思。无论如何,我不想在这里问pyroot问题:)我只是把这归结为pyroot处理这些事情的方式上的一个怪癖,这就是为什么我认为我应该尝试一下rootpy。不过,我不确定这是否可能。
干杯,约瑟夫
发布于 2014-04-17 12:50:09
来自ROOT::Math::VectorUtil的函数都在libGenVector中,它既不自动加载CINT,也不加载PyROOT。手动加载它(就像您在root_logon.C中所做的那样)使函数可用。
import ROOT as r
r.gSystem.Load('libGenVector')
# ...
r.Math.VectorUtil.DeltaR(jets[i],partons[i])发布于 2014-10-13 17:40:46
如果喷气式飞机和部件是TLorentzVectors,那么您应该能够:
from ROOT import *
dR = jet.DeltaR(parton)https://stackoverflow.com/questions/23133375
复制相似问题