ライセンス

ライセンス条件を参照してください。


リリースノート


ストリーミングリードアウトには、GEMC 0.5 の SRO インターフェイスと、 同じ GEMC インストール環境に対して再ビルドされた実験用プラグインが必要です。FT-Cal の JLAB エンコーダは clas12-systems に属しており、pygemc だけをインストールしてもネイティブの SRO 実装は提供されません。

頂点・角度の例 には、11 個のステアリングカードと準備済みの Analyzer プロットが含まれています。GEMC 0.5 以降を使用してください。 GUI プロットには Qt Charts が必要です。これらのバッチシミュレーションと CSV チェックは Qt Charts なしでも動作します。

次のリリースで導入予定: Qt Linguist ツールがビルド時に GUI の翻訳カタログをコンパイルし、Qt の翻訳データが 標準ダイアログをローカライズします。以下のパッケージコマンドには両方が含まれています。Homebrew の Qt は これらのツールとカタログを提供します。GUI の言語は自動検出され、必要に応じて -language=<code> で指定できます。

目次



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 実行ファイルはインストールされませんが、 ジオメトリの作成・可視化や結果の解析は可能です。


コンパイル済みバイナリ配布物をダウンロードする

バイナリの tarball には gemc 実行ファイルと例が含まれます(pygemc は含まれません)。Linux ビルドは amd64 と arm64 向けに提供され、macOS ビルドは Apple Silicon(arm64)ネイティブです。

tarball を展開する前に、必ずバイナリインストールのためのソフトウェア要件 を確認してください。

まず、インストール先ディレクトリを選択します:

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 環境ファイルを source コマンドで読み込みます。すべてのシェルで利用できるようにするには、 この行を .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 ビルドシステムを使用します。

setup フェーズでは、必要な依存関係を確認し、外部ライブラリを取得します。 ここでは build ディレクトリを使用します。

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

install フェーズでは、GEMC をビルドしてインストールします。ここでは、ビルド時の出力を抑えるために -q を使用します。

meson install -C build -q

必要に応じて、インストール後に meson test -C build を実行して、構成済みの GEMC ビルドをテストできます。


ビルドオプション


インストール後の作業

次の行をシェル設定ファイル(例: ~/.bashrc または ~/.zshrc)に追加します:

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

2 番目の 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

次のリリースで導入予定: インストール済みの GEMC を使用してビルドする場合、CLAS12 のビルド時に pygemc とそのコマンドラインツールも python_env 配下にインストールまたは更新され、 GEMC を単独でインストールした場合と同じディレクトリ構成になります。



Docker コンテナで実行する

Docker を使って GEMC を実行できます。利用可能なイメージを以下に示します。 arm64 と amd64 の両方がサポートされています(amd64 のみの Arch Linux イメージを除く 1)。

OS 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-Sponsored Open Source プログラムで公開されており、 匿名で無制限にプルできます。正規の GitHub Container Registry ビルドのミラーであるため、 2 つのレジストリの内容とタグは同一です。代わりに 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 を使用します。

--platform linux/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 と同様に実行できますが、エントリポイントを明示的に source コマンドで読み込む必要があります。

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

リモートホスト経由で接続する場合、Apptainer ではグラフィカルインターフェイス、特に OpenGL ウィンドウが 正しく動作しないことがあります。


注記

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 を再度実行します。




付録


バイナリインストールのためのソフトウェア要件


バイナリ tarball のインストールには、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 qt6-qttranslations tbb


GEMC ビルドのためのソフトウェア要件と Geant4 のインストール




macOS および一部の主要な Linux ディストリビューションで、基本パッケージと依存パッケージをインストールするための 1 行コマンド:


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 \
qt6-qttools-devel qt6-qttranslations \
root liblsan libasan libubsan libtsan tbb



Important

GEMC は CLHEP/Xerces-C/Geant4 の任意のカスタムインストールを使用できますが、 Geant4 のインストールには g4install リポジトリの使用をおすすめします。 このリポジトリは、複数の Geant4 バージョンを共存させる仕組みとインストールスクリプトを提供します。


サポート対象およびテスト済みのプラットフォーム




  1. Apple Silicon Mac で archlinux amd64 イメージを使用する場合は、docker run コマンドに ↩