1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【2024年最新】Geant4をM2 Macに入れる

Last updated at Posted at 2024-10-30

プログラミング初心者の理系大学院生が大量のエラーに苦戦しながらGeant4(ver 11.2.2)をMacに入れてビルドするまでをまとめました。Macユーザーは特にHomebrewを用いて色々インストールする人が多いと思うのですが、現時点ではそれだけでは全くうまくいかないので、それも含めて書いていこうと思います。

1. Homebrewのインストール

Geant4を使うためには、Geant4以外にもさまざまなライブラリを導入しないといけません。毎回それぞれのサイトに飛んで、インストーラーをとってきてビルドするのはあまりに手間なのでHomebrewを使いましょう。これは欲しいライブラリを指定すると勝手にインストールからビルド、果てはPATHの設定まで全部やってくれる優れものです。
ただ新しいものしか入れないので後々説明するエラーが出るのは全部こいつのせいで起こります
Homebrewのインストールは簡単で、シェルスクリプトを開き

zsh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

を実行するだけです。

また、Homebrew自身のpathを登録しておきましょう。

zsh
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

2. ライブラリのインストール

必要なライブラリは

  • cmake
  • gcc
  • qt5(Geant4では最新のqt6は非対応)
  • xerces-c
  • ROOT

になります。これをHomebrewでインストールします

注意
Qtだけはエラーの原因なので、別でインストールします。

zsh
brew install cmake gcc xerces-c root

Qtですが、2024/10/30現在、Homebrewで

zsh
brew install qt@5

を実行すると、Qt5(ver5.15.15)がインストールされます。ところが、このバージョンだとGeant4には新しすぎてうまく回りません。従って、別の手段を用いて古いQt5をインストールします。

エラーなくコマンド入力に戻って来られたら次に進みましょう。

3. Command Line Toolsのインストール

Geant4はC++のtoolkitとして作成されています。Macに限らず、PCがC++を扱うために、特にコンパイルやビルドを行うためにはコンパイラ等が必要です。Mac向けにこれらをまとめたのがCommand Line Tools for Xcodeです。既にROOTを入れた人はご存知と思います。

最新バージョンをインストールするときは

zsh
xcode-select --install

と入力するだけで完了です。
が!これらの最新バージョンは往々にしてROOTやGeant4には対応していないものです。そこで、Apple Developperの公式ページから古い版をインストールします。

私の環境ではCLT ver15.3を入れてうまくいきました。

4. (補足)Qt5のインストール

Geant4を実行する際、検出器群や粒子を可視化しながら処理を行うモードにできるのですが、そこでのビジュアル周りの処理を担当するライブラリがQtになります。これを入れないと検出機の配置が正しいかもわからないし、粒子の飛跡をその場で追うこともできません。

古いバージョンのQtをダウンロードする方法はいろんな方があれこれ紹介しているのですが、結局公式をあたるのが一番早いです

注意
Qt online installerはEducational Licenceの登録が必要です。
https://www.qt.io/qt-educational-license

ライセンスの登録が終わったら、下記のサイトからオンラインインストーラーをダウンロードします。

ダウンロードが完了したらインストーラを起動し、指示通り進めてください。

Screenshot 2024-10-31 at 0.33.31.png

ここはどっちでもいいです。自分の情報あんまり見られたくないなーって人はDisableにするといいと思います。

Screenshot 2024-10-31 at 0.34.07.png

ここでQtをインストールしたいディレクトリを選んでください。ぶっちゃけどこでもいいですが、pathを忘れないような場所、かつうっかり消したりしないようなところだといいですね。"Custom Installation"を選択したまま次へ進みます。

Screenshot 2024-10-31 at 0.35.17.png

ここ大事です。ここではQtのどの製品をインストールするか選べるのですが、今欲しい旧版のQtは セキュリティの都合でこの画面には載っていません。 とはいえ欲しい人の気持ちもわかってくれていて、"Archive"を選択して再度フィルターをかけると

Screenshot 2024-10-31 at 0.36.12.png

"Qt"欄の一番下に出てきます。こいつを選択して、あとは誘導通りに進めれば完了です。

5. Geant4のインストール

ここまででGeant4のための環境整備が完了しました。ここからは実際にGeant4をインストールします。

やり方は大きく分けて2つあり、

  • git cloneを用いる
  • curl等を用いて直接ダウンロード

があります。どちらでも構いませんがここでは後者の方で話を進めていきます。

ますはDownloadディレクトリに移動し、そこに最新版のGeant4のソースファイルをインストールします。

zsh
cd ~/Downloads
curl -O https://cern.ch/geant4-data/releases/geant4.11.2.2.tar.gz
tar -xzvf geant4.11.2.2.tar.gz

公式ページから直接ダウンロード、解凍するのもいいと思います。

解凍が完了したら、Geant4のビルド先を作っておきます。

zsh
mkdir ~/geant4-build
cd ~/geant4-build

6. Geant4のビルド

ここから実際にインストールしたgeant4をビルドしていきます。ビルドに使うのは先ほどインストールしたcmakeです。
ビルド先のディレクトリに入り、以下のコマンドを実行します。

zsh
cmake -DCMAKE_PREFIX_PATH=~/Qt/5.15.9/macos \    #Qtのqmakeがある場所
      -DGEANT4_USE_QT=ON \
      -DGEANT4_BUILD_MULTITHREADED=ON \
      -DGEANT4_INSTALL_DATA=ON \
      -DCMAKE_INSTALL_PREFIX=~/geant4-install \
      ~/geant4    #展開したソースファイルの場所

色々追加のオプションをかけていますが、「可視化もマルチスレッド処理もできるようなgeant4を作ってね!」というわけです。

注意
QtにはQt/(ver)/clang_64というディレクトリにもqmakeが存在しますが、こちらはIntel製CPU向け(x86_64)で書かれているので、Apple Mチップ(arm64)には向きません。CMAKE_PREFIX_PATHには必ずmacosの方を選びましょう。

特にエラーなく作業が完了したら、いよいよビルドします。

zsh
make -j$(sysctl -n hw.ncpu)    #ビルドに全スレッドを使う

このビルドにはかなり時間がかかります(10~20分くらい)。特にエラーなく完了したら、最後

zsh
make install

をしてgeant4の基本設定は完了です!
最後に、Geant4の場所をpathに追加して

zsh
echo "source ~/geant4-install/bin/geant4.sh" >> ~/.zshrc
source ~/.zshrc

を行えばGeant4が使えるようになります。

実際にビルドがうまくいっているかを確認するために、デフォルトで入っている例題ファイルをビルドしてみれるかどうかみてみましょう。

zsh
mkdir ~/geant4-example
cd ~/geant4-example
cp -r ~/geant4-install/share/Geant4-11.2.2/examples/basic/B1 .
cd B1
mkdir build
cd build
cmake ..
make -j$(sysctl -n hw.ncpu)
./exampleB1

これでうまくいけば謎の3D画面が出てきて、ものが置かれている様子がわかるはずです。

Screenshot 2024-10-31 at 1.13.04.png

ここまでくれば完成です。

Appendix 1. Qt周りのエラー

最初はROOTのTFileとGeant4でメモリ管理周りの連携がうまくいかなくて色々ライブラリを消したりもう一回入れたりしながら様子を見ていたのですが、brew upgradeした後のGeant4本体のビルドで

zsh
n file included from /Users/(username)/geant4/source/visualization/ToolsSG/src/G4ToolsSGQtGLESViewer.cc:28:
/Users/(username)/geant4-build/source/G4ToolsSG_autogen/include/moc_G4ToolsSGQtGLESViewer.cpp:16:2: error: "This file was generated using the moc from 5.15.15. It"
   16 | #error "This file was generated using the moc from 5.15.15. It"
      |  ^
/Users/(username)/geant4-build/source/G4ToolsSG_autogen/include/moc_G4ToolsSGQtGLESViewer.cpp:17:2: error: "cannot be used with the include files from this version of Qt."
   17 | #error "cannot be used with the include files from this version of Qt."
      |  ^
/Users/(username)/geant4-build/source/G4ToolsSG_autogen/include/moc_G4ToolsSGQtGLESViewer.cpp:18:2: error: "(The moc has changed too much.)"
   18 | #error "(The moc has changed too much.)"
      |  ^

どうやらここで書かれている"moc"ファイルがGeantで対応できないほど色々変わってしまったのでこのままだとビルドできないよ、という警告でした。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?