Geant4 User's Guide
- For Application Developers -
1. 简介
2. 运行 Geant4 – 一个简单的例子
1. 如何编写 main() 函数
2. 如何定义一个探测器的几何形状
3. 如何指定探测器的材料
4. 如何指定粒子
5. 如何指定物理过程
6. 如何产生一个初级事件
7. 如何生成(Make)一个可执行的程序
8. 如何建立一个交互式的程序接口(Session)
9. 如何运行一个程序
10. 如何可视化探测器和事件
3. 工具包基本组成
1. G4 的各个功能模块和它们的功能
2. 全局类
3. 单位系统
4. Run
5. 事件
6. 事件发生器接口
7. 事件偏倚技巧
4. 探测器定义和响应
1. 几何
2. 材料
3. 电磁场
4. Hits
5. 数字化
6. 对象的持续性
5. 粒子跟踪和物理过程
1. 粒子跟踪
2. 物理过程
3. 粒子
4. 产物阈值与截断值
5. 分区域截断
Geant4 User's Documents
Version: Geant4 5.2 June 2003
6. 用户行为(Actions)
1. 必要的用户行为(Actions)和初始化
2. 可选的用户行为(Actions)
7. 应用程序的通讯和控制
1. 内建命令
2. 用户接口--定义新的命令
8. 可视化
1. 可视化介绍
2. 什么可以被可视化?
3. 与可视化有关的属性
4. 折线,标记和文字
5. 生成一个可视化的可执行程序
6. 可视化引擎
7. 交互式可视化
8. 非交互式可视化
9. 内建可视化命令
10. 其他
9. 例子
1. 入门例子
2. 高级例子
10. 附录
1. Geant4 程序编译提示
2. 数据分析接口
3. CLHEP 基本类库
4. C++ 标准模板库
5. Makefiles 和 Geant4 环境变量
6. 使用 MS Visual C++编译 Geant4
7. 开发和调试工具
About the authors
1. 简介
1.1 本手册内容
《The User's Guide for Application Developers》是用户在学习和开发基于 Geant4 的探测器模
拟程序时,应该阅读的第一手册。手册主要讲述:
•
向初学者介绍面向对象的 Geant4 探测器模拟工具包,
Geant4 User's Guide
For Application Developers
• 介绍了各种可用工具和他们的使用方法,并且
• 提供了一些对开发、运行模拟程序非常有用的信息
手册只是对工具包的一个概述,而不是详尽的描述。除一些特殊的工具外,没有讨论相关的
物理过程。Geant4 中所涉及的相关物理过程在《Physics Reference Manual》中有详细讨论。
Geant4 类的功能和设计细节可以在 《User's Guide for Toolkit Developers》中找到,它的全部
代码清单在《Software Reference Manual》中给出。
Geant4 是一个用 C++语言编写的、全新的探测器模拟工具包。读者需要有面向对象的 C+
+语言的基本知识。不需要有早期用 FORTRAN 编写的 Geant 版本的知识。虽然 Geant4 是
个相当复杂的软件系统,但对于开发探测器模拟程序来说,只需要了解相对很少的一部分。
1.2 如何使用本手册
第 2 章,”运行 Geant4-一个简单的 example”。 Geant4 非常简单的介绍。讲述了编写和运
行一个简单的 Geant4 应用程序的方法。Geant4 的新用户应该首先阅读这一章。强烈推荐在
阅读本章的时候在你的计算机上安装并运行一个 Geant4 工具包。当我们在讨论 Geant4 提供
的 example 时,我们可以运行这些例子,这将是非常有益的。在安装 Geant4 的时候,请查
阅《Installation Guide for Setting up Geant4 in Your Computing Environment》。
第 3 章, "工具包基本组成" 讨论 Geant4 的基本问题,例如类属于哪个功能模块、和物理
单位系统。然后讨论了 runs 和事件,他们都是一个模拟过程的基本组成单位。
第 4 章, "探测器定义和响应" 描述了如何创建一个特定材料和形状的探测器,并且将这个
探测器放置与电磁场中。同时,还描述了如何使探测器对粒子敏感,如何保存相关的信息。
第 5 章, "粒子跟踪和物理过程" 讨论了粒子如何在介质中输运。Geant4 的粒子跟踪方法
与物理过程一起由工具包提供。本章还讨论了粒子在 Geant4 中的定义和实现,最后列出了
一个粒子属性清单。
第 6 章, "用户行为(Actions)" 是 Geant4 提供的一些 hooks,通过这些 hooks,用户可以执
行一些特殊的、定制的任务。
第 7 章, "应用程序的通讯和控制" 概述了用户可用的、用于控制程序执行的命令。在第 2
章以后,第 6、7 两章对新用户来说是最重要的。
第 8 章, "可视化" 探测器几何、粒子径迹和事件的显示。
第 9 章,"例子" 提供了一些入门和比较高级的模拟程序代码,可以不作任何修改进行编译。
这些例子非常适用与学习使用 Geant4 工具包,并可以基于这些例子,开发更加复杂的应用
程序。
About the authors
2. 运行 Geant4 – 一个简单的例子
1.
如何编写 main() 函数
1.
一个 main() 函数的例子
2.
G4RunManager 类
3.
用户初始化(Initialization)和行为(Action)类
4.
G4UImanager 类和发送 UI 用户接口命令
5.
G4cout 和 G4cerr
2.
如何定义一个探测器的几何形状
1.
基本概念
2.
创建一个简单的几何体
3.
选择一个实体(Solid)
4.
创建一个逻辑几何体
5.
放置一个几何体
6.
创建一个物理几何体
7.
坐标系和旋转
3.
如何指定探测器的材料
1.
通常情况
2.
定义一种简单材料
3.
定义一种分子
4.
通过质量百分数定义一种混合物
5.
打印材料信息
4.
如何指定粒子
1.
粒子定义
2.
截断范围
5.
如何指定物理过程
1.
物理过程
2.
物理过程管理
3.
指定物理过程
6.
如何产生一个初级事件
1.
产生初级事件
2.
G4VPrimaryGenerator 类
7.
如何生成(Make)一个可执行的程序
1.
在一种 UNIX 环境下编译例子 1(ExampleN01)
2.
在 Windows 环境下编译例子 1(ExampleN01)
8.
如何建立一个交互式的程序接口(Session)
Geant4 User's Documents
Geant4 User's Guide
For Application Developers
1. 简介
2. 可用的接口类简述
3. 建立接口库
4. 如何使用交互式接口
9. 如何运行一个程序
1. 简介
2. 'Hard-coded' 批处理模式
3. 使用宏文件的批处理模式
4. 命令行驱动的交互模式
5. 通常情况
10. 如何可视化探测器和事件
1. 介绍
2. 可视化引擎
3. 如何将可视化引擎链接到一个可执行文件中
4. 编写一个包含可视化的 main() 函数
5. Scene, Scene Handler, 和 Viewer
6. 可视化程序接口例子
7. 常用的可视化命令
8. 探测器几何体的树型结构可视化
About the authors
2.1 如何编写 main() 函数
2.1.1 一个 main()函数的例子
main()函数包含的内容将因特定的模拟应用不同而不同,因此必须由用户提供。Geant4 工
具包不提供 main() 函数,但提供了一个简单的例子指导用户编写自己的 main()函数。程序
清单 2.1.1 是一个模拟程序所必须的 main() 函数的最简单例子。
Geant4 User's Guide
For Application Developers
Getting Started with Geant4
#include "G4RunManager.hh"
#include "G4UImanager.hh"
#include "ExN01DetectorConstruction.hh"
#include "ExN01PhysicsList.hh"