2009-4-141粒子物理与核物理实验中的数据分析杨振伟清华大学第七讲:Geant4的探测器模拟介绍(2)2009-4-142上讲回顾Geant4简介模拟粒子穿过物质的工具包广泛应用于粒子物理、核物理、加速器物理、医学物理、空间科学等领域基本概念和重要的用户类安装Geant4使用Geant4:探测器几何与材料2009-4-143本讲要点物理过程粒子定义物理过程定义Run和Event等基本概念2009-4-144Geant4模拟的基本流程设计探测器(几何、材料等)粒子在探测器中可能发生的各种反应(物理过程)粒子和物理过程的定义在相应的PhysicsList类中,如ExN01PhysicsList预备模拟的事例(粒子定义)进入探测器模拟粒子在探测器中的各种可能过程敏感探测器中信号记录信号数字化与读出从数据重建与分析处理修改探测器设计和物理过程?2009-4-145Geant4中的粒子Geant4中的粒子由三层类来表示。G4DynamicParticle赋予粒子运动学(动态)属性,如动量,能量,自旋方向等等。G4ParticleDefinition粒子的“静态”特征量,如电荷、质量、寿命等等。没有能量、方向等信息G4Track将动态粒子放到具体环境中,给出位置,几何信息等等。2009-4-146粒子定义(1)首先要定义粒子,即模拟中可能产生的各种粒子Geant4提供了各种类型的粒子:1.普通粒子:如电子、质子、光子等2.共振态粒子:寿命短,如矢量介子等3.核子:如氘核、氦核及重离子等4.夸克、胶子等定义的附带了粒子的各种信息:如名称、质量、电荷、自旋、寿命、衰变道等2009-4-147Geant4中粒子分以下六大类leptonmesonbaryonbosonshortlivedion粒子定义(2)2009-4-148PhysicsList中定义粒子在ConstructParticle()函数中定义粒子定义(3)voidExN01PhysicsList::ConstructParticle(){G4Geantino::GeantinoDefinition();//定义geantinoG4Proton::ProtonDefinition();//定义质子G4Positron::PositronDefinition();//正电子G4MuonPlus::MuonPlusDefinition();//μ+G4AntiNeutrinoE::AntiNeutrinoEDefinition();//反电子中微子...}但是如果过程复杂,需要定义的粒子非常多,需要有更方便的定义方法2009-4-149粒子定义(4)voidExN01PhysicsList::ConstructParticle(){ConstructLeptons();//构造轻子ConstructBosons();//构造玻色子...}voidExN01PhysicsList::ConstructLeptons(){//定义所有轻子G4LeptonConstructorpConstructor;pConstructor.ConstructParticle();}voidExN01PhysicsList::ConstructBosons(){//定义所有玻色子G4BosonConstructorpConstructor;pConstructor.ConstructParticle();}...除了轻子、玻色子还包括:G4MesonConstructorG4BaryonConstructorG4IonConstructorG4ShortlivedConstructor如果对过程中可能需要的粒子不确定,可以用这种办法把所有粒子都构造出来。2009-4-1410Geant4对不同粒子的处理及截断Geant4对不同类型粒子的处理不同,如:1.稳定/长寿命粒子:径迹模拟2.K0:直接被重定义为K0_L或K0_S,然后模拟径迹3.短寿命粒子:直接衰变,而不模拟径迹有些过程需要设置截断Geant4统一采用长度截断,内核自动将长度换算为能量,换算出的能量依赖于不同的物质。SetCuts()函数,见ExN01PhysicsList或ExN02PhysicsList2009-4-1411Geant4的物理过程要模拟真实的物理,必须首先知道粒子在物质中哪些相互作用是昀主要的,或者说哪些物理过程是重要的。Geant4提供了7大类物理过程描述粒子与物质的相互作用。$G4INSTALL/data目录存放物理模型的数据electromagnetic:电磁相互作用过程(标准的和低能的)hadronic:强子相互作用过程(纯强子、辐射衰变、光电-核)decay:衰变过程photolepton-hadron:光轻子与强子的相互作用过程optical:光学的光子过程parameterization:参数化过程(即fastsimulation)transportion:输运过程要根据事例中的粒子以及材料,指定必要的物理过程其中输运过程是必须添加的过程。2009-4-1412物理过程的添加voidExN01PhysicsList::ConstructProcess(){AddTransportation();//添加输运过程}voidExN02PhysicsList::ConstructProcess(){AddTransportation();//添加输运过程//添加电磁过程,自定义,//见voidExN02PhysicsList::ConstructEM()ConstructEM();//添加一般过程(实际上是衰变过程),自定义,//见voidExN02PhysicsList::ConstructGeneral()ConstructGeneral();}2009-4-1413产生PrimaryEvent必须指定如何产生一个事件,才能进行模拟,在G4VUserPrimaryGeneratorAction的具体类中用G4VPrimaryGenerator的具体类来完成。有两种PrimaryGeneratorG4ParticleGun:发射指定能动量的特定粒子G4HEPEvtInterface:利用提供的接口,读取外部产生子产生的事例。外部产生子的结果按照HEPEvt的格式写成ASCII文件2009-4-1414G4ParticleGun//参数n_particle表示一次发射的粒子数目G4ParticleGun*particleGun=newG4ParticleGun(n_particle);G4ParticleGun有很多设置函数,如:SetParticleDefinition(G4ParticleDefinition*);//粒子类型SetParticleMomentumDirection(G4ThreeVector);//动量方向SetParticleEnergy(G4double);//能量SetParticlePosition(G4ThreeVector);//发射位置...粒子枪的属性设置好之后,才调用generatePrimaryVertex()函数,产生事例的主顶点。粒子枪本身不提供随机性,发射的粒子都是指定的。如果需要按照某分布随即发射粒子,需要在调用generatePrimaryVertex()之前,利用Geant4提供的随机数产生子自己写出需要的分布。参见ExN01PrimaryGeneratorAction::generatePrimaries(G4Event*)函数2009-4-1415G4RunRun是Geant4模拟的最大单元。一次Run中,探测器几何、敏感探测器、物理过程都不能改变。G4RunManager调用BeanOn()时开始一次Run。可以包含很多Event。G4UserRunActio类中有BeginOfRunAction()和EndOfRunAction()。前者主要用于进行run号设定、直方图或TTree,TFile定义等,后者主要进行存储直方图或者文件等。在调用BeanOn()的过程中,将调用5种(如存在)用户作用类:G4UserRunAction,G4UserEventAction,G4UserStackingAction,G4UserTrackingAction,G4UserSteppingAction在概念上,一个run收集的是同一个探测器条件下的事例。2009-4-1416G4EventG4Event表示一个事例。一个event对象包含有模拟事例的所有输入和输出信息,主要是4大类:主顶点和主粒子、径迹、击中以及数字化集合。G4UserEventAction类中有BeginOfEventAction()和EndOfEventAction(),前者可以作事例开始的预备工作,后者可以将事例的有用信息提取出来,填充到直方图或者TTree中。用作输入的原初顶点和粒子列表所收集的各种在探测器的击中或响应所收集的各种运动轨迹信息(可选项)所收集的各种数字化信息(可选项)2009-4-1417在Geant4中的迹迹是粒子在探测器中留下的痕迹。只体现出当时粒子的位置和物理量。步是粒子径迹的一小段“Δ”信息。在下列情况下,迹要被删除:粒子径迹并不是步的集合。迹离开广义中的大体积迹消失(例如发生了衰变)粒子动能为零,在(AtRest)时也无其它物理过程的要求。用户决定要将其删除。在每个事例结尾,不保留迹的目标模块。用运功轨迹的类目标模块来记录粒子的径迹。G4TrackingManager负责管理处理迹的进程,迹由G4Track类表示。2009-4-1418在Geant4中的步每一步都有两个点和粒子的“Δ”信息(在该步的能损,所需的飞行时间,等等)。在每一点上,都应该知道其所处在的体积(与材料)内。如有一步跨越边界,该步的截止点物理上就设在该边界上,逻辑上该点属于下一个体积。由于一步能知道两个体积的物质材料,因此可以模拟在边界发生的跃迁辐射或折射过程。G4SteppingManager类负责管理步的处理,步由G4Step类表示。步的起点步的终点步边界2009-4-1419跟踪与物理过程处理Geant4迹跟踪是很普遍的。它无关于•粒子的种类•粒子所涉及的物理过程它给所有物理过程提供了•帮助确定步的长度的机会•帮助对任何可能对迹的物理量进行改变的机会•对迹状态改变给出建议的机会•例如,中止,搁置或删除。2009-4-1420物理过程与步每个物理过程有着下列一个或几个结合的性质。AtRest•例如muon在静止时衰变AlongStep•例如期仑科夫过程PostStep•例如在飞行中衰变AtRestAlongStepPostStep物理过程需要指明发生在AtRest,AlongStep,或PostStep上,且需要给出顺序。如下面函数调用后面的3个参数分别表示这三个状态下该物理过程是否发生以及顺序:pmanager-AddProcess(newG4MultipleScattering,-1,1,1);详见ExN02PhysicsList.cc中ConstructEM()部分。“-1”表示不发生物理过程。2009-4-1421物理过程的顺序有的物理过程的顺序很重要如果包含这三个过程,则它们必须以如下顺序放在所有其它过程的后面...multiplescatteringionizationtransportation2009-4-1422Geant4是如何运行的SteppingManagerPhysicsProcessParticleChangeStepTrackLogicalVolumeSensitiveDetectorGetPhysicalInteractionLengthSelectShortestDoItFillUpdateUpdateIsSensit