例 b2
この例は Geant4 の基本例 B2 を再現したものです。flux デジタイゼーションを用いて、 真値情報とデジタイズされた情報を出力に保存します。
クイックスタート
この例を現在のディレクトリにコピーします。 ジオメトリを作成し、10 イベントを実行して、ROOT と CSV の出力ファイルを生成するには、次のようにします:
cp -r $GEMC_HOME/examples/basic/b2 .
cd b2
./b2.py
gemc b2.yaml -n=10
ジオメトリ
下図に示すジオメトリは b2.py で定義されています。
ワールド(root という名前のボックス)には、次のものが含まれます:
- target: 鉛(G4_Pb)からなる円筒形ターゲット
- tracker: 空気(G4_AIR)からなる円筒形コンテナ
- chamber_0 から chamber_4 までの名前を持つ 5 つの円筒形チェンバーボリューム。キセノン(G4_Xe)からなり、横方向のサイズが順に大きくなるように tracker 内に配置されています
インタラクティブビューア:
物理リスト
デフォルトでは FTFP_BERT が使用され、YAML ファイル内で phys_list: FTFP_BERT によって選択されます。
phys_list
The physics list can be selected using the option
gemc -phys_list <value>where
<value>can be a combination of the Geant4 physics constructors separated by the+sign. For examplegemc -phys_list="FTFP_BERT + G4NeutronCrossSectionXS"To see a list of the available Geant4 constructors:
gemc -showPhysics
ジェネレータ
粒子の運動学的条件は YAML ファイルで定義されます:
gparticle:
- name: proton
p: 3000*MeV
vz: -250*cm
詳細は 内部ジェネレータのドキュメント も参照してください。
デジタイゼーション
チェンバーボリュームの感度設定は、flux デジタイゼーション(GEMC にあらかじめ組み込まれたルーチンの 1 つ)を用いて
b2.py 内で指定します。コピー番号が各チェンバーを識別します:
gvolume.digitization = 'flux'
gvolume.set_identifier('mychamber', copyNo)
この場合、identifier には mychamber という 1 つの名前のみが含まれます。
詳細は Flux のドキュメント を参照してください。
デジタイズされた変数に加えて、真値情報も出力ストリームに保存されます。
True Information
The true information is processed by GEMC and, in some cases, averaged and weighted by the energy deposition. For variables like
pid,tid, orprocessName, the data come from the first step in the hit.The complete list of variables is:
- the sensitive element
identifier, assigned by the user. For example:
sectorlayerhitn: hit numberpid: particle IDtid: track IDavgTime: average timeavglx: average local x positionavgly: average local y positionavglz: average local z positionavgx: average global x positionavgy: average global y positionavgz: average global z positiontotalEDeposited: total energy depositedprocessName: process name creating the first step of this hit
使い方
ディテクタの構築
ディテクタを構築するには Python スクリプト b2.py を使用します。デフォルトでは、セットアップは
gemc.db という名前の SQLite ファイルに保存されます。コマンドラインオプションでデータベースの種類、バリエーション、ラン番号を指定できます。
詳細は ジオメトリの構築 も参照してください。
GEMC の実行
セットアップを実行するには b2.yaml ファイルを使用できます。インタラクティブに実行するには -gui を追加します:
gemc b2.yaml -gui
必要に応じて b2.yaml を変更します。特に、粒子を追加したり、スレッド数を制御したり、出力を変更したりできます。
イベントの実行
出力
gstreamer オプションで出力ファイル名とフォーマットを選択します:
gstreamer:
- format: csv
filename: b2
flux はイベントごとのデジタイゼーションであるため、GEMC はスレッドごとに 1 つの出力ファイルを生成します。
ROOT ファイルの場合は、hadd を使用してファイルをマージできます。
詳細は 出力のドキュメント も参照してください。
GEMC Analyzer によるプロット
まず 1,000 イベントで GEMC を実行します。デフォルトの YAML ファイルは解析ツール用の CSV ストリームを書き出します。
gemc b2.yaml -n=1000
ヒットごとに付与された全エネルギーをプロットします:
gemc-analyzer b2_t0_digitized.csv totEdep --kind csv

粒子トラックの真のエネルギーをプロットします:
gemc-analyzer b2_t0_true_info.csv E --kind csv --data true_info

陽子の極角残差をプロットします:
b2.yaml 内の save_original_track: true オプションは、真値情報の出力に otid と元の運動量成分 opx、
opy、opz を保存します。解析ツールは元の運動量方向と現在の運動量方向を用いて
delta_theta を計算します。
gemc-analyzer b2_t0_true_info.csv delta_theta --kind csv --data true_info --pid 2212 --bins 100 --xlim -0.02 \
0.2 --linear-y
