1
Help us understand the problem. What are the problem?

posted at

updated at

Geant4をWindowsにインストールし、Qtを利用して表示する

高エネルギー粒子のシミュレーションとして用いられるGeant4をWindowsにインストールして、Qtで表示する方法をまとめる。標準では、OpenGLを使用するのだが、WindowsではOpenGLの表示が正しくないこともあり、汎用性を考慮しQtを使用するこで、ソース編集と確認をMSVCで行い、実際の実行をマルチスレッド処理が可能なUnix環境で行うことができ、開発が便利となる。
(Windows環境で、Geant4 v11.0.0からマルチスレッドでの並列処理が可能になりました。ただし、不安定であるので、長時間のシミュレーションの際には注意が必要。)

必要な環境
Windows 10 (11は未確認)
Microsoft Visual Studio 2019 (Communityでも可)。(Intel C++コンパイラーやCMakeでも代用可能であるっぽいが動作検証されてないようである)

##Qtをインストール##

  1. Qtのサイトから、[Open Source Qt Use]にて、Qtのインストーラーをダウンロードする。
  2. インストーラーを起動し、 Qt Accountを登録し、[Custom installation]を選択し、[Next]をクリック
    image.png
  3. Qt 5.##の最新版にて、[MSVC 2019 64-bit]を選択する。[Qt 5.##]以下のQt ???を全てチェックする。Qt6はGeant4では非対応なのでインストールしない。
    image.png
  4. Windowsの[システムの環境変数]の[環境変数]の"Path"に%{Qt_install}\5.##\msvc2019_64\binを追加する。(%{Qt_install}は、Qtをインストールしたフォルダ。ディフォルトなら、"c:\Qt")
    image.png

##Geant4をインストール##

  1. Geant4のサイトから、最新版のSource files(ZIP形式)をダウンロードする。
    image.png
  2. Geant4をインストールする任意のフォルダ(%{Geant4_BaseDir})を作成(Cドライブ直下やProgram Files等のシステムフォルダ内は避けるべし)し、ダウンロードしたソースファイルを解凍する。%{Geant4_BaseDir}に、geant4_##_## フォルダ(##はバージョン)ができています。
  3. %{Geant4_BaseDir}に、ビルド用のフォルダ(例:geant4-build)とインストールフォルダ(例:geant4-install)を作成する。
  4. Windowsメニュー等から[Developer Command Prompt for VS 2019]を起動する。
  5. "cd"コマンドにて、ビルド用フォルダに移動する。
cd %{Geant4_BaseDir}\geant4-build

実際には""は、円マーク(¥)になります。¥入力後に、フォルダー名の頭文字を入力して、[Tab]キーを押すと、最初のフォルダーが自動入力されます。
6. 以下のコマンドにて、ビルドする。

cmake -DCMAKE_INSTALL_PREFIX=%{Geant4_BaseDir}\geant4-install -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_QT=ON -DCMAKE_PREFIX_PATH=%{Qt_install}\バージョン\msvc2019_64 %{Geant4_BaseDir}\ソースファイルフォルダ

各引数の説明
-DCMAKE_INSTALL_PREFIX : インストール先を指定
-DGEANT4_INSTALL_DATA : 必要なデータファイルをダウンロードし、インストールする
-DGEANT4_USE_QT=ON : 表示にQtを使用する
-DCMAKE_PREFIX_PATH : ビルド時に追加のライブラリパス(ここでは、Qtのパスを指定)

最後に、ソースフォルダを指定する。
様々なオプションの指定が可能であるので、Geant4のInstallation Guideを参照すべし。cmakeコマンドで、オプションを追加することは可能であるが、設定を間違えた場合は、geant4-build内のCMakeCache.txtを削除してから、再度、cmakeコマンドを実行するほうが安心である。オプションの意味が分からないなら、何もしないことをお勧めする。
問題がなければ、以下のように
image.png

成功の場合
-- Configuring done
-- Generating done
-- Build files have been written to : *****

と表示されていれば、成功。
7. 以下のコマンドにてコンパイルを行う。

コンパイル
cmake --build . --config Release

ツール開発などでデバッグ情報が必要な場合は、ReleaseをRelWithDebInfoに変更する。ただし、Releaseビルドに比べると、最適化が行われないために、パフォーマンスが落ちる。

もし、インターネット接続環境にて、プロキシーが必要な場合は、必要なデータをダウンロードすることができずにビルドエラーとなってしまうので、setコマンドでプロキシーを事前に設定しておく必要がある。

プロキシーの設定
set HTTP_PROXY=http://proxy.example.com:PORT_NUM
set HTTPS_PROXY=https://proxy.example.com:PORT_NUM

コンパイルするのに、数時間かかるので待機。途中、黄文字で何かが表示されますが、無視して大丈夫です。赤文字の場合は、エラーですので、コンパイル失敗になります。その場合は、設定等を再度見直す必要があります。
もし、コンパイルを中止したい場合は、[Ctrl+C]にて中止要求をする。
成功すると、
image.png
という感じで終わる。
8. 生成物をインストールする。1時間ぐらいかかります。

インストール
cmake --build . --config Release --target install

成功すると、
image.png
こんな感じになります。
9. 環境の設定
Windowsの[システムの環境変数]の[環境変数]の"Path"に、"%{Geant4_BaseDir}\geant4-install\bin"を追加。以下の項目をユーザーの環境変数に追加する。%{Geant4_install}は、Geant4をインストールしたフォルダ。注:data以下のフォルダ名に付随するバージョンは、実際に合わせて変更すること。

変数
G4ABLADATA %{Geant4_install}\share\Geant4-10.7.1\data\G4ABLA3.1
G4ENSDFSTATEDATA %{Geant4_install}\share\Geant4-10.7.1\data\G4ENSDFSTATE2.3
G4INCLDATA %{Geant4_install}\share\Geant4-10.7.1\data\G4INCL1.0
G4LEDATA %{Geant4_install}\share\Geant4-10.7.1\data\G4EMLOW7.13
G4LEVELGAMMADATA %{Geant4_install}\share\Geant4-10.7.1\data\PhotonEvaporation5.7
G4NEUTRONHPDATA %{Geant4_install}\share\Geant4-10.7.1\data\G4NDL4.6
G4PARTICLEXSDATA %{Geant4_install}\share\Geant4-10.7.1\data\G4PARTICLEXS3.1
G4PIIDATA %{Geant4_install}\share\Geant4-10.7.1\data\G4PII1.3
G4RADIOACTIVEDATA %{Geant4_install}\share\Geant4-10.7.1\data\RadioactiveDecay5.6
G4REALSURFACEDATA %{Geant4_install}\share\Geant4-10.7.1\data\RealSurface2.2
G4SAIDXSDATA %{Geant4_install}\share\Geant4-10.7.1\data\G4SAIDDATA2.0

image.png
10. インストールの完了
11. 設定を反映させるために、Developer Command Promptを終了させ、PCを再起動させる。
PC起動時に、環境変数を読み込むため、この作業を忘れると、正しく動作しないことが多い。

##サンプルコードでのテスト##

  1. 任意の箇所に作業フォルダ%{work_dir}を作成する。
  2. "%{Geant4_install}\share\Geant4-10.7.1\examples\basic\B1"を%{work_dir}にコピーする。
  3. Developer Command Promptを起動し、cdコマンドを使って、作業フォルダ(カレントフォルダ)を%{work_dir}に移動する。
cdコマンドの例
cd %{work_dir}  //%{work_dir}に移動する
cd ..           //一つ上の階層へ移動する
cd folder       //floderフォルダーに移動

cd : 作業フォルダを移動するコマンド
4. mkdirを使って、ビルド用のフォルダ(B1-build)を作成する。

フォルダの作成
mkdir B1-build

mkdir : フォルダを作成するコマンド
5. cdコマンドを使って、作成したフォルダ(B1-build)に移動
6. cmakeコマンドを使って、ビルドする。

ビルド
cmake -DGeant4_DIR=${Geant4_install}\lib\Geant4-10.7.1 ..\B1

-DGeant4_DIR : Geant4のライブラリパスを指定
..\B1 : ソースフォルダ (一つ上の階層にあるB1フォルダという意味)
成功すると、
image.png
7. コンパイルする

コンパイル
cmake --build . --config Release

ツール開発などでデバッグ情報が必要な場合は、ReleaseをRelWithDebInfoに変更する。ただし、Releaseビルドに比べると、最適化が行われないために、パフォーマンスが落ちる。

image.png
9. 実行する

実行
.\Release\exampleB1

.\Release : Releaseビルドによって生成された成果物が格納されているフォルダ
exampleB1 : サンプルの実行exe
成功すると、Qt画面が表示されます。
image.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?