首页 > 解决方案 > 在 upROOT 中的 ROOT 功能?

问题描述

我正在尝试使用 upROOT 在 Python 中严格运行分析,但我发现(不出所料)我必须构建很多已经在 ROOT 中的工具。我不介意这样做,但我想确保我不会把事情搞砸。

例如,我有以下质量平方:

m_squared = np.divide(np.multiply(p_squared, g_squared), b_squared)

其中“p_squared”是全局动量大小(平方),“g_squared”是反伽马平方,“b_squared”是贝塔平方。

对于phi,我还有以下内容:

add_pi = np.hstack(np.where((oX < 0.0) & (oY > 0.0)))
subtract_pi = np.hstack(np.where((oX < 0.0) & (oY < 0.0)))
Phi = np.arctan(np.divide(oY, oX))
Phi[add_pi] = Phi[add_pi] + np.pi
Phi[subtract_pi] = Phi[subtract_pi] - np.pi

其中“oX”和“oY”分别是轨道的 x 和 y 原点坐标。

upROOT 中是否有内置功能来执行此操作?或者这只是一个 PyROOT 的东西?

标签: uprootpyroot

解决方案


upROOT 中有一个名为“vector”的模块可以用于这些目的;它是 uproot4 中的新功能(使用尴尬 1.0 运行)。任何有兴趣的人都可以在这里查看。我将其标记为已解决,因为这正是我正在寻找的,但应该注意“矢量”目前正在开发中,因此尚未完成。

谢谢!


推荐阅读