geant4入门讲解篇-2

文| 梁佐佐

让我们继续以B1例子为主,讲解Geant4的模拟流程。如下图所示,Run是由多个Event组成的,PrimaryGenerator每执行一次,就会产生一个独立的Event,每个Event又是由多个Step组成的。Step是物理过程反应的最小模拟单元,从长度上可以小到nm甚至fm,可以通过蒙卡抽样得到当前传输粒子发生某种物理过程的信息,比如是否发生了光电效应,如果是,则会产生次级粒子即有动能的自由电子,然后继续模拟抽样该电子的物理过程,比如发生电离,沉积了多少能量等。

Geant4关键函数之间的流程关系

B1的物理过程列表用的是集成好的QBBC,包含了标准电磁相互作用过程和强子物理过程,只需要在主函数exampleB1.cc中声明调用即可。在定义好几何体之后,当又辐射粒子穿过几何体时,Geant4会根据辐射粒子的特性和几何体材料的特性进行物理过程的蒙卡抽样,通过Step给出所可能发生的物理过程。

Geant4最需要注意的地方在于根据用户的需求获得想要的信息,B1是想获得入射N个粒子后,Shape2获得多少剂量。获取信息,离不开SteppingAction.cc,step即G4Step,会给出几乎所有真实实验中可以给出的信息。

计算剂量,我们需要知道:

a. 每个粒子即Event会沉积多少能量,然后把所有粒子/Event的沉积能量相加,所有的沉积能量/Shape2质量=剂量;

b. 每个粒子与几何体相互作用时,Shape2中的每个Step沉积多少能量,然后把这些Step沉积能量相加给当前的Event。

在Geant4模拟中,我们通常是从小到大来获取统计这些能量信息:

a. 询问当前Step所处的位置是否属于Shape2几何体内,如果是,沉积能量edep相加给当前Event中的一个中间变量fEdep(在每个Event开始时,该变量fEdep初始化为0,用来统计当前Event下所有Step的沉积能量和)。

  if (!fScoringVolume) {

    const B1DetectorConstruction* detectorConstruction= static_cast<const B1DetectorConstruction*>(G4RunManager::GetRunManager()->GetUserDetectorConstruction());

fScoringVolume = detectorConstruction->GetScoringVolume();

// fScoringVolume=Shape2

  }


  // get volume of the current step

  G4LogicalVolume*volume= step->GetPreStepPoint()->GetTouchableHandle()->GetVolume()->GetLogicalVolume();


  // check if we are in scoring volume

if (volume != fScoringVolume) return;


  // collect energy deposited in this step

  G4double edepStep = step->GetTotalEnergyDeposit();

fEventAction->AddEdep(edepStep);

b. 在每个Event开始时,变量fEdep初始化为0,在结束时,将fEdep相加给Run中的变量“fEdep”,在Run结束时,当前所有入射粒子总的沉积能量也就得出来了。

void B1EventAction::BeginOfEventAction(const G4Event*)

{    

  fEdep = 0.;

}


//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......


void B1EventAction::EndOfEventAction(const G4Event*)

{

  // accumulate statistics in run action

  fRunAction->AddEdep(fEdep);

}

在接下来的教程系列中,我们将分别探究B1DetectorConstruction.cc、B1PrimaryGeneratorAction.cc、B1SteppingAction.cc 的实战应用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 文|梁佐佐 Geant4,是模拟辐射粒子与物质相互作用的可靠软件工具,有着丰富的物理过程截面库,涉及中子、伽玛(X...
    人芳觅阅读 11,048评论 2 10
  • 命令 新建项目: cocos new -l js projectname 运行项目:cocos run -p we...
    LIsPeri阅读 4,873评论 0 2
  • 目录 开场白 科学家的工作方式理论物理与实验物理理论物理与数学物理与哲学物理与科幻 现代物理中所用的数学工具微分几...
    LostAbaddon阅读 3,805评论 13 12
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,259评论 0 38
  • 谁会记得无奈如愿 谁会记得曾经无悔 在梦与梦醒时 在现世安稳时 你的心动一瞬间 永远不曾停留 只愿花开而美 不曾历...
    廷若华年阅读 299评论 0 4

友情链接更多精彩内容