Cherenkov の例
この例では、GEMC 検出器で Cherenkov 放射を有効にする方法を示します。 3 つのラジエーター名は、中立的なデモ用のラベルです。これらの光学定数は非物理的な場合があり、 実在する材料の定義として解釈すべきではありません。
クイックスタート
この例を現在のディレクトリにコピーします。 ジオメトリを作成し、1 イベントを実行し、ROOT および CSV の出力ファイルを生成するには:
cp -r $GEMC_HOME/examples/optical/cherenkov .
cd cherenkov
./cherenkov.py
gemc cherenkov.yaml -n=1
ジオメトリ
以下に示すジオメトリは cherenkov.py で定義されています。これは 3 つのバリエーションで生成されます:
default、mediumIndexRadiator、highIndexRadiator です。
ワールド(root という名前のボックス)には radiator ボックスが含まれます。ラジエーターの材料は選択したバリエーションによって異なります:
| バリエーション | 材料 | 色 | 屈折率の範囲 |
|---|---|---|---|
| default | lowIndexRadiator | 赤 | 1.0010-1.0013 |
| mediumIndexRadiator | mediumIndexRadiator | 青 | 1.0110-1.0150 |
| highIndexRadiator | highIndexRadiator | 緑 | 1.0500-1.0530 |
- 4 つのボックス(detector_left、detector_right、detector_top、detector_bottom)で構成される gPhotonDetector 検出器。これにより、ビーム用に中心部へ小さな穴が残されます。
インタラクティブビューア:
物理リスト
YAML ファイルではデフォルトで FTFP_BERT + G4OpticalPhysics が使用されます。光学光子を生成するには、光学物理コンポーネントが必要です。
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: e-
p: 1000*MeV
vz: -50*cm
詳細については、内部ジェネレーターのドキュメント も参照してください。
デジタイゼーション
検出器ボリュームの感度は、cherenkov.py 内の gPhotonDetector デジタイゼーション(GEMC に組み込まれている
利用可能なルーチンの 1 つ)で指定されます。
identifier は、異なる検出器ボックスを区別するために使用されます:
backplate.digitization = "gPhotonDetector"
backplate.set_identifier("detector", panel_id)
詳細については、Flux のドキュメント を参照してください。
使い方
検出器の構築
Python スクリプト cherenkov.py を使用して検出器を構築します。デフォルトでは、セットアップは
gemc.db という名前の SQLite ファイルに保存されます。コマンドラインオプションで、データベースの種類、
バリエーション、ラン番号を定義できます。
詳細については、ジオメトリの構築 も参照してください。
GEMC の実行
ファイル cherenkov.yaml を使用してセットアップを実行できます。インタラクティブに実行するには -gui を追加します:
gemc cherenkov.yaml -gui
YAML は g4view.cloudPoints: 60000 を設定しており、クラウドスタイルのボリュームが、レンダリングされた
ジオメトリのスクリーンショットに対して十分に密になるようにしています。
必要に応じて cherenkov.yaml を変更してください。特に、粒子の追加、スレッド数の制御、出力の変更などに使用します。
gPhotonDetector デジタイゼーションは、エネルギーをまったく付与しない場合でも光学光子を記録するため、
この例では recordZeroEdep は必要ありません。
バリエーション
YAML ファイル内では、バリエーションは mediumIndexRadiator に設定されています。材料を変更するには、これを default または highIndexRadiator に置き換えることができます。例えば:
gsystem:
- name: cherenkov
variation: highIndexRadiator
以下に示すように、ラジエーター材料が異なると、光子の収量や角度も異なります。 これらの光学定数はデモ用の値であり、非物理的な場合があります。 バリエーションごとに個別の出力ファイルが必要な場合は、gstreamer のファイル名にバリエーション名を使用してください。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
左: lowIndexRadiator、中央: mediumIndexRadiator、右: highIndexRadiator。
イベントの実行
出力
gstreamer オプションは、出力ファイル名とフォーマットを選択します:
gstreamer:
- format: csv
filename: cherenkov
gPhotonDetector はイベントごとのデジタイゼーションであるため、GEMC はスレッドごとに 1 つの出力ファイルを生成します。
ROOT ファイルの場合は、hadd を使用してファイルをマージできます。
詳細については、出力のドキュメント も参照してください。
GEMC Analyzer によるプロット
まず GEMC を 1 イベントで実行します。デフォルトの YAML ファイルは、アナライザー用の CSV ストリームを書き出します。
gemc cherenkov.yaml -n=1
ヒットごとに付与された総エネルギーをプロットします:
gemc-analyzer cherenkov_t0_digitized.csv totEdep --kind csv

y 対 x のヒット位置をプロットします:
gemc-analyzer cherenkov_t0_true_info.csv --kind csv --data true_info --plot yvsx --bins 80





