Geant4 综合模板
几年前在 Geant4 示例 中我介绍了 Windows 下 Geant4 的安装与示例。今天分享一个 Geant4 综合模板,帮助快速开始一个项目,实现了以下功能:
- 构建模块化的 TAS 探测器
- 统计模拟过程中的核反应信息,包括类型、反应道、产物能量分布、伽马射线母核统计等 (1, 2)
- 利用 Sensitive Detector 统计粒子在探测器中的沉积能量 (3)
- 通过 Analysis Manager 保存数据到 ROOT 文件 (4, 5)
模板的核心功能时序图如下:
sequenceDiagram autonumber par RunManager->>RunStat: Initialization and RunManager->>AnalysisManager: Initialization end RunManager->>+Run: Begin run rect rgb(200, 150, 255) Run->>SD: Initialization end loop Number of particles Run->>+Event: Primary Generator Event->>+Step: Particle Transport loop Particle alive rect rgb(191, 223, 255) alt Have secondary particles Step-->>RunStat: Reaction information else In SD Step-->>SD: Step information end end Step->>Step: Particle Transport end Step->>-Event: E = 0 or been absorbed rect rgb(200, 150, 255) SD-->>AnalysisManager: SD statistics end Event->>-Run: End event end AnalysisManager-->>Output: Data file (root format or others) Run->>-RunManager: End run RunStat-->>Output: Reaction statistics
主要功能 ¶
SD,Hits 与 Analysis Manager¶
Sensitive detector 和 Hits 是 Geant4 中的重要工具,用于统计粒子径迹在我们感兴趣的区域沉积的能量。在模板中,我们定义了一个 Sensitive detector: TemplateSD
,用于划定感兴趣的区域;以及一个 Hits 类: TemplateHit
,用于记录所需要的信息(例如沉积能量、粒子类别、名称等)。
由于不同人员的需求以及工具喜好不同,Geant4 并没有提供一个完备的数据分析工具,但是通过 G4AnalysisManager
实现了对于数据的管理。数据可以分为两类:n-tuple
和 histogram
,前者类似于表格,行是每一个事件,列是各种物理信息;后者是对于某一物理量的统计,例如能量分布、角度分布等。G4AnalysisManager
类是线程安全的,并且可以自动合并多线程的数据。(5)
TemplateSD::ProcessHits
函数将 TemplateHit
的信息收集到 TemplateHitsCollection
中,随后在 EventAction::EndOfEventAction
函数中读出,并且通过 analysisManager
(G4AnalysisManager
类的实例)保存,最后在 RunAction::EndOfRunAction
中输出到 ROOT 文件中。
核反应统计 ¶
统计的过程完全发生在 SteppingAction::UserSteppingAction
方法中,并定义了 RunStat
类进行协助。RunStat
类的主要功能是记录核反应的信息(例如反应类型、反应道与 Q 值)以及核反应产物的信息(例如产物能量、数量,以及伽马射线的母核统计),这些信息在 RunStat::print
中输出到日志文件中,同时也保存在 analysisManager
中。
示例 ¶
探测器构建 ¶
- 靶
- 15 mm
- 样品: 100% , 1.5 um 绿色 (红色)
- 衬底: Al, 5 um 绿色 (蓝色)
- 探测器
- Si: 10 mm 10 mm 3 mm (白色)
- BGO: 100 mm 100 mm 200 mm, 六边形
- 中心:束流孔 40 mm (黄色,1 个)
- 外层 (灰色,总计 6 个)
- 屏蔽
- PEEK: 20 ~ 35 mm, 200 mm 长 (青色)
- Pb: 50 mm 厚 (绿色)
核反应统计 ¶
入射粒子为 13 MeV 的质子,反应主要以库伦散射为主,质子非弹主要以 的 (n,p) 反应为主,产物为
1 | >>> Process calls frequency: |