每个physics都是继承 G4PhysicsConstruct
Physicslist 由很多 physics组成,physics里面包含很多的process,也就是物理过程,光电效应就是一个process
一个model最重要的两个方法,
ComputeCrossSectionPerAtom():计算反应截面,反应截面越大,发生反应的概率越大,例如,2kv的电子,在这个地方是发生哪种反应,是靠这个函数决定的
SampleSecondaries(): 模拟粒子发生的过程,比如产生光子,吸收电子的过程
不同model实现的细节和考虑的东西可能不一样;以及考虑的数据库可能不一样,有些model,比如光电效应,在低能的时候模拟得比较好,但是有些model在高能的情况下模拟得比较好,这种时候就需要同时去调用两个model来实现更好的模拟
例如下面两个model都是处理光电效应的,但是后者是偏重低能的光电效应
G4LivermorePhotoElectricModel
G4PenelopePhotoElectricModel
虽然geant4自定义了很多physics list,但是里面所含有的反应太多太完备,很多都用不到,在知道自己的实验发生哪种物理反应的情况下,就可以自定义一个自己的physics list
没有添加 gps/pos/rot1
gps/pos/rot2 0 0 1
没有添加 gps/pos/rot1
gps/pos/rot2 0 1 0
没有添加 gps/pos/rot1
gps/pos/rot2 1 0 0
production cut设置的是距离,如果次级例粒子的运行距离小于这个距离,他们就不会被产生,而是以能量沉积的形式被沉积下来。粒子在不同的物体里面,这个距离就会被转换成具体的能量值,本质来说这个是个能量,在判断次级粒子会不会产生的时候,是根据这个转换的能量来判断的,也就数判断次级粒子的能量是不是大于这个转换能量,从而判断次级粒子是产生还是直接转换成能量沉积
下面是在打印的log文件里面的这个地方可以查看所设置的距离(production cut)在具体的物体里面对应的能量是多少
加速程序运行效率的一种方式:比如光电效应里面,如果不关心很低能的一些电子的运动过程,就可以设置这个阈值,让他
以能量沉积的形式沉积下来,节省计算时间
/process/em/applyCuts true %光电效应,康普顿要加这个
/run/setCut 10 nm
如果要对指定的粒子设定 production cut
/process/em/applyCuts true %光电效应,康普顿要加这个
/run/setCutForAGivenParticle gamma 10 nm
不考虑 production cut时,可以设置如下语句,那么不管你设置多少,都不会考虑这个值。
默认情况是不忽略的。
/process/em/deexcitationIgnoreCut true
if false
producton cut 阈值设置过程中,默认的最低阈值是990eV,如果要设置的阈值低于这个值,就需要加上这个语句 /cuts/setLowEdge
以前的旧版本里面,设置 tracking cut是为了使得粒子低于这个能量时,就停止最终,不再设置。
新版的geant4
一般来说,现在的geant4里面,不再设置tracking cut了,粒子轨迹结束停止下来的条件是能量变成0.
定义:入射的粒子和原子(也就是物质)之间发生相互作用的概率
微分截面:如果平方cm的面积内有一个电子,粒子打上去,会有多大的几率发生碰撞。
物质通常是360度的一个立体物质,所以e/cm2还要除以一个球面立体角度,也就是球体里面的一小部分面积对应的立体角。
积分截面: 对微分截面的所有角度积分的结果,就是积分截面,单位是 e/cm2
下面描述的是每平方cm里面只有一个电子的电子密度情况下,粒子与物质发生反应的概率
光子能量很低;自由电子;光子的反应是弹性碰撞
下图公式里面的φ就是球面立体角,在这里理解为散射角
hv是入射光子的能量,hv’是散射光子的能量
σ是表示反应截面:
eσ:电子的反应几率
aσ:原子的反应几率,原子可以由很多电子构成
σtr:σa:能量被吸收或者传输的几率
σs:多大的几率能量给到散射的光子
σ后面什么都不加:表示发生弹性碰撞的概率
eσtr:能量传输到电子的概率