CLAS12 漂移室示例



本示例展示来自 clas12-systems 的 CLAS12 漂移室几何。


快速开始

在 clas12-systems 仓库中,构建几何数据库并运行一次简短的模拟:

cd $GEMC_HOME/../clas12-systems/geometry_src/dc
./dc.py
gemc dc.yaml -n=1


几何

下图所示的几何定义于 geometry_src/dc/dc.py 和 geometry_src/dc/geometry.py 中。 DC 构建器读取本地 coatjava 几何工厂,将 CLAS12 漂移室的区域和 超层转换为 GEMC 几何体,并将它们存储在 gemc.db 中。

世界体积(一个名为 root 的长方体)包含:

交互式查看器:


物理过程列表

默认使用 FTFP_BERT,在 YAML 文件中通过 phys_list: FTFP_BERT 选择。

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: e-
    p: 5000*MeV
    delta_p: 1*GeV
    theta: 25*deg
    delta_theta: 15*deg
    randomThetaModel: cosine
    delta_phi: 180*deg

更多信息另见内部发生器文档。


数字化

超层的灵敏探测设置使用 CLAS12 专用的 dc 数字化插件。标识符记录扇区、 超层、层和丝的编号:

gvolume.digitization = "dc"
gvolume.set_identifier("sector", sector, "superlayer", superlayer, "layer", 1, "wire", 1)


用法

构建探测器

使用 geometry_src/dc/dc.py 构建探测器。默认情况下,该配置存储在名为 gemc.db 的 SQLite 文件中。

更多信息另见构建几何。


运行 GEMC

文件 dc.yaml 可用于运行该配置。添加 -gui 以交互方式运行:

gemc dc.yaml -gui

可根据需要修改 dc.yaml,特别是添加粒子、控制线程数量或更改输出。


运行事例

CLAS12 DC simulation: generated electrons crossing the drift chamber geometry.


输出

gstreamer 选项用于选择输出文件名和格式:

gstreamer:
  - format: csv
    filename: dc
  - format: hipo
    filename: dc

更多信息另见输出文档。

使用 GEMC 分析器绘图

先运行 GEMC 模拟 2,000 个事例。默认 YAML 文件会写出分析器所需的 CSV 数据流。

gemc dc.yaml -n=2000 -no_field=all -plugin_path=/opt/projects/gemc/clas12-systems/build

绘制每次击中的总能量沉积:

gemc-analyzer dc_t0_true_info.csv totalEDeposited --kind csv --data true_info

dc 每次击中的总能量沉积

绘制击中位置的 y 与 x 关系图:

gemc-analyzer dc_t0_true_info.csv --kind csv --data true_info --plot yvsx --bins 80

dc 击中位置的 y 与 x 关系图

绘制数字化后的 TDC 时间:

gemc-analyzer dc_t0_digitized.csv TDC_TDC --kind csv

dc 数字化后的 TDC 时间