バッチモードしたい

 1#include "G4RunManager.hh"
 2
 3#include "MYDetectorConstruction.hh"
 4#include "MYPhysicsList.hh"
 5#include "MYActionInitialization.hh"
 6
 7int main()
 8{
 9    // RunManagerを作成
10    G4RunManager *runManager = new G4RunManager;
11
12    // 必須ユーザークラスを設定
13    runManager->SetUserInitialization(new MYDetectorConstruction);
14    runManager->SetUserInitialization(new MYPhysicsList);
15    runManager->SetUserInitialization(new MYActionInitialization);
16
17    // Geant4のカーネルを初期化
18    runManager->Initialize()
19
20    // ランを開始
21    G4int numberOfEvent = 10
22    runManager->BeamOn(numberOfEvent);
23
24    // RunManagerを削除
25    delete runManager;
26    return 0;
27}

バッチモードで実行する場合の必要最低限のmain()関数です。 これをビルドして実行します。

$ cd プロジェクト名
$ mkdir build
$ cd build
$ cmake ..
$ make -j8
$ ./実行ファイル

実行時の引数は必要ありません。 イベント数はハードコードしてあるので、変更した場合は再ビルドが必要です。