Chromo:一个高性能的Python接口,用于连接强子事件生成器,以支持对对撞机和宇宙射线模拟的研究

《Computer Physics Communications》:Chromo: A high-performance python interface to hadronic event generators for collider and cosmic-ray simulations

【字体: 时间:2026年01月30日 来源:Computer Physics Communications 3.4

编辑推荐:

  粒子物理模拟中,Chromo通过Python接口统一多个事件生成器(EPOS、DPMJet、Sibyll等),提供零开销抽象层,兼容Jupyter、命令行和脚本,支持高效事件处理与多格式输出,性能与CRMC相当,适用于对撞机和天体物理应用。

  
作者:Anatoli Fedynitch, Hans Dembinski, Anton Prosekin
单位:台湾台北市中央研究院物理研究所,邮编115201

摘要

在对撞机物理和天体粒子物理学中,对强子和核相互作用的模拟至关重要。Chromo软件包提供了一个统一的Python接口,可以访问多种广泛使用的强子事件生成器,包括EPOS、DPMJet、Sibyll、QGSJet和Pythia。该软件包基于这些生成器原有的Fortran和C++实现,提供了一个开销为零的抽象层,适用于Python脚本、Jupyter笔记本或命令行使用,同时保持了直接调用生成器的性能。用户可以通过PyPI预编译的二进制包轻松安装Chromo,并且它能很好地与Scientific Python生态系统集成。Chromo支持将事件导出为HepMC、ROOT和SVG格式,并提供了统一的接口来检查、过滤和修改粒子碰撞事件。本文描述了Chromo的架构、典型用例和性能特点,以及它在现代天体粒子模拟中的作用,例如在MCEq级联求解器中的应用。

项目概述

项目名称: Chromo
项目文件链接: https://doi.org/10.17632/wdf9bvwhns.1
开发者仓库链接: https://github.com/impy-project/chromo
许可协议: BSD 3条款
编程语言: Python、Fortran、C++
项目目的:目前,模拟强子和核相互作用需要用户学习多种生成器的API(Fortran或C++),处理不同的构建系统,并编写代码来转换事件格式。这种复杂性阻碍了Python中的快速原型设计,使得批量脚本编写变得繁琐,也妨碍了与更广泛的Scientific Python生态系统(如NumPy、SciPy、Matplotlib等)的无缝集成。Chromo提供了一个统一的、开销为零的接口,以简化生成器的访问,确保事件输入/输出的一致性,并减少对撞机和天体粒子物理应用中的样板代码。

介绍

强子、光强子和核相互作用的模拟是高能物理学中许多问题的核心。在对撞机实验中,事件生成器用于模拟涉及核靶的目标事件和软相互作用。在宇宙射线和 neutrino 物理学中,这些相互作用决定了空气簇射的发展和大气中的轻子通量。为了在广泛的能量和相空间范围内进行准确建模,尤其是在前向区域,通常需要结合使用多种事件生成器并通过模型间的比较来估计不确定性。
尽管经过数十年的发展,大多数通用事件生成器(如Pythia、DPMJet、QGSJet、EPOS、Sibyll等)在接口设计、配置机制和输出格式方面仍然存在碎片化问题。这种异质性阻碍了互操作性和高效模型比较。现有的封装工具(如CRMC)虽然简化了一些方面,但范围有限,缺乏现代接口,且需要大量的设置工作。
为了解决这些问题,我们推出了开源软件包Chromo,它是一个用Python实现的宇宙射线和强子相互作用蒙特卡洛前端工具。Chromo的目标是通过提供统一的、用户友好的接口来减少使用这些工具的复杂性:(1)通过二进制包消除平台特定的编译需求;(2)支持基于Python的交互式和脚本化使用;(3)在提供灵活的事件操作、过滤和导出功能的同时保持高性能。

代码片段

概述

Chromo作为一个轻量级的前端,用于管理一系列用Fortran 77、Fortran 90或C++编写的强子相互作用模型。这些模型包括传统的Sibyll-2.1模型、广泛使用的对撞机专用工具Pythia 8,以及多用途模型EPOS-LHC和DPMJet。每个模型都被打包成使用f2py或pybind11编译的Python扩展模块,具有标准化的初始化、运动学配置、事件生成和输出逻辑。

示例用法

本节展示了如何使用Chromo来模拟事件、分析粒子属性以及导出数据,所有这些都在现代的Python工作流程中完成。该设计注重易于使用,既适合快速交互式探索,也适合大规模数据生成。

软件架构

Chromo围绕三个主要抽象层构建:EventKinematics、MCRun和MCEvent。其架构如图4所示。

性能

我们通过使用多种强子相互作用模型(SIBYLL-2.3d、DPMJET-III-19.1、QGSJet-III和EPOS-LHCR,包括有无强子再散射的情况)在广泛的质心能量范围内生成质子-质子事件,对Chromo和CRMC进行了性能测试。在所有能量和模型下,Chromo的事件生成率都与CRMC相当或更高(见图5)。需要注意的是,CRMC是在优化级别较高的情况下编译的,以匹配Chromo的默认设置。

验证与测试

Chromo通过包含近2000个单元测试的广泛测试套件进行验证。这些测试通过GitHub Actions在所有支持的平台上(包括Linux、macOS和Windows)以及所有从Python 3.9开始的版本上执行。由于事件生成器涉及随机数生成和浮点运算,不同架构或平台之间无法期望得到完全相同的结果。为此,Chromo采用了概率方法来处理这些差异。

结论与展望

我们推出了Chromo,这是一个统一的Python接口,可以访问包括EPOS、DPMJet、Sibyll、QGSJet和Pythia在内的多种强子相互作用事件生成器。通过精心设计的零拷贝绑定、高效的通用模块访问以及与Scientific Python生态系统的集成,Chromo的性能可与现有的封装工具(如CRMC)相媲美甚至更高,同时提供了高级别的用户友好API。我们展示了多种使用案例。

关于创作过程中使用生成式AI和AI辅助技术的声明

在准备这项工作时,作者使用了ChatGPT来提高语言表达和可读性。使用该工具/服务后,作者根据需要对内容进行了审查和编辑,并对出版物的内容负全责。

作者贡献声明

Anatoli Fedynitch:概念构思、方法论、软件开发、资金获取、项目管理、资源协调、监督、初稿撰写及修订。
Hans Dembinski:概念构思、方法论、软件开发、验证、形式分析、修订。
Anton Prosekin:软件开发、验证、可视化、形式分析、修订。

利益冲突声明

作者声明没有已知的财务利益冲突或个人关系可能影响本文所述的工作。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号