マクロしたい(/control/execute

前のページで紹介したコマンド操作を、 ひとつファイルにまとめてマクロを作成できます。

/control/execute ファイル名
/control/execute マクロ名.mac

/control/executeで対話モードの途中にマクロを読み込むことができます。 引数にはファイル名(の相対パス)を指定します。

Geant4では、慣習的にマクロの拡張子に.macを使っていますが、 テキストファイルであればOKです。

表示レベルを変更したい(/*/verbose

# verbose levelの設定
# 0: 非表示
/run/verbose 1       # RunManager
/control/verbose 1
/event/verbose 1     # EventManager
/tracking/verbose 1  # TrackingManager
/process/verbose 1
/particle/verbose 1
/cuts/verbose 1
/material/verbose 1
/vis/verbose 1

ほとんどのコマンドで出力時の表示レベル(verbose level)を設定できます。 レベルは[0, 1, 2]から選択でき、0が非表示です。

初期のデバッグ時には /tracking/verbose 1/hits/verbose 2あたりを有効にしておくとよいかもしれません。

ヒント

入射粒子のエネルギーを大きして、トラック数が多くなると、 ターミナル出力が使わない情報でいっぱいになってしまいます。 そのときは非表示にしたほうがいいかもしれません。

エイリアスしたい(/control/alias

/control/alias エイリアス名 "値"

# AnaEx03.in
/analysis/setDefaultFileType {defaultFileType}

# AnaEx03-csv.in
/control/alias defaultFileType "csv"

コマンドの一部をエイリアス化して、あとから値を代入できます。 詳細はAnaEx03のマクロを参照してください。

コマンド履歴したい(/control/saveHistory

/control/saveHistory ファイル名
/control/saveHistory [G4history.macro]

実行したコマンドのリストをファイルに保存できます。 デフォルトのファイル名はG4history.macroです。

データを保存したい(/analysis/

/analysis/setDefaultFileType "csv"
/analysis/open ファイル名

# 入射粒子の設定
/gun/particle mu-

# Run1: 10 events
/gun/energy 1.0 GeV
/run/beamOn 10
/analysis/write
/analysis/reset

# Run2: 50 events
/gun/energy 500. MeV
/run/beamOn 50
/analysis/write
/analysis/reset

/analysis/closeFile

/analysis/コマンドで、測定したデータを保存できます。 /analysis/closeFileでファイルを閉じる前ならば、 条件を変更して複数のランを実行できます。

参考

/analysis/コマンドを使うために、G4AnalysisManagerを有効にする必要があります。

起動時にマクロしたい(G4UIManager

1int main(int argc, char** argv)
2{
3    // 第一引数がマクロの場合
4    G4String fileName = argv[1];
5    G4String command = "/control/execute ";
6    G4UImanager* um = G4UImanager::GetUIpointer();
7    um->ApplyCommand(command+fileName);
8}

main()関数でG4UImanagerを設定すると アプリケーション起動時に、マクロを読み込むことができます。

ヒント

僕は、セットアップ用のマクロ(setup.mac)を作成し、 その中で用途別マクロを読み込ませることにしています。

可視化に関するマクロ、ランに関するマクロなど、 適度なサイズに分割することで、マクロの編集が簡単になります。