CLAS12 高閾値チェレンコフカウンターの例
この例では、clas12-systems に含まれる CLAS12 高閾値チェレンコフカウンター (HTCC) のジオメトリを紹介します。
GEMC ネイティブのミラー光学系と、gcad 機能で読み込んだ CAD メッシュを組み合わせています。両方のシステムは
1 つの SQLite データベースに格納されます。
HTCC のジオメトリとデジタイズ処理は、clas12-systems 0.3 と GEMC 0.5、pygemc 0.5.0 の組み合わせで利用できます。
クイックスタート
clas12-systems リポジトリで、ジオメトリデータベースをビルドし、短いシミュレーションを実行します。
cd $GEMC_HOME/../clas12-systems/geometry_src/htcc
./htcc.py
gemc htcc.yaml -n=1
ジオメトリ
下に示すジオメトリは geometry_src/htcc/geometry.py で定義され、その構築処理は
geometry_src/htcc/htcc.py によって制御されます。ネイティブビルダーは元の clas12Tags の perl スクリプト
(ガスボリューム、窓、48 枚の楕円ミラー、48 本の光電子増倍管) を移植したもので、3 つのビームラインコーンは
CAD メッシュとしてインポートされます。ネイティブのデータ行は htcc SQLite システムを使用し、メッシュのデータ行は
別の htcc_cad CAD システムを使用します。両者は同じデータベース、バリエーション、ランを共有するため、
1 つの gemc.db で検出器全体が読み込まれます。
ワールド (root という名前のボックス) には以下が含まれます。
- ポリコーンのブール演算で構築された htcc ガスボリュームと、htccEntryWindow および htccExitWindow
- ポリコーンのバレルから切り出され、htcc_AlMgF2 光学表面を設定して登録された 48 個の楕円ミラーセグメント
- pmt_<ring>sector<sector><half> という名前の光電子増倍管。各セクターを 2 つの半セクターに分けて読み出す
- htcc_AlMgF2 ミラー用スキン表面を共有するウィンストンコーンの放物面シェル
- root の下に配置された CAD ビームラインコーン (htccCone、htccMollerCone、htccMollerConeExt)
インタラクティブビューア:
物理リスト
HTCC はチェレンコフ検出器であるため、光学光子を生成して追跡する必要があります。YAML ファイルでは
phys_list: FTFP_BERT + G4OpticalPhysics により 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: 5000*MeV
delta_p: 1*GeV
theta: 25*deg
delta_theta: 15*deg
randomThetaModel: cosine
phi: 60*deg
delta_phi: 180*deg
詳細については 内部ジェネレーターのドキュメント も参照してください。
デジタイズ処理
光電子増倍管は CLAS12 固有の htcc デジタイズプラグインを使用します。識別子にはセクター、ミラーのリング、 および光電子増倍管が読み出す半セクターが記録されます。
pmt.digitization = "htcc"
pmt.set_identifier("sector", sector, "ring", ring, "half", hindex)
使い方
検出器のビルド
geometry_src/htcc/htcc.py を使用して検出器をビルドします。このスクリプトは材料とミラー表面を定義し、
ネイティブの htcc ボリュームを登録するとともに、3 つのビームラインコーンを CAD メッシュとして
htcc_cad システムに登録します。デフォルトでは、両方のシステムが gemc.db という名前の SQLite ファイルに格納されます。
詳細については ジオメトリのビルド も参照してください。
GEMC の実行
htcc.yaml ファイルを使ってこの構成で実行できます。インタラクティブに実行するには -gui を追加します。
gemc htcc.yaml -gui
必要に応じて htcc.yaml を変更します。特に、粒子の追加、スレッド数の制御、
出力の変更などを行えます。
イベントの実行
出力
gstreamer オプションで出力ファイル名と形式を選択します。
gstreamer:
- format: csv
filename: htcc
- format: hipo
filename: htcc
詳細については 出力のドキュメント も参照してください。
GEMC Analyzer でのプロット
まず 2,000 イベントで GEMC を実行します。デフォルトの YAML ファイルでは、アナライザー用の CSV ストリームが出力されます。
gemc htcc.yaml -n=2000 -no_field=all -plugin_path=/opt/projects/gemc/clas12-systems/build
ヒットごとの総エネルギー付与量をプロットします。
gemc-analyzer htcc_t0_true_info.csv totalEDeposited --kind csv --data true_info

ヒット位置の y 座標を x 座標に対してプロットします。
gemc-analyzer htcc_t0_true_info.csv --kind csv --data true_info --plot yvsx --bins 80
