问题标签 [pyroot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
929 浏览

python - 使用 PyROOT 在同一画布中循环绘制多个直方图

我正在使用 PyROOT 尝试遍历文件夹中的文件,获取所有文件中存在的特定直方图(最小测试中的两个)并在同一个画布中绘制所有直方图。我仅使用两个直方图运行的最小示例如下。

我不明白为什么只保存第二个直方图。这是另一个最小的示例,我希望它是等效的并且可以正常工作(我在同一个画布上绘制了两个直方图)。

0 投票
1 回答
149 浏览

numpy - 尝试打开包含在 Pyroot 中的根树中的二维数组的问题

0 投票
1 回答
62 浏览

python - pyroot 和 random 随机数生成器的性能

我正在寻找优化一个简单的给定代码,该代码生成一个不在给定列表中的随机数([0,1,2])。随机数生成器是来自 ROOT 的 TRandom3。

这是非常基本的,只会生成新数字,直到达到允许的数字。

我自己优化的代码如下所示:

我只是从列表 [0,1,2] 中删除所有不允许的数字,然后使用 random.choice 选择一个元素。

在 Windows 10 上运行我的性能有所提高,在 linux 上运行相同的代码我的性能有所下降。

为什么会这样?

linux 上的 random 是否存在隐藏的性能损失,还是 pyroot 的性能提升?

0 投票
1 回答
57 浏览

uproot - 在 upROOT 中的 ROOT 功能?

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

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

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

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

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

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

0 投票
2 回答
376 浏览

python - virtualenv 中的 pyROOT

我想pyROOT在 a中使用virtualenv,我在我的系统上安装了 ROOT,当我在外面virtualenv可以做import ROOT并且它可以工作时,但是在里面virtualenv做 animport ROOT会给出以下错误:

如何在其中添加ROOT?

提前致谢。

0 投票
1 回答
145 浏览

python - 兰道随机数发生器

我正在尝试生成 1000 个具有 MPV(最可能值)为 25 的landau 分布的值,但在 scipy 或 numpy 中找不到landau 随机数生成器。我尝试了 pylandau { pip install pylandau} 但这似乎只适合landaus 而不会生成随机数。在 python 或 pyroot 中,任何这样做的方式都会受到欢迎。

0 投票
2 回答
104 浏览

python - 在python中将字典传递给具有可修改元素的进程

我正在尝试使用多处理库的 Process 模块对我的代码进行线程化以获得更好的性能。

代码的骨架是为他们工作的每个线程创建字典,在这一切完成之后,字典被汇总并保存到一个文件中。资源的创建方式如下:

然后在进程中,每个线程使用它自己的 histos[thread_number] 对象,在包含的 ROOT.TH1Fs 上工作。但是,我的问题是,如果我像这样使用 Process 启动线程:

那么线程确实可以访问它们的 histos[i] 对象,但不能写入它们。准确地说,当我在 TH1F 直方图上调用 Fill() 时,没有填充数据,因为它不能写入对象,因为它们不是共享变量。

所以在这里:https ://docs.python.org/3/library/multiprocessing.html 我发现我应该改用 multiprocessing.Array() 创建一个可以由线程读取和写入的数组,像这样:

但是,它不接受字典作为类型。它不起作用,它说 TypeError: unhashable type: 'dict'

那么解决这个问题的最佳方法是什么?我需要将存储在字典中的每个“各种键”的实例传递给每个线程,以便它们自己工作。他们必须能够编写这些接收到的资源。

感谢您的帮助,如果我忽略了一些琐碎的事情,我很抱歉,我之前做过线程代码,但还没有使用 python。

0 投票
1 回答
131 浏览

python - 在 PyROOT 中从 .root 文件中绘制数据

我开始使用 PyROOT,所以我正在研究以下示例:

https://root.cern.ch/doc/master/pyroot_2fillrandom_8py.html

在代码的最后,它将一些数据保存在 py-fillrandom.root 文件中。因此,我想绘制根文件中的数据,但由于文件内部有多个数据,我的方法失败了(我认为我离任何解决方案还很远,所以我没有发布我的代码)。我找不到任何可以帮助我完成这项任务的教程和示例。所以我会很感激任何帮助。

无论如何都可以查看 .root 文件中的内容?

我对所有这些都是新手,所以任何参考或提示对我来说都是非常有价值的。

0 投票
0 回答
108 浏览

merge - 使用 Hadd 合并文件

我正在尝试合并存储在一个目录中的三个 ntuples(只是一个示例,但还有更多),这些目录标记如下:

为此,我使用命令 hadd (hadd outputfile inputfiles..)

对于输出文件,我想将所有文件与文件名中的 mc16 和 SUSY 结合起来

但我收到错误:

它指出没有任何文件,mc16*SUSY*.root但这些文件确实存在。有什么解决办法吗?我在这里先向您的帮助表示感谢。

我使用“*”是因为有很多文件可以单独列出它们。

0 投票
0 回答
42 浏览

python - 无法在 PyROOT 中加载 GEANT4 库

我正在尝试编写一个 PyROOT 宏来打开一个 TTree 并从中读取数据,但是该树包含一些特定于我的协作框架的类。

我加载树并尝试读取这样的数据:

如果我不手动包含任何依赖项,它会给我错误:

所以我包括了TPVetoMCEvent定义的类,以及这个类所依赖的类(MCVRootIO),但最终我得到了错误:

我试过了 ROOT.gInterpreter.ProcessLine('#include "/cvmfs/geant4.cern.ch/geant4/10.3.ref01/x86_64-slc6-gcc49-opt/include/Geant4/globals.hh"')

但它仍然给我同样的错误。

完整代码为:

树的结构如下: 树形结构