许可证

参阅许可条款。


发行说明


流式读出需要 GEMC 0.5 的 SRO 接口,以及针对同一套 GEMC 安装 重新构建的实验插件。FT-Cal 的 JLAB 编码器 属于 clas12-systems;仅安装 pygemc 并不会提供原生 SRO 实现。

顶点与角度示例 包含 11 个运行控制卡和预先生成的 Analyzer 图表。请使用 GEMC 0.5 或更高版本;GUI 图表需要 Qt Charts。这些示例的批处理模拟和 CSV 检查在没有 Qt Charts 时同样可用。

目录



安装 Python API


pygemc 可从 PyPI 获取。 直接使用 pip 安装时请使用虚拟环境:

python3 -m venv ~/venv/pygemc
source ~/venv/pygemc/bin/activate
python -m pip install pygemc

PyVista VTK 导出所用的可选 Jupyter 模块可通过以下命令安装:

python -m pip install "pygemc[jupyter]"

可选的 ROOT 文件分析依赖可通过以下命令安装:

python -m pip install "pygemc[root]"

从 PyPI 安装的包不包含 gemc 可执行文件,但可用于 创建和可视化几何模型或分析结果。


下载预编译的二进制发行版

二进制 tar 压缩包包含 gemc 可执行文件和示例(但不含 pygemc)。Linux 构建提供 amd64 和 arm64 版本;macOS 构建为 Apple Silicon(arm64)原生版本。

请务必查看二进制安装的软件先决条件, 然后再解压 tar 压缩包。

首先选择一个安装目录:

gemc_home=/path/to/gemc
mkdir -p "$gemc_home"
cd "$gemc_home"

然后,使用与你的 Linux 发行版和 CPU 架构相匹配的选项卡中的命令。 这将安装 GEMC 和 Geant4 data 文件。

archive=gemc-dev-geant4-11.4.3-fedora-44-amd64.tar.gz
curl -L -o "$archive" "https://github.com/gemc/src/releases/download/dev/$archive"
tar -xzf "$archive" -C "$gemc_home" --strip-components=1
./install_geant4_data.sh


安装完成后,加载 GEMC 环境文件。如果希望在每个 shell 中都可用,请将此行添加到 .bashrc 或 .zshrc:

source /path/to/gemc/gemc.env

运行以下几项检查以验证安装:

gemc -v
test_gdynamic_plugin_load
test_gdata_event_verbose


从源码构建

构建 GEMC 需要 Geant4。请查看附录中的 GEMC 构建的软件先决条件与 Geant4 安装 以了解完整的要求列表。


1. 获取源码

下载代码:

下载最新发行版:

git clone -c advice.detachedHead=false --branch 0.5 https://github.com/gemc/src
cd src


2. 配置构建并安装 GEMC

GEMC 使用 Meson 构建系统进行编译和安装。

配置阶段会检查所需依赖并获取外部库。 这里我们使用 build 目录。

meson setup build --prefix=/path/to/install/gemc

安装阶段会构建并安装 GEMC。这里我们使用 -q 以进行静默构建。

meson install -C build -q

安装完成后,可运行 meson test -C build 来测试已配置的 GEMC 构建。


构建选项


安装后

将以下行添加到你的 shell 配置文件中(例如 ~/.bashrc 或 ~/.zshrc):

export PATH=/path/to/install/gemc/bin:/path/to/install/gemc/python_env/bin:$PATH

第二个 PATH 条目将随附的 Python 虚拟环境加入搜索路径,使 python3 指向该虚拟环境的解释器,从而让你可以在脚本中使用 import pygemc。

使用以下命令检查已安装的模拟器和 Python 工具:

gemc -v
gemc-system-template --help
gemc-analyzer --help


从源码构建 CLAS12 探测器系统

CLAS12 探测器系统 (clas12-systems)0.3 使用相同的 Meson 流程构建,且不再 需要预先安装 GEMC。在仅具备 Geant4 的环境中,例如 g4install Docker 镜像,构建流程会从 gemc 子项目自动编译 GEMC,并将其安装到相同的安装前缀下,因此探测器几何和插件可以完全从零开始 安装。只有 Geant4 必须预先安装(构建流程不会编译它);查找 GEMC 时,依次优先使用 显式指定的 -Duse-gemc-location=<dir>、通过 PATH/pkg-config 找到的已安装 GEMC,最后才是 从源码构建的子项目。

git clone --depth=1 --branch 0.3 https://github.com/gemc/clas12-systems
cd clas12-systems
meson setup build --prefix="$PWD/install"   # builds GEMC too if none is installed
meson compile -C build
meson install -C build



在 Docker 容器中运行

你可以使用 Docker 运行 GEMC。可用的镜像列在下方。 arm64 和 amd64 均受支持(Arch Linux 镜像除外,它们只支持 amd64 1)。

操作系统 GEMC 版本 镜像仓库地址 arm64 amd64
AlmaLinux 10 dev ghcr.io/gemc/src:dev-almalinux-10 true true
ArchLinux latest dev ghcr.io/gemc/src:dev-archlinux-latest false true
Debian 13 dev ghcr.io/gemc/src:dev-debian-13 true true
Fedora 44 dev ghcr.io/gemc/src:dev-fedora-44 true true
Ubuntu 24.04 dev ghcr.io/gemc/src:dev-ubuntu-24.04 true true
Ubuntu 26.04 dev ghcr.io/gemc/src:dev-ubuntu-26.04 true true

上述地址指向 Docker Hub 镜像,这些镜像通过 Docker 开源项目赞助计划发布,该计划允许 无限次匿名拉取。这些镜像由作为权威来源的 GitHub Container Registry 构建结果同步而来:两个镜像仓库的 内容和标签完全相同。若要改为从 GHCR 拉取,请将 docker.io/gemc/gemc: 前缀替换为 ghcr.io/gemc/src: 并保持相同标签,例如 ghcr.io/gemc/src:dev-ubuntu-24.04。

建议绑定一个本地目录以保存你的工作。 作为示例,下面的命令将容器路径 /mywork 绑定到 ~/mywork,并使用镜像 ghcr.io/gemc/src:dev-almalinux-10。

archlinux amd64 镜像。


批处理模式

docker run -it --rm -v ~/mywork:/mywork ghcr.io/gemc/src:dev-almalinux-10 bash


浏览器图形界面

为交互式会话设置以下便捷变量。请自行选择一个密码:

VPORTS=(-p 6080:6080 -p 5900:5900)
VNC_PASS=(-e X11VNC_PASSWORD=change-me)
VNC_BIND=(-e VNC_BIND=0.0.0.0)
GEO_FLAGS=(-e GEOMETRY=1920x1200)
docker run -it --rm -v ~/mywork:/mywork $VPORTS $VNC_BIND $VNC_PASS $GEO_FLAGS ghcr.io/gemc/src:dev-almalinux-10

然后在浏览器中打开 http://localhost:6080/vnc.html 即可访问 图形界面。


使用 Apptainer 运行

Linux 主机可以使用 apptainer(原名 singularity)来运行 Docker 容器。 你可以将它与上述 Docker 镜像配合使用。它的运行方式与 Docker 类似,但需要显式加载 入口点脚本。

apptainer exec --cleanenv --bind ~/mywork:/mywork docker://ghcr.io/gemc/src:dev-almalinux-10 bash

然后:

source /usr/local/bin/docker-entrypoint.sh
gemc -v


Warning

通过远程主机连接时,图形界面,尤其是 OpenGL 窗口,可能无法在 Apptainer 中 正常工作。


注意

Apptainer 使用默认缓存目录来存储镜像。如果该目录占满了磁盘空间,请将缓存目录和 临时目录设置到有足够磁盘空间的位置。 例如,将 sim_cache 设置到有足够空间的位置:

	export sif_cache=/path/to/$USER/cache

然后设置这些变量:

	export APPTAINER_CACHEDIR=$sif_cache/apptainer-cache
	export APPTAINER_TMPDIR=$sif_cache/apptainer-tmp
	export TMPDIR=$sif_cache/apptainer-tmp

并再次运行 apptainer。




附录


二进制安装的软件先决条件


通过二进制 tar 压缩包安装时,只需要 gemc 可执行文件所需的运行时软件包,以及用于 下载和解压压缩包的工具。此列表特意不包含 ROOT。


dnf install -y --allowerasing ca-certificates curl gzip tar expat sqlite-libs zlib \
libX11 libXext libXmu libXt mesa-libEGL mesa-libGL qt6-qtbase qt6-qtsvg qt6-qtcharts tbb


GEMC 构建的软件先决条件与 Geant4 安装




在 MacOS 和一些常用 Linux 发行版上安装基础软件包和依赖的单行命令:


dnf install -y --allowerasing git make cmake gcc-c++ gdb valgrind libxcrypt-devel \
expat-devel zlib zlib-devel mariadb-devel sqlite-devel python3-devel ninja-build \
mesa-libGL-devel mesa-libGLU-devel libX11-devel libXpm-devel libXft-devel \
libXt-devel libXmu-devel libXrender-devel xorg-x11-server-Xvfb xrandr \
bzip2 wget curl nano bash zsh hostname gedit environment-modules pv which \
psmisc procps mailcap net-tools rsync patch bash-completion python3-numpy \
xterm x11vnc openbox lxqt-panel dejavu-sans-mono-fonts \
qt6-qtbase-devel qt6-qtsvg qt6-qtsvg-devel qt6-qtcharts-devel \
root liblsan libasan libubsan libtsan tbb



Important

GEMC 可以使用任何自定义安装的 CLHEP/Xerces-C/Geant4,不过 我们建议使用 g4install 仓库来安装 Geant4, 因为它支持多个 Geant4 版本共存并提供安装脚本。


受支持且经过测试的平台




  1. 对于 Apple Silicon Mac,如果想使用以下镜像,请在 docker run 命令中添加 --platform linux/amd64 选项: ↩