シンプルなフラックス検出器
この例では、flux デジタイゼーションを使用して、真値情報とデジタイズされた情報を出力に保存します。
クイックスタート
この例をカレントディレクトリにコピーします。 ジオメトリを作成し、10 イベントを実行し、ROOT および CSV の出力ファイルを生成するには、以下を実行します:
cp -r $GEMC_HOME/examples/basic/simple_flux .
cd simple_flux
./simple_flux.py
gemc simple_flux.yaml -n=10
ジオメトリ
以下に示すジオメトリは simple_flux.py で定義されています。
ワールド(root という名前のボックス)には、次のものが含まれます:
- target: 円柱形の液体水素ターゲット(G4_lH2)
- FluxPlane: 空気(G4_AIR)でできたボックスで、flux デジタイゼーションが割り当てられています
インタラクティブビューア:
物理リスト
デフォルトでは QBBC が使用され、YAML ファイル内で phys_list: QBBC により選択されます。
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: 2000*MeV
vz: -3*cm
delta_vx: 0.1*cm
delta_vy: 0.1*cm
multiplicity: 10
詳細は 内部ジェネレータのドキュメント も参照してください。
デジタイゼーション
FluxPlane の感応設定には、flux デジタイゼーション(GEMC に組み込まれたルーチンの一つ)を使用します。
simple_flux.py で指定され、識別子は flux_plane = 1 です。
gvolume.digitization = "flux"
gvolume.set_identifier("flux_plane", 1)
この場合、identifier には flux_plane という 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 スクリプト simple_flux.py を使用します。デフォルトでは、セットアップは SQLite ファイル
gemc.db に保存されます。コマンドラインオプションで、データベースの種類、バリエーション、ラン番号を指定できます。
詳細は ジオメトリのビルド も参照してください。
GEMC の実行
simple_flux.yaml ファイルを使ってセットアップを実行できます。インタラクティブに実行するには -gui を追加します:
gemc simple_flux.yaml -gui
必要に応じて simple_flux.yaml を変更してください。特に、粒子の追加、スレッド数の制御、出力の変更などを行えます。
イベントの実行
出力
gstreamer オプションで、出力ファイル名とフォーマットを選択します:
gstreamer:
- format: csv
filename: simple_flux
flux はイベントごとのデジタイゼーションであるため、GEMC はスレッドごとに 1 つの出力ファイルを生成します。
ROOT ファイルの場合は、hadd を使ってファイルをマージできます。
詳細は 出力のドキュメント も参照してください。
GEMC Analyzer によるプロット
まず 10,000 イベントで GEMC を実行します。デフォルトの YAML ファイルはアナライザ用の CSV ストリームを書き出します。
gemc simple_flux.yaml -n=10000
ヒットごとに付与された総エネルギーをプロットします:
gemc-analyzer simple_flux_t0_digitized.csv totEdep --kind csv

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