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

文|梁佐佐

核辐射探测器模拟是绝大多数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^~
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第三章 语音信号特征分析 语音合成音质的好坏,语音识别率的高低,都取决于对语音信号分析的准确度和精度。例如,利用线...
    锅锅Iris阅读 13,530评论 3 8
  • 一、【放疗专题】什么是放疗,它真的可以治病吗? 选题理由:首先让读者了解肿瘤的放疗是什么(放疗定义)?放疗是如何能...
    琉森521阅读 5,703评论 1 9
  • 清晨,迷迷糊糊起来去卫生间,但见客厅光芒四射,金碧辉煌,似有祥瑞之兆。好好一个客厅秒变维也纳金色大厅,瞬间穿越。 ...
    行云流水joy阅读 3,008评论 0 1
  • 新学期开始了,为了有明确的工作目标,我制定了如下的工作计划:
    bqxlhy阅读 2,707评论 0 1
  • 近日抱恙,赋闲在家,拾得偶趣翻《诗经》,突然看到一首《小星》:"嘒彼小星,三五在东。肃肃宵征,夙夜在公。实命不同!...
    桃桃3809阅读 3,671评论 1 2