物理学习者的笔记人芳觅

Geant4--探测器从能量沉积谱到模拟真实能谱(1)

2020-02-05  本文已影响0人  人芳觅

文|梁佐佐

核辐射探测器模拟是绝大多数Geant4使用者的主要任务,今天给大家带来一个题主自己写的例子。该例子实现了“模拟一个闪烁晶体对于某放射性同位素的伽玛能谱输出”。因内容实在繁杂,大家可下载该例子自行参考。

链接: https://pan.baidu.com/s/1qRt3HOy1Fv8EmS6bqSXGVw 提取码: dknf 。

现列出该例子的主要功能:

1.  放射源的衰变模拟和物理过程,编译好程序后,运行 csi Co60.mac 即可输出能谱信息的数据文件。

2. 模拟抽样的物理过程截断值设置,诸如在EmStandardPhysics.cc、PhysicsList.cc、DetectorConstruction.cc 及宏文件中,都可以进行设置,它们之间的区别可自行谷歌。相应的语句为:

emOptions.SetStepFunction(0.1, 100*um);

void PhysicsList::SetCuts(){SetCutValue(0*mm, "proton");/*****/}

fLogicCrystal->SetUserLimits(new G4UserLimits(0.01*um));

/run/setCut 0.01 um

3.   自定义多种物理过程,并添加到一个统一的物理过程列表:EmStandardPhysics.cc、GammaPhysics.cc ---->PhysicsList.cc。

4. 怎样把能量沉积谱通过高斯抽样展宽为真实能谱,即具有一定的能量分辨率。见EventAction.cc。(这本来应该是该帖子的重点,但因当下时间紧张推迟到下次)

对能谱模拟流程作一次特别的说明:

1.  真实的探测器做实验,获得多种放射性同位素的能谱,做能量刻度、能量分辨率刻度:能量刻度——能量与chanel的对应关系;能量分辨率刻度:能量分辨率与能量的对应关系。

2.  Sigma=sqrt(a*E2+b*E+c)/2.35482; outenergy= GaussRand()*sigma+E。这里E是单事例沉积能量,而outenergy就是G4输出的能量(带有能量分辨率了)。

再来几张示意图:

另外,传授大家一个妙招,那就是改程序运行的名字!!每次exampleB1  *.mac都要哭了。在linux下:

1.     mv exampleB1.cc myname.cc

2.     vi GNUmakefile --> name := myname

3.     然后make!(很多时候我习惯先 make clean 然后再make)

喜欢的话,分享一下吧~^o^~
上一篇下一篇

猜你喜欢

热点阅读