问题标签 [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.
python - python不返回Noneobject,当它应该返回TDirectoryFile根对象时
所以我使用pyroot来做数据分析。分析代码链在数据上运行不同的插件并将它们输出到根文件,将每个插件的输出存储到根文件中它们自己的 TDirectoryFile 中。我写了一个函数,它接受根文件的名称和插件的名称,并且应该返回插件 TDirectoryFile。然而,它返回一个 NoneType,然后在我尝试对该对象执行任何操作时立即崩溃。
python-2.7 - pyROOT 中数据的三项高斯拟合
我尝试使用以下代码将三项高斯函数拟合到数据中:
我收到以下错误:
我该如何解决这个错误?它似乎在抱怨类对象“func”。这是数据
python - Pycharm SSH远程解释器:编辑器无法识别模块
我目前正在尝试通过 SSH 让 PyCharm 与远程解释器一起运行。
连接本身运行良好,但是编辑器无法识别我导入的模块“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 设置中。然而,对于我的模块来说,这并不可行。
有什么方法可以让 PyCharm 在编辑器中识别模块(并在远程 Python 控制台中找到它)?我已经尝试使用 PyCharm StartUp 脚本设置来获取“thisroot”文件,但它直到现在才起作用。
python - 使用 root_numpy (Python) 将新分支添加到 ROOT 文件中的 TTree
我想知道如何使用 Python 在 ROOT 文件中向我的 TTree 之一添加新分支。
在此示例中,TrainTree 和 TestTree 已存在于 ROOT 文件中。我只想为他们添加一个新的分支“权重”。我在这里遇到的问题是它会复制树,所以在我的文件中我有 2 个 TrainTree 和 2 个 TestTree。
我必须使用临时文件来解决此问题吗?还是有更好、更简单的方法来做到这一点?
谢谢你的帮助!
python - 使用 pyROOT 访问朋友 TTree
我有一个 pyROOT 脚本,我在其中使用 TChain::AddFriend 组合两个 TTree:
当我运行它时,我得到:
最后一行注释掉它运行良好。所以看来我没有正确访问朋友树(muon_gen)的叶子。我如何访问它们?
我还尝试使用以下方法组合 TTree:
但这会产生相同的错误。
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 似乎是我的“解决方案”,但这并不理想。如果有人有任何进一步的信息或建议,我将不胜感激!
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:
python - pyLCIO setMomentum:python 中的错误 const float*
语境:
我正在实现一个名为 LCIO 的粒子物理库,它是 C++ 代码,但是有一个名为 pyLCIO 的 python 包装器。
当尝试运行一个名为setMomentum()
C++ 的函数时,实现如下所示:
简单的浮点数组。
好的python,让我们试试这个:
问题:
现在这引发了一个错误。这是回溯:
现在这个函数要求一个#1 常量,#2 是对数组头部的引用。我应该如何用 python 做到这一点?
有没有使用 python 包装的 C++ 代码经验的人,知道如何const float*
在 python 中创建一个?
感谢您的任何帮助。
编辑 180314
我试过了:
无济于事;同样的错误。
pyroot - 使用 PyROOT 读取 TTree 分支
我喜欢使用 PyROOT 阅读 TTree 中分支的内容。我在这里寻找解决我的问题的可能方法:Reading a TTree in root using PyRoot。但是,答案对我没有帮助,因为 PyROOT 可能不知道分支的结构。请查看底部的输出片段,并提出解决方案。
谢谢,萨迪亚