几年前在 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-tuplehistogram,前者类似于表格,行是每一个事件,列是各种物理信息;后者是对于某一物理量的统计,例如能量分布、角度分布等。G4AnalysisManager 类是线程安全的,并且可以自动合并多线程的数据。(5)

TemplateSD::ProcessHits 函数将 TemplateHit 的信息收集到 TemplateHitsCollection 中,随后在 EventAction::EndOfEventAction 函数中读出,并且通过 analysisManagerG4AnalysisManager 类的实例)保存,最后在 RunAction::EndOfRunAction 中输出到 ROOT 文件中。

核反应统计

统计的过程完全发生在 SteppingAction::UserSteppingAction 方法中,并定义了 RunStat 类进行协助。RunStat 类的主要功能是记录核反应的信息(例如反应类型、反应道与 Q 值)以及核反应产物的信息(例如产物能量、数量,以及伽马射线的母核统计),这些信息在 RunStat::print 中输出到日志文件中,同时也保存在 analysisManager 中。

示例

探测器构建

    • Φ\Phi 15 mm
    • 样品: 100% 98Mo^{98}\mathrm{Mo}, 1.5 um 绿色 (红色)
    • 衬底: Al, 5 um 绿色 (蓝色)
  • 探测器
    • Si: 10 mm ×\times 10 mm ×\times 3 mm (白色)
    • BGO: 100 mm ×\times 100 mm ×\times 200 mm, 六边形
      • 中心:束流孔 Φ\Phi 40 mm (黄色,1 个)
      • 外层 (灰色,总计 6 个)
  • 屏蔽
    • PEEK: Φ\Phi 20 ~ 35 mm, 200 mm 长 (青色)
    • Pb: 50 mm 厚 (绿色)
探测器侧视图
探测器侧视图

核反应统计

入射粒子为 13 MeV 的质子,反应主要以库伦散射为主,质子非弹主要以 98Mo^{98}\mathrm{Mo} 的 (n,p) 反应为主,产物为 98Tc^{98}\mathrm{Tc}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
>>> Process calls frequency:
CoulombScat = 103207
Radioactivation = 2522
...

>>> List of nuclear reactions:
As75[264.658] --> N gamma or e- + As75 / Radioactivation: 1 Q = 264.658 keV
...
gamma --> N gamma or e- / phot: 121754 Q = -249.463 eV
gamma --> gamma + N gamma or e- / compt: 46219 Q = 0 eV
...
proton + Mo98 --> N gamma or e- + neutron + Tc98 / protonInelastic: 5106 Q = -3.47829 MeV
...

>>> List of generated particles:
As75 : 18 Emean = 9.91766 eV ( 501.954 meV --> 15.9164 eV )
...

>>> List of gamma parents:
0 : Tc98 up
...

伽马能谱与母核

Mo-98的伽马能谱(产物为Mo-98基态)
Mo-98 的伽马能谱(产物为 Mo-98 基态)
单块BGO伽马总能谱
单块 BGO 伽马总能谱
1.607~1.610 MeV伽马射线母核统计
1.607~1.610 MeV 伽马射线母核统计

跳转链接

参考资料

  1. Example Hadr03
  2. Differences with physics list choice in Hadr03 example
  3. Example B2
  4. Example B4
  5. ANALYSIS