マクロしたい(/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
でファイルを閉じる前ならば、
条件を変更して複数のランを実行できます。
起動時にマクロしたい(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
)を作成し、
その中で用途別マクロを読み込ませることにしています。
可視化に関するマクロ、ランに関するマクロなど、 適度なサイズに分割することで、マクロの編集が簡単になります。