シンプルなフラックス検出器



この例では、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 という名前のボックス)には、次のものが含まれます:

インタラクティブビューア:


物理リスト

デフォルトでは 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 example

gemc -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, or processName, 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:
    • sector
    • layer
  • hitn: hit number
  • pid: particle ID
  • tid: track ID
  • avgTime: average time
  • avglx: average local x position
  • avgly: average local y position
  • avglz: average local z position
  • avgx: average global x position
  • avgy: average global y position
  • avgz: average global z position
  • totalEDeposited: total energy deposited
  • processName: 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 を変更してください。特に、粒子の追加、スレッド数の制御、出力の変更などを行えます。


イベントの実行

Simple flux simulation: proton tracks traversing the flux detector volumes.


出力

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

simple_flux のヒットごとに付与された総エネルギー

粒子トラックのエネルギーの真値をプロットします:

gemc-analyzer simple_flux_t0_true_info.csv E --kind csv --data true_info

simple_flux の粒子トラックのエネルギーの真値