问题标签 [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 回答
700 浏览

python - 将高斯拟合到根直方图

我正在尝试编写一个程序来将几个高斯拟合到根直方图,但不幸的是,我对 pyROOT 的经验不足。

我有一个 Ba133 发射光谱的直方图,并且想将高斯拟合到峰值,以便我知道所述峰值的 x 轴值,以便校准检测器。理想情况下,程序会迭代并自行找到峰值,但我可以自己指定它们。

Ba133光谱

目前我唯一的代码是:

如果有人可以告诉我如何使用 pyroot 将高斯拟合到这些峰值,最好是自动化的,将不胜感激。

谢谢

0 投票
1 回答
180 浏览

python - python不返回Noneobject,当它应该返回TDirectoryFile根对象时

所以我使用pyroot来做数据分析。分析代码链在数据上运行不同的插件并将它们输出到根文件,将每个插件的输出存储到根文件中它们自己的 TDirectoryFile 中。我写了一个函数,它接受根文件的名称和插件的名称,并且应该返回插件 TDirectoryFile。然而,它返回一个 NoneType,然后在我尝试对该对象执行任何操作时立即崩溃。

0 投票
1 回答
930 浏览

python-2.7 - pyROOT 中数据的三项高斯拟合

我尝试使用以下代码将三项高斯函数拟合到数据中:

我收到以下错误:

我该如何解决这个错误?它似乎在抱怨类对象“func”。这是数据

0 投票
0 回答
2305 浏览

python - Pycharm SSH远程解释器:编辑器无法识别模块

我目前正在尝试通过 SSH 让 PyC​​harm 与远程解释器一起运行。

连接本身运行良好,但是编辑器无法识别我导入的模块“ROOT”之一(“import ROOT”语句中的“No module named ROOT”)。

在任何 python 会话中导入“ROOT”之前(使用终端而不是 PyCharm),必须调用带有环境变量等的“thisroot.sh”文件。因此,它是在 .bash_profile/.bashrc 文件的帮助下在每次 ssh 登录时获取的。因此,如果在 SSH 终端中启动 python 之前没有获取 .sh 文件,则 python 无法找到该模块。

因此,我认为问题在于 PyCharm 在建立连接后不调用 .bashrc 文件(因此不获取“thisroot.sh”文件)。如果我直接在 PyCharm 中打开远程 Python 控制台,也找不到“ROOT”模块。

对于不太复杂的模块,可以手动将环境变量添加到 PyCharm 设置中。然而,对于我的模块来说,这并不可行。

有什么方法可以让 PyC​​harm 在编辑器中识别模块(并在远程 Python 控制台中找到它)?我已经尝试使用 PyCharm StartUp 脚本设置来获取“thisroot”文件,但它直到现在才起作用。

0 投票
1 回答
742 浏览

python - 使用 root_numpy (Python) 将新分支添加到 ROOT 文件中的 TTree

我想知道如何使用 Python 在 ROOT 文件中向我的 TTree 之一添加新分支。

在此示例中,TrainTree 和 TestTree 已存在于 ROOT 文件中。我只想为他们添加一个新的分支“权重”。我在这里遇到的问题是它会复制树,所以在我的文件中我有 2 个 TrainTree 和 2 个 TestTree。

我必须使用临时文件来解决此问题吗?还是有更好、更简单的方法来做到这一点?

谢谢你的帮助!

0 投票
1 回答
426 浏览

python - 使用 pyROOT 访问朋友 TTree

我有一个 pyROOT 脚本,我在其中使用 TChain::AddFriend 组合两个 TTree:

当我运行它时,我得到:

最后一行注释掉它运行良好。所以看来我没有正确访问朋友树(muon_gen)的叶子。我如何访问它们?

我还尝试使用以下方法组合 TTree:

但这会产生相同的错误。

0 投票
1 回答
692 浏览

python - pyROOT 中的大量内存使用

我的 pyROOT 分析代码正在使用大量内存。我已将问题简化为以下示例代码:

其中 someFile.root 是一个根文件,有 700,000 个条目,每个条目有多个候选粒子。

当我运行这个脚本时,它使用了大约 600 MB 的内存。如果我删除线

它使用约 400 MB。

如果我也删除该行

它使用约 150 MB。

如果我也删除这些行

内存使用量没有进一步减少。

似乎对于我填写表格的每个额外直方图

(即每个条目每个候选人填充一次的直方图,而不是每个条目只填充一次的直方图)我使用了额外的~200 MB 内存。当我有 10 个或更多直方图时,这将成为一个严重的问题,因为我使用的是 GB 的内存并且超出了我的计算系统的限制。有人有解决方案吗?

更新:我认为这是一个 python3 问题。

如果我在原始帖子(上图)中使用脚本并使用 python2 运行它,则内存使用量约为 200 MB,而使用 python3 则约为 600 MB。即使我尝试通过使用长变量名来复制问题 2,该作业仍然只使用 python2 的 ~200 MB 内存,而 python3 使用 ~1.3 GB 的内存。

在我的谷歌搜索过程中,我遇到了一些其他人在将 pyROOT 与 python3 一起使用时遇到内存泄漏的情况。从 Python 3.6.2 和 ROOT 6.08/06 开始,这似乎仍然是一个问题,目前如果你想使用 pyROOT,你必须使用 python2。

因此,目前使用 python2 似乎是我的“解决方案”,但这并不理想。如果有人有任何进一步的信息或建议,我将不胜感激!

0 投票
1 回答
745 浏览

python - rootpy 安装问题:是否在启用 PyROOT 的情况下安装了 ROOT?

我有一个大问题要安装rootpy。当我尝试这个命令时:

我有这个错误信息:

ROOT 无法导入。是否在启用 PyROOT 的情况下安装了 ROOT?命令“python setup.py egg_info”在 /tmp/pip-build-OIZeCG/rootpy/ 中失败,错误代码为 1

我已经有 ROOT 版本 5.34/30、python 2.7 和 python 3.5。

我确认在给出的列表中有 python:

0 投票
2 回答
148 浏览

python - pyLCIO setMomentum:python 中的错误 const float*

语境:

我正在实现一个名为 LCIO 的粒子物理库,它是 C++ 代码,但是有一个名为 pyLCIO 的 python 包装器。

当尝试运行一个名为setMomentum()C++ 的函数时,实现如下所示:

简单的浮点数组。

好的python,让我们试试这个:

问题:

现在这引发了一个错误。这是回溯:

现在这个函数要求一个#1 常量,#2 是对数组头部的引用。我应该如何用 python 做到这一点?

有没有使用 python 包装的 C++ 代码经验的人,知道如何const float*在 python 中创建一个?

感谢您的任何帮助。

编辑 180314

我试过了:

无济于事;同样的错误。

0 投票
1 回答
3442 浏览

pyroot - 使用 PyROOT 读取 TTree 分支

我喜欢使用 PyROOT 阅读 TTree 中分支的内容。我在这里寻找解决我的问题的可能方法:Reading a TTree in root using PyRoot。但是,答案对我没有帮助,因为 PyROOT 可能不知道分支的结构。请查看底部的输出片段,并提出解决方案。

谢谢,萨迪亚