Geant4基础知识

上传人:E**** 文档编号:118253303 上传时间:2019-12-11 格式:DOC 页数:24 大小:156KB
返回 下载 相关 举报
Geant4基础知识_第1页
第1页 / 共24页
Geant4基础知识_第2页
第2页 / 共24页
Geant4基础知识_第3页
第3页 / 共24页
Geant4基础知识_第4页
第4页 / 共24页
Geant4基础知识_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《Geant4基础知识》由会员分享,可在线阅读,更多相关《Geant4基础知识(24页珍藏版)》请在金锄头文库上搜索。

1、Geant4基础知识 G4模拟粒子过程:建立一次模拟,在 G4 中称为一次Run;Run 建立后,需要对几何结构、物理过程进行初始化;初始化完成后就开始模拟过程了,首先发射一个粒子。在G4 中,发射一个(或一系列)粒子到所有次级粒子死亡的过程成为一次 Event。而每次发射的初始粒子则有粒子发射器进行控制。而在每一个event过程中,粒子与材料反应后会可能生成多个次级粒子,每个粒子都会有一条径 迹,称之为 track;而每一个粒子(初始的或次级的)的径迹又是由很多步组成的,称之为step。G4模拟的基本算法:A Run Start - 初始化物理模型/几何模型- An Event Start

2、- 调用粒子发射器发射粒子 - A Track Start - A Step Start - A Step End - Next Step Start - - All Step End - A Track End - Next Track Start - - All Track End - An Event End - Next Event Start - - All Event End(All Primaries Shot) - A Run End - Next Run Start - 1) main()中应该包括的内容 Geant4是一个探测器模拟工具, 但它对于某个特定的模拟程序没有固定

3、的main()函数, 用户在建立模拟程序的过程中需要提供自己的main()函数. 一个最基本的main()函数需要包括以下几个方面: G4RunManager(模拟整个过程) G4VUserDetectorConstruction(定义探测器材料, 几何形状, 灵敏区和读出方案) G4VUserPhysicsList(定义粒子种类和物理过程, 还有截断参数) G4VUserPrimaryGeneratorAction(定义了源粒子的种类, 能量, 出射方向等) 一个最简单的main()函数如下:#include G4RunManager.hh#include G4UImanager.hh #i

4、nclude ExN01DetectorConstruction.hh#include ExN01PhysicsList.hh#include ExN01PrimaryGeneratorAction.hhint main() / Construct the default run manager G4RunManager* runManager = new G4RunManager; / set mandatory initialization classes runManager-SetUserInitialization(new ExN01DetectorConstruction); ru

5、nManager-SetUserInitialization(new ExN01PhysicsList); / set mandatory user action class runManager-SetUserAction(new ExN01PrimaryGeneratorAction); / Initialize G4 kernel runManager-Initialize();/ get the pointer to the UI manager and set verbosities G4UImanager* UI = G4UImanager:GetUIpointer(); UI-A

6、pplyCommand(/run/verbose 1); UI-ApplyCommand(/event/verbose 1); UI-ApplyCommand(/tracking/verbose 1); / start a run int numberOfEvent = 3; runManager-BeamOn(numberOfEvent); / job termination delete runManager; return 0;main()首先生成一个 G4RunManager类,这个类是在主程序中用以初始化模拟信息,用来连接子程序,连接方式是通过 Set函数来完成。 例如:BDetec

7、torConstruction* detector = new BDetectorConstruction; runManager-SetUserInitialization(detector);先构造一个探测器几何,再用 SET 函数初始化。用 new申请的空间,在程序完成后需要释放空间,否则出错。注意:GEANT4中,在runManager上面说明的其他类会自动释放。所以不需要一一释放。其 他类按照重要性分为强制类和可选类。 其中几何结构类(DetectorConstruction)、物理设定类(PhysicsList)、源描述类(PrimaryGenerator)都 属于强制类,缺少任一

8、个程序都无法运行。而事件处理类(EventAction)、步数据处理类(SteppingAction)、径迹处理类 (TrackingAction)、运行处理类(RunAction)都属于可选类,用户可以通过设定这些类来获取感兴趣的数据,可以按照自己的需要添 加。包含强制类之后程序就可以运行了,但只能检验几何结构的完备性,所以为了获得数据必须设定可选类。1. Geant4的类结构 Geant4程序代码是根据这个类结构建立起来的, 类结构如下图所示. 下面就是Geant4中每个类的简单说明. 1) Run 和 Event 这些类与模拟事件相关, 产生次级粒子, 为粒子径迹模拟器提供粒子. 2)

9、Tracking 和 Track 根据粒子在探测器材料中的物理过程模拟粒子运行的轨迹, 给出粒子特定时间段在空间的位置, 或者粒子空间时间的分布.3) Geometry, Magnetic Field 和 CAD-Interface 这三个类就是用来描述探测器几何结构和探测器中电磁场的分布. 为了使探测器几何结构可以在CAD系统中进行修改, Geant4的几何体模型完全与ISO STEP标准一致. 将来Geant4中几何结构的设计将从程序设计中独立出来. 面向对象设计的方法可以让用户在不影响程序其他部分的同时改变几何参数和场. 4) Particle Definition 和 Matter 这

10、两个类用于定义粒子和探测器材料.5) Physics 它提供了粒子与探测器材料相互作用时所发生物理过程的模型, 允许用户为每次反应或每个反应道添加物理模型. 用户根据粒子的种类, 探测器材料和能量范围选择不同的物理模型. Geant4有电磁物理过程和强子物理过程模型, 同时也提供了散射截面数据库. 6) Hits 和 Digitization 这个两个类用于对用户定义的灵敏区内的响应进行采样和分析. 7) Visualization 它显示了探测器几何形状, 粒子轨迹和碰撞过程. 由于采用了面向对象设计技术来设计可视化部分, 这允许用户独立开发可视化工具, 如: OpenGL 和 OpenIn

11、ventor(为X11和Windows设计), DAWN, Postscript(via DAWN)和VRML.8) Interfaces 支持可视化用户界面以及和外加程序的交流(OODBMS, reconstruction等).User Verbose output class,定义了一个verbosity 变量; Run manager,定义了一个运行管理器runManager; User Initialization classes (mandatory),设置两个强制类 ExN02DetectorConstruction 和ExN02PhysicsList;User Action cl

12、asses,设置用户干涉类 ExN02PrimaryGeneratorAction、ExN02RunAction、 ExN02EventAction和 ExN02SteppingAction; Initialize G4 kernel,“runManager-Initialize()”,初始化GEANT4 内核。构造探测器,生成物理过程,计算截面以及其他; Get the pointer to the User Interface manager,获取 UI管理器的指针; batch mode,定义了批处理模式; interactive mode : define visualization and UI terminal; 定义了交互模式的可视化和UI终端;2.构建模型:在Geant4 中首先要建立一个最大的盒子,称为World Volume,然后往这个大盒子里面放各种各样的小盒子(部件),然后每个小盒子 (部件) 里面还可以放更小的盒子 (零件) , 放入的小盒子将自动代替大盒子原有部分。在 Geant4中,将大盒子称为 Mother Volume (母体),小盒子称为 Daughter Volume (子体)。除了World Volume之外,每个 Volume(

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号