Geant4 on Windows
- Geant4.9.5 を Windows 7 上の Visual C++ 2010 Express と CMake を使って動かしたときのメモ。Geant4, Visual C++ 2010 Express, CMake はすべて無料。
参考にしたサイト
kithisの日記 - Visual Studio 2010 で Geant4 (その3 新しいプロジェクトの作成)) ←環境変数について詳しい
Chapter 2. Building and Installing Geant4 - 2.2. Building and Installing on Windows Platforms ← 上記サイトで取り上げられている
試した環境など
- Panasonic のノートパソコン CF-S10
- 使ったプログラム
プログラム/データ |
ファイル |
Visual C++ 2010 Express |
Visual Studio Express > vc_web.exe |
CMake |
|
Geant4 |
Home > User support > Download > geant4_9_5.zip (ZIP format source file) |
VRMLView |
Coin3D > vrmlview > Win95 > vrmlview.zip |
準備
- まず Visual C++ 2010 Express と CMake をインストールし、VRMLView をダウンロードしておく。
CMake インストール
CMake のサイトから、Windows (32bit) 用のインストーラ (cmake-2.8.6-win32-x86.exe) をダウンロードして実行。64bit PCでもこれをインストールすればよい。
Visual C++ 2010 Express インストール(30日経つと登録(無料)が必要)
Visual Studio Express のサイトから、Visual C++ 2010 Express の Web インストール (ダウンロード) をクリック。
- vc_web.exe のダウンロードが始まる。これを実行すれば、インストールが始まる。
VRMLView のダウンロード&展開
さらに、シミュレーションの可視化の為に、vrmlview.zip をダウンロードし vrmlview というフォルダに展開。このフォルダを C:\Program Files (x86) に移動させる。vrmlview.exe をダブルクリックすれば、VRMLView が起動する。(隆己君 Thanks!)
Geant4 インストール
Geant4 のダウンロードページから ZIP format の source file (geant4_9_5.zip) をダウンロードする。
- ドキュメント (C:\Users\koba\Documents) フォルダに geant4 フォルダを作り、そこに geant4_9_5.zip を展開する。結局、以下のようなディレクトリ構造になる。このディレクトリ構造にしなくてもよい。自分が作業しやすいようにする。
C:\Users\koba\Documents\geant4\geant4_9_5\cmake config environments examples ReleaseNotes source CMakeLists.txt LICENSE
CMake (cmake-gui) を実行し、以下のようにフォームを埋める。"Where is the source code:" は [Browse Source...] ボタンでフォルダを選択することも可能。"Where to build the binaries:" で指定するフォルダは、コンパイルした dll などが置かれるディレクトリである。あらかじめ作っておく必要はなく、後で CMake が作成する。他の場所を指定してもよい。
Where is the source code: C:\Users\koba\Documents\geant4\geant4_9_5 Where to build the binaries: C:\Users\koba\Documents\geant4\geant4_9_5-build
- [Configure] ボタンを押すと、"Where to build the binaries:" で指定されるフォルダを作成するかを聞かれるので [yes] とし、Visual studio 10, "Use default native compilers" を選択し、[Finish] ボタンを押す。
- コンパイルのオプションが選択できるので、GEANT4_INSTALL_DATA, GEANT4_USEOPENGL_WIN32 にチェックを入れる。Geant4 のインストール場所は、デフォルトのままにする (C:\Program Files (x86)\Geant4)。そして、もう一度 [Configure] ボタンを押す。
- 最後に [Genetare] ボタンを押すと、C:\Users\koba\Documents\geant4\geant4_9_5-build に Geant4.sln といったファイルが作成される。
- Visual C++ 2010 Express を管理者として実行する。管理者権限がないと、コンパイル済みのプログラムを "C:\Program Files (x86)" フォルダ内にインストールできない。
ファイル > 開く > プロジェクト/ソリューション から、C:\Users\koba\Documents\geant4\geant4_9_5-build\Geant4.sln を開く。
- ソリューションエクスプローラー の "All_BUILD" を右クリックし、ビルドを選択すると、ビルドが始まる。上記のスペックのノートパソコンで、コンパイルに50分程度かかるようだ。ビルドの際に、Physics の Data file も自動的にダウンロードされるが、G4NDL.4.0.tar.gz のダウンロードに時間がかかる。先にダウンロードしておくと、ビルドの時間が短縮できる(下記参照)。
- ちなみに、特別な設定をしなくても、4 スレッドをフルに使ってビルドしているようだ。
- 終了メッセージ
========== ビルド: 77 正常終了、0 失敗、0 更新不要、0 スキップ ==========
- ソリューションエクスプローラー の "INSTALL" を右クリックし、ビルドを選択すると、C:\Program Files (x86)\geant4 ディレクトリへのインストールが始まる。
- 以下のようなエラーメッセージが出るので、次のように対処する。error MSB3073 の部分は無視しても大丈夫かも?
11> CMake Error at cmake_install.cmake:79 (execute_process): 11> execute_process given unknown argument "Files". 11> 11> 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: コマンド "setlocal 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: "C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -DBUILD_TYPE=Debug -P cmake_install.cmake 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmEnd 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmErrorLevel 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: exit /b %1 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmDone 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :VCEnd" はコード 1 で終了しました。 ========== ビルド: 10 正常終了、1 失敗、67 更新不要、0 スキップ ==========
Visual Studio C++ 2010 の [ファイル] > [開く] > [ファイル] で C:\Users\koba\Documents\geant4\geant4_9_5-build\cmake_install.cmake を開き、 79 行目を以下のように変更。
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink .. WIN32-VC WORKING_DIRECTORY $ENV{DESTDIR}C:/Program Files (x86)/Geant4/lib/Geant4-9.5.0) ↓↓↓ execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink .. WIN32-VC WORKING_DIRECTORY $ENV{DESTDIR} "C:/Program Files (x86)/Geant4/lib/Geant4-9.5.0")
- 編集したら、再びソリューションエクスプローラー の "INSTALL" を右クリックし、ビルドを選択する。以下のようになればよいはず。(error MSB3073 は気になるが。後で対処法を調べる。)
... 11> -- Up-to-date: C:/Program Files (x86)/Geant4/include/Geant4/G4OpenGLStoredWin32Viewer.hh 11> -- Up-to-date: C:/Program Files (x86)/Geant4/include/Geant4/G4OpenGLWin32Viewer.hh 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: コマンド "setlocal 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: "C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -DBUILD_TYPE=Debug -P cmake_install.cmake 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmEnd 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmErrorLevel 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: exit /b %1 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmDone 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd 11>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :VCEnd" はコード -1 で終了しました。 ========== ビルド: 10 正常終了、1 失敗、67 更新不要、0 スキップ ==========
Note: Data files を先にダウンロードする方法
インストールの前に、Geant4 のダウンロードページからあらかじめ Physics の Data file をダウンロードし、C:\Users\koba\Documents\geant4\data_4_9_5 というディレクトリに置いておく。他のディレクトリでもよい。G4PhotonEvaporation.2.2.tar.gz は PhotonEvaporation.2.2.tar.gz という名前に変更しなければならない。G4NDL.0.2.tar.gz はダウンロードする必要はないようだ。
C:\Users\koba\Documents\geant4\data_4_9_5\G4ABLA.3.0.tar.gz G4EMLOW.6.23.tar.gz G4NDL.4.0.tar.gz G4NEUTRONXS.1.1.tar.gz G4PII.1.3.tar.gz G4RadioactiveDecay.3.4.tar.gz PhotonEvaporation.2.2.tar.gz RealSurface.1.0.tar.gz
さらに、C:\Users\koba\Documents\geant4\geant4_9_5\cmake\Modules\Geant4InstallData.cmake の 39 行目を以下のように変更する。ちなみに、このファイルの中を見ると、ダウンロードすべき Data file がわかる。
set(_urlprefix "http://geant4.cern.ch/support/source") ↓↓↓ set(_urlprefix "file://C:/Users/koba/Documents/geant4/data_4_9_5")
- CMake でソリューションファイル Geant4.sln を作り、これを Visual C++ 2010 Express でビルドすると、Date ファイルをダウンロードする時間を省略できる。逆に、上記のような変更をしなければ、ビルド実行時に自動的に Data file が cern のサーバーからダウンロードされる。
サンプルプログラム(N02)のビルド
- C:\Users\koba\Documents\geant4\geant4_9_5\examples\novice\N02 フォルダ をコピーし、C:\Users\koba\Documents\geant4\N02 というフォルダを作る。他のフォルダでもよい。自分が作業しやすいようにする。
- CMake (cmake-gui) を起動し、以下のようにソースコードの場所と、バイナリを作る場所を指定する。
Where is the source code: C:\Users\koba\Documents\geant4\N02 Where to build the binaries: C:\Users\koba\Documents\geant4\N02-build
- [Configure] ボタンを押し、CMAKE_INSTALL_PREFIX, Geant4_DIR, WITH_GEANT4_UIVIS の値を確認したら、もう一度 [Configure] ボタンを押し、最後に [Generate] ボタンを押す。
- Visual C++ 2010 Express を管理者として実行する(上記参照)。管理者権限がないと、コンパイル済みのプログラムを "C:\Program Files (x86)" フォルダ内にインストールできない。
ファイル > 開く > プロジェクト/ソリューション から、C:\Users\koba\Documents\geant4\N02-build\N02.sln を開く。
- ソリューションエクスプローラー の "All_BUILD" を右クリックし、ビルドを選択。以下のようなメッセージが出て終了。
========== ビルド: 3 正常終了、0 失敗、0 更新不要、0 スキップ ==========
- ソリューションエクスプローラー の "INSTALL" を右クリックし、ビルドを選択。これで、C:/Program Files (x86)/N02 に exampleN02.exe という実行ファイルがインストールされる。以下のようなメッセージが出て終了。
========== ビルド: 3 正常終了、0 失敗、1 更新不要、0 スキップ ==========
サンプルプログラム(N02)の実行
スタートメニュー > すべてのプログラム > アクセサリ から コマンドプロンプトを起動。
- 以下のコマンドを実行し、環境変数を設定する。
set Path=C:\Program Files (x86)\Geant4\bin;%Path% set G4SYSTEM=WIN32-VC set G4INSTALL=C:\Program Files (x86)\Geant4 set G4HEADERS=%G4INSTALL%\include set G4ABLADATA=%G4INSTALL%\share\Geant4-9.5.0\data\G4ABLA3.0 set G4LEDATA=%G4INSTALL%\share\Geant4-9.5.0\data\G4EMLOW6.23 set G4LEVELGAMMADATA=%G4INSTALL%\share\Geant4-9.5.0\data\PhotonEvaporation2.2 set G4NEUTRONHPDATA=%G4INSTALL%\share\Geant4-9.5.0\data\G4NDL4.0 set G4RADIOACTIVEDATA=%G4INSTALL%\share\Geant4-9.5.0\data\RadioactiveDecay3.4 set G4REALSURFACEDATA=%G4INSTALL%\share\Geant4-9.5.0\data\RealSurface1.0
- C:\Users\koba\Documents\geant4\N02 ディレクトリに移動
cd C:\Users\koba\Documents\geant4\N02
- exampleN02.exe を実行。
"C:\Program Files (x86)\N02\bin\exampleN02"
- さらに詳しくチェックする為に、VRMLView でもシミュレーション結果を見る。C:\Users\koba\Documents\geant4\N02\vis.mac を以下のように編集し、.wrl ファイルを出力するようにする。
11行目の OpenGL の部分を # でコメントアウト # Use this open statement to create an OpenGL view: #/vis/open OGL 600x600-0+0 23行目の VRML の部分の # をはずす # Use this open statement to create a .wrl file suitable for # viewing in a VRML viewer: /vis/open VRML2FILE
- 再び exampleN02.exe を実行。これで、g4_00.wrl という vrml 形式 (?) のファイルができる。
"C:\Program Files (x86)\N02\bin\exampleN02"
C:\Program Files (x86)\vrmlview\vrmlview.exe から VRMLView を起動する。[File] > [Open model...] から C:\Users\koba\Documents\geant4\N02\g4_00.wrl を開く。
- VRMLView の [View] から Information, Wireframe, Filled を選択すると、Information や検出器の概観が見えるようになる。画面上でクリックしながらマウスを動かせば、視点を動的にぐりぐり変えることができる。
バッチで環境変数を設定&サンプルプログラム(N02)を実行
- C:\Users\koba\Documents\geant4\N02 フォルダに以下の内容の環境変数設定用の ini.bat (名前は何でもよい) を作る。Path の設定では、exampleN02.exe, vrmlview.exe の場所も指定している。こうすれば、コマンドプロンプト上で例えば vrmlview と打つだけで VRMLView が立ち上がる。
set Path=C:\Program Files (x86)\Geant4\bin;C:\Program Files (x86)\N02\bin;%Path% set Path=C:\Program Files (x86)\vrmlview;%Path% set G4SYSTEM=WIN32-VC set G4INSTALL=C:\Program Files (x86)\Geant4 set G4HEADERS=%G4INSTALL%\include set G4LEVELGAMMADATA=%G4INSTALL%\share\Geant4-9.5.0\data\PhotonEvaporation2.2 set G4LEDATA=%G4INSTALL%\share\Geant4-9.5.0\data\G4EMLOW6.23 set G4NEUTRONHPDATA=%G4INSTALL%\share\Geant4-9.5.0\data\G4NDL4.0 set G4RADIOACTIVEDATA=%G4INSTALL%\share\Geant4-9.5.0\data\RadioactiveDecay3.4 set G4ABLADATA=%G4INSTALL%\share\Geant4-9.5.0\data\G4ABLA3.0 set G4REALSURFACEDATA=%G4INSTALL%\share\Geant4-9.5.0\data\RealSurface1.0
デスクトップ上 (自分がアクセスしやすい場所ならどこでもよい) で右クリックし、[新規作成] > [ショートカット] をクリック。
項目の場所というところで、コマンドプロンプトのパス (%ComSpec% /k ini.bat) を指定。%SystemRoot%\system32\cmd.exe /k ini.bat でも良いかも。
- ショートカットの名前を N02-cmd とする。名前は何でも良い。
- デスクトップ上にできたショートカットを右クリックし、プロパティを開く。
- 作業フォルダの値を C:\Users\koba\Documents\geant4\N02 にする。
- デスクトップ上の N02-cmd ショートカットをダブルクリックすると、ini.bat が実行され、環境変数の設定が行われる。
- パスが通っているので、コマンドプロンプトで単に exampleN02 と打てば、C:\Program Files (x86)\N02\bin\exampleN02.exe が実行される。