Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@m_moriti

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

高エネルギー粒子のシミュレーションとして用いられるGeatn4をWindowsにインストールして、Qtで表示する方法をまとめる。標準では、OpenGLを使用するのだが、WindowsではOpenGLの表示が正しくないこともあり、汎用性を考慮しQtを使用するこで、実装と確認をMSVCで行い、実際の実行をマルチスレッド処理が可能なUnix環境で行うことができ、開発が便利となる。

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

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

もし、インターネット接続環境にて、プロキシーが必要な場合は、追加データをダウンロードすることができずにビルドエラーとなってしまうので、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をインストールしたフォルダ。

変数
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

MSVCを使って、Releaseビルドを実施
image.png
9. 実行する

実行
.\Release\exampleB1

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

1
Help us understand the problem. What is going on with this article?
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
m_moriti

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?