【问题标题】:Python, ROOT, and MINUIT integration? [closed]Python、ROOT 和 MINIT 集成? [关闭]
【发布时间】:2010-10-06 11:49:26
【问题描述】:

我是高能粒子物理系的一名普通研究生。由于对 C/C++ 毫无根据的厌恶和对 python 的热爱,到目前为止,我已经求助于 python 进行数据分析(只是简单的东西),并且即将尝试支持针对 ROOT 库的 python 脚本,特别是使用 MINUIT 进行一些参数最小化。

除了询问是否有人对这些安装和使用有任何提示之外,我想知道是否值得尝试一下,或者只是进入使用 C/C++ 的“规范”,或者诸如此类的事情pyminuit 是可用的。或者你认为我可以将整个 C/C++ 脚本包装成 python 代码,以利用我现有的自写分析方法(我还没有包装经验)。抱歉含糊不清;我正走向一个远远超过我目前经历的未知数。

【问题讨论】:

    标签: python word-wrap data-analysis root-framework


    【解决方案1】:

    你知道pyROOT,对吧?

    我自己从未尝试过,所以我不知道它会如何满足您的需求。

    【讨论】:

    • 花了将近一年的时间,但我终于让 pyROOT 工作并发现它是最好的解决方案。
    【解决方案2】:

    rootpy 可能值得一试。也许还没有完全成熟,但这是朝着正确方向迈出的一步。

    是的,rootpy 是在 PyROOT 之上构建的,但还有一些附加功能:

    • 它强调了一个pythonic界面,隐藏了ROOT的一些丑陋之处;
    • matlibplot集成,拥有更大的开发社区,在SO上的影响力更大,更不用说更好看的情节了;
    • 它允许转换为HDF5 文件,这将允许您与无法花时间安装整体ROOT 包的人共享数据。

    不幸的是,只要您使用的是基于 CINT(即 PyROOT)构建的东西,您仍然需要处理 ugliest parts of ROOT 之一。


    如果您厌倦了使用 PyROOT,另一种选择是使用 packages that converts ROOT directly to HDF5 之一

    【讨论】:

    • 谢谢@Shep。由于我更新了 ROOT 和 Python(现在使用 virtualenv),我已经破坏了 PyROOT。当我修复它时,rootpy 将首先出现在我要测试的内容列表中。
    • @vgm64 不幸的是,这里的答案都依赖于首先让 ROOT 工作(我们都喜欢 30 分钟的编译时间)。我对 rootpy 的主要兴趣在于它简化了从完全 ROOT 依赖远离到更模块化和更少臃肿的过渡。
    • @physicsmichael,我最近还发现了ttree2hdf5,它可以让你直接转换成python友好的格式而不使用PyROOT(不幸的是仍然需要ROOT)
    【解决方案3】:

    不久前我写了一个 minuit 包装器(在我的 1 次体验示例中,ROOT 的 minuit 似乎比 pyminuit 更健壮,我更喜欢 ROOT Minuit 输出)

    https://github.com/piti118/RTMinuit

    具有 numpy 根文件读取能力

    https://github.com/piti118/root_numpy

    基于 RTMinuit 和 numpy 并没有那么完善的拟合库和玩具生成等

    https://github.com/piti118/dist_fit

    教程和帮助都在包中给出

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 2018-08-15
      • 2021-11-03
      • 1970-01-01
      相关资源
      最近更新 更多