CLAS12 低阈值契伦科夫计数器示例
本示例展示来自 clas12-systems 的 CLAS12 低阈值契伦科夫计数器(LTCC)几何结构。它将原生的 GEMC
镜面光学系统与通过 gcad 功能加载的 CAD 网格结合在一起。两套系统都存储在同一个 SQLite 数据库中。
LTCC 的几何结构与数字化功能在 clas12-systems 0.3 中提供,需配合 GEMC 0.5 和 pygemc 0.5.0 使用。
快速上手
在 clas12-systems 仓库中,构建几何数据库并运行一次简短的模拟:
cd $GEMC_HOME/../clas12-systems/geometry_src/ltcc
./ltcc.py
gemc ltcc.yaml -n=1
几何结构
如下图所示,几何结构定义在 geometry_src/ltcc/geometry.py 中,并由 geometry_src/ltcc/ltcc.py 统筹编排。
原生构建器移植了最初的 clas12Tags perl 脚本(镜面形状、PMT 和铁屏蔽层),而反射式 Winston 锥和机械框架则作为
CAD 网格导入。原生行使用 ltcc SQLite 系统,网格行则使用独立的 ltcc_cad CAD 系统。两者共享同一个
数据库、variation 和 run,因此一个 gemc.db 即可加载完整的探测器。
世界(一个名为 root 的盒子)为六个扇区中的每一个包含:
- 一个名为 ltccS<sector> 的气体母楔形体,容纳该扇区的光学元件
- 以 ltcc_AlMgF2 光学表面记录的柱面、双曲面和椭球面镜段
- 名为 pmt_s<sector><side>_<n> 的光电倍增管,在每个镜段的左侧和右侧读出
- 覆盖 Winston 锥外表面的 5 mm 铁屏蔽层
- 作为 copyOf 放置复用的 CAD Winston 锥(WC_S、WC_M、WC_L)和框架网格
交互式查看器:
物理列表
LTCC 是一种契伦科夫探测器,因此必须产生并追踪光学光子。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 专用的 ltcc 数字化插件。标识符记录扇区、PMT 所在侧以及该管所读出的镜段:
pmt.digitization = "ltcc"
pmt.set_identifier("sector", sector, "side", side_id, "segment", n)
使用方法
构建探测器
使用 geometry_src/ltcc/ltcc.py 构建探测器。该脚本定义材料和镜面,发布原生的 ltcc 体积,从
stls/cad__default.yaml 上传 ltcc_cad 系统的 CAD 定义,并添加 CAD 的 copyOf 放置。默认情况下,
两套系统都存储在名为 gemc.db 的 SQLite 文件中。
更多信息另见构建几何结构。
运行 GEMC
可使用 ltcc.yaml 文件运行该配置。添加 -gui 以交互方式运行:
gemc ltcc.yaml -gui
可按需修改 ltcc.yaml,特别是用于添加粒子、控制线程数或更改输出。
运行事件
输出
gstreamer 选项用于选择输出文件名和格式:
gstreamer:
- format: csv
filename: ltcc
- format: hipo
filename: ltcc
更多信息另见输出文档。
使用 GEMC 分析器绘图
首先运行 GEMC 进行 2,000 次事件模拟。默认的 YAML 文件会写出分析器 CSV 流。
gemc ltcc.yaml -n=2000 -no_field=all -plugin_path=/opt/projects/gemc/clas12-systems/build
绘制每次击中沉积的总能量:
gemc-analyzer ltcc_t0_true_info.csv totalEDeposited --kind csv --data true_info

绘制击中位置的 y 对 x 分布:
gemc-analyzer ltcc_t0_true_info.csv --kind csv --data true_info --plot yvsx --bins 80
