欢迎来到天天文库
浏览记录
ID:20419392
大小:156.00 KB
页数:24页
时间:2018-10-13
《geant4基础知识》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Geant4基础知识G4模拟粒子过程:建立一次模拟,在G4中称为一次Run;Run建立后,需要对几何结构、物理过程进行初始化;初始化完成后就开始模拟过程了,首先发射一个粒子。在G4中,发射一个(或一系列)粒子到所有次级粒子死亡的过程成为一次Event。而每次发射的初始粒子则有粒子发射器进行控制。而在每一个event过程中,粒子与材料反应后会可能生成多个次级粒子,每个粒子都会有一条径迹,称之为track;而每一个粒子(初始的或次级的)的径迹又是由很多步组成的,称之为step。G4模拟的基本算法:ARunStart->初始化
2、物理模型/几何模型->AnEventStart->调用粒子发射器发射粒子->ATrackStart->AStepStart->AStepEnd->NextStepStart->……->AllStepEnd->ATrackEnd->NextTrackStart->……->AllTrackEnd->AnEventEnd->NextEventStart->……->AllEventEnd(AllPrimariesShot)->ARunEnd->NextRunStart->……1)main()中应该包括的内容Geant4是一个探测
3、器模拟工具,但它对于某个特定的模拟程序没有固定的main()函数,用户在建立模拟程序的过程中需要提供自己的main()函数.一个最基本的main()函数需要包括以下几个方面:G4RunManager(模拟整个过程)G4VUserDetectorConstruction(定义探测器材料,几何形状,灵敏区和读出方案)G4VUserPhysicsList(定义粒子种类和物理过程,还有截断参数)G4VUserPrimaryGeneratorAction(定义了源粒子的种类,能量,出射方向等)一个最简单的main()函数如下:#i
4、nclude"G4RunManager.hh"#include"G4UImanager.hh"#include"ExN01DetectorConstruction.hh"#include"ExN01PhysicsList.hh"#include"ExN01PrimaryGeneratorAction.hh"intmain(){//ConstructthedefaultrunmanagerG4RunManager*runManager=newG4RunManager;//setmandatoryinitialization
5、classesrunManager->SetUserInitialization(newExN01DetectorConstruction);runManager->SetUserInitialization(newExN01PhysicsList);//setmandatoryuseractionclassrunManager->SetUserAction(newExN01PrimaryGeneratorAction);//InitializeG4kernelrunManager->Initialize();//get
6、thepointertotheUImanagerandsetverbositiesG4UImanager*UI=G4UImanager::GetUIpointer();UI->ApplyCommand("/run/verbose1");UI->ApplyCommand("/event/verbose1");UI->ApplyCommand("/tracking/verbose1");//startarunintnumberOfEvent=3;runManager->BeamOn(numberOfEvent);//jobt
7、erminationdeleterunManager;return0;}main()首先生成一个G4RunManager类,这个类是在主程序中用以初始化模拟信息,用来连接子程序,连接方式是通过Set函数来完成。例如:BDetectorConstruction*detector=newBDetectorConstruction;runManager->SetUserInitialization(detector);先构造一个探测器几何,再用SET函数初始化。用new申请的空间,在程序完成后需要释放空间,否则出错。注意:GE
8、ANT4中,在runManager上面说明的其他类会自动释放。所以不需要一一释放。其他类按照重要性分为强制类和可选类。其中几何结构类(DetectorConstruction)、物理设定类(PhysicsList)、源描述类(PrimaryGenerator)都属于强制类,缺少任一个程序都无法运行。而事件处理类(Ev
此文档下载收益归作者所有