资源预览内容
第1页 / 共303页
第2页 / 共303页
第3页 / 共303页
第4页 / 共303页
第5页 / 共303页
第6页 / 共303页
第7页 / 共303页
第8页 / 共303页
第9页 / 共303页
第10页 / 共303页
亲,该文档总共303页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Geant4 Users 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. Run5. 事件6. 事件发生器接口7. 事件偏倚技巧4. 探测器定义和响应探测器定义和响应1. 几何2. 材料3. 电磁场4. Hits5. 数字化6. 对象的持续性5. 粒子跟踪和物理过程粒子跟踪和物理过程1. 粒子跟踪2. 物理过程3. 粒子4. 产物阈值与截断值5. 分区域截断Geant4 Users DocumentsVersion: Geant4 5.2 June 20036. 用户行为用户行为(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+编译 Geant47. 开发和调试工具About the authors1. 简介简介1.1 本手册内容1.1 本手册内容The Users Guide for Application Developers是用户在学习和开发基于 Geant4 的探测器模拟程序时,应该阅读的第一手册。手册主要讲述:向初学者介绍面向对象的 Geant4 探测器模拟工具包,Geant4 Users GuideFor Application Developers介绍了各种可用工具和他们的使用方法,并且提供了一些对开发、运行模拟程序非常有用的信息手册只是对工具包的一个概述,而不是详尽的描述。除一些特殊的工具外,没有讨论相关的物理过程。Geant4 中所涉及的相关物理过程在Physics Reference Manual中有详细讨论。Geant4 类的功能和设计细节可以在 Users Guide for Toolkit Developers中找到,它的全部代码清单在Software Reference Manual中给出。Geant4 是一个用 C语言编写的、全新的探测器模拟工具包。读者需要有面向对象的 C语言的基本知识。不需要有早期用 FORTRAN 编写的 Geant 版本的知识。虽然 Geant4 是个相当复杂的软件系统,但对于开发探测器模拟程序来说,只需要了解相对很少的一部分。1.2 如何使用本手册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 authors2. 运行运行 Geant4 一个简单的例子一个简单的例子1. 如何编写如何编写 main() 函数函数1. 一个一个 main() 函数的例子函数的例子2. G4RunManager 类类3. 用户初始化(用户初始化(Initialization)和行为()和行为(Action) 类) 类4. G4UImanager 类和发送类和发送 UI 用户接口命令用户接口命令5. G4cout 和和 G4cerr2. 如何定义一个探测器的几何形状如何定义一个探测器的几何形状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 Users DocumentsGeant4 Users GuideFor Application Developers1. 简介简介2. 可用的接口类简述可用的接口类简述3. 建立接口库建立接口库4. 如何使用交互式接口如何使用交互式接口9. 如何运行一个程序如何运行一个程序1. 简介简介2. Hard-coded 批处理模式批处理模式3. 使用宏文件的批处理模式使用宏文件的批处理模式4. 命令行驱动的交互模式命令行驱动的交互模式5. 通常情况通常情况10. 如何可视化探测器和事件如何可视化探测器和事件1. 介绍介绍2. 可视化引擎可视化引擎3. 如何将可视化引擎链接到一个可执行文件中如何将可视化引擎链接到一个可执行文件中4. 编写一个包含可视化的编写一个包含可视化的 main() 函数函数5. Scene, Scene Handler, 和和 Viewer6. 可视化程序接口例子可视化程序接口例子7. 常用的可视化命令常用的可视化命令8. 探测器几何体的树型结构可视化探测器几何体的树型结构可视化About the authors2.1 如何编写如何编写 main() 函数函数2.1.1 一个2.1.1 一个main()函数的例子函数的例子main()函数包含的内容将因特定的模拟应用不同而不同,因此必须由用户提供。Geant4 工具包不提供main()函数,但提供了一个简单的例子指导用户编写自己的 main()函数。程序清单 2.1.1 是一个模拟程序所必须的 main() 函数的最简单例子。Geant4 Users GuideFor Application DevelopersGetting Started with Geant4#include G4RunManager.hh#include G4UImanager.hh#include ExN01DetectorConstruction.hh#include ExN01PhysicsList.hhmain()函数通过 Geant4 提供的两个类 G4RunManager 和 G4UImanager,和另外三个类,ExN01DetectorConstruction, ExN01PhysicsList 和 ExN01PrimaryGeneratorAction, 它们是从Geant4 提供的类派生的。下一节将对这些类进行讨论。2.1.22.1.2G4RunManagerG4RunManager类类main()函数必须做的第一件事是创建一个 G4RunManager 类的实例。 这是 Geant4 内核中唯一的一个运行管理类, 它必须在main()函数中显式的创建。它控制程序的流程并在一个 run#include ExN01PrimaryGeneratorAction.hhint main()/ 构造缺省 run managerG4RunManager* runManager = new G4RunManager;/ 设置必须的初始化类runManager-SetUserInitialization(new ExN01DetectorConstruction);runManager-SetUserInitialization(new ExN01PhysicsList);/ 设置必须的用户行为类runManager-SetUserAction(new ExN01PrimaryGeneratorAction);/ 初始化 G4 内核runManager-initialize();/ 获取指向 UI manager 的指针并设置 verbositiesG4UImanager* UI = G4UImanager:GetUIpointer();UI-ApplyCommand(/run/verbose 1);UI-ApplyCommand(/event/verbose 1);UI-ApplyCommand(/tracking/verbose 1);/ 启动一个 runint numberOfEvent = 3;runManager-BeamOn(numberOfEvent);/ 任务结束delete runManager;return 0;代码清单 2.1.1中管理事件循环。当 G4RunManager 被创建时,其它的管理类同时被创建。它们在G4RunManager 被删除的时候自动删除。运行管理类同时管理初始化进程,包括在用户初始化类中的方法。我们必传
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号