ライセンス

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


リリースノート


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


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

バイナリの 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 のみです(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 の両方がサポートされています(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

リモートホスト経由で接続している場合、グラフィカルインターフェース、特に 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 を再度実行します。




付録


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


バイナリ 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 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 の任意のカスタムインストールを使用できますが、 Geant4 のインストールには g4install リポジトリの使用をお勧めします。 複数の Geant4 バージョンを共存させる仕組みとインストールスクリプトが提供されているためです。


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




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