CLAS12 预簇射量能器示例



本示例展示了来自 clas12-systems 的 CLAS12 预簇射量能器(PCAL)几何结构。


快速上手

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

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


几何结构

如下图所示,几何结构定义于 geometry_src/pcal/pcal.py 和 geometry_src/pcal/geometry.py 中。 PCAL 构建器读取本地的 coatjava 几何工厂,将 CLAS12 预簇射量能器的扇区、窗口、铅层、 闪烁体层以及 U、V、W 条带体积转换为 GEMC 体积,并将它们存储在 gemc.db 中。

世界(一个名为 root 的盒子)中为六个扇区中的每一个包含:

PCAL 是一个大型几何结构,因此本示例在 _data/examples.yml 中设置了 pyvista-fast: true, 以便在导出下方的交互式视图时使用快速 PyVista 渲染路径。

交互式查看器:


物理列表

默认使用 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 ecal 数字化插件。PCAL 与 EC 系统一样写入相同的 ECAL banks, 使用 hipo 层 1 到 3。标识符记录扇区、层和条带编号:

gvolume.digitization = "ecal"
gvolume.set_identifier("sector", sector, "layer", layer, "strip", pcal_strip_id(uvw, kind, strip))


用法

构建探测器

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

更多信息另请参阅构建几何结构。


运行 GEMC

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

gemc pcal.yaml -gui

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


运行事件

CLAS12 PCAL simulation: generated electrons crossing the preshower calorimeter geometry.


输出

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

gstreamer:
  - format: csv
    filename: pcal
  - format: hipo
    filename: pcal

更多信息另请参阅输出文档。

使用 GEMC 分析器绘图

首先运行 GEMC 生成 2,000 个事件。默认的 YAML 文件会写入分析器 CSV 流。

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

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

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

pcal total energy deposited per hit

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

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

pcal y vs x hit positions