Day01 Geant4学习

发布于:2025-09-13 ⋅ 阅读:(18) ⋅ 点赞:(0)

Day01 geant4学习

一、运行一个简单的geant4实例B1

​ 用于模拟粒子与物理之间反应的东西,是一堆代码,若需自己实验,需要自己写程序,但自己写的代码会应用到geant4的原代码;最好了解的就是看实例,并了解,自己写程序的办法就是根据已有的实例去进行修改。

geant4 example:http://geant4-userdoc.web.cern.ch/geant4-userdoc/Doxygen/examples_doc/html/README_basic.html

二、如何运行一个geant4 simulation:

在.cc文件中可选择运行方式

批量模式:所有的都放在代码中,进入可执行文件,自动运行,不需要一行一行输入命令代码

交互模式:已写好代码,有一个图形界面,可以看到建立的几何模型,可以一条一条代码进行设置进行模型;比如发射一个粒子,发射两个粒子,更改几何模型,但不能太大规模

三、运行B1实例:(通用方法)
  1. (可选)把B1实例拷贝到自己的工作位置:cp -r/usr/local/geant4.10.07.b01/share/Geant4-10.7.0/examples/basic/B1/mnt/hgfs/shared

  2. 进入B1,新建一个文件夹,命名为build,该文件夹的名字任意:cd B1;mkdir build

  3. 进入build文件夹,在终端打开,利用cmake来构建项目:cd build; cmake …

  4. 生成了makefile文件之后,再make从而生成可执行文件:make

  5. 运行可执行文件: ./exampleB1;此时会弹出图形界面

运行可执行文件之后实例便跑起来了,会出现用户交互图形界面,可以再session输入自己的命令,比如输入发射多少粒子,也可以打开readme文件,里面有说明什么做法用命令要用什么样的代码,旁边的左边是常用的命令,可以参考使用

在主函数里面设置程序的运行方式batch mode或者interactive mode

批量模式: ./exampleB1 run1.mac(此处run1是文件名);此时不会弹出图形界面,

将相关代码写在.mac文件中,让运行可执行文件时后面+文件名.mac,比如:

/gun/particle gamma 发射γ粒子

/gun/energy 6 MeV 发射6MeV

/run/beamOn 5 发射5个粒子

proton 质子

生成中:run 0 starts表示开始跑第一个模型,end of local run表示结束

弹出图形界面由主程序中代码决定:主程序入口是在B1文件夹中的.cc文件。main函数的ui有关,函数跳跃

​ 最终在新建的build文件夹中的vis.mac文件中设置,是自带的,如果有更高的需求可以自己去更改,但是一般都是写好的,设置好了图形界面的一些东西,呈现的自己建模的图形界面多大,需不需要网格什么的

四、浅谈geant4

geant4实质是一堆代码,用户在利用geant4来进行模型的时候,是通过编写一个程序,编写的程序是按照一定的规则来利用geant4代码(实际上是继承论geant4里面定义好的类)

五、geant4的规则(概念)
  1. Run

​ 假设一次模拟要发射1000个光子,那么从第一个光子开始反应一直到这1000个光子反应结束,其中包括产生的次级粒子也结束相应的反应,称之为1次run。即完完整整地跑一次你写的程序

  1. event

​ 假设要模拟1000个光子打靶,那么对这个run来说就有1000个event。event指每一个入射粒子从反应到结束的过程,其中也包括它产生的刺激粒子的反应到结束的过程,成为一个事件event

  1. step

​ 步骤,进行模拟的最小单元。与物质反应的最小的一步,每走一步都是一个step;发射开始,到接触物质,反应,结束。每一个step都有两个点,start of step point以及end of step point。

PreStepPoint以及PostStepPoint

  1. track

    ​ 用来记录粒子在每个step中的信息的,例如位置,能量,动量.例如,假设每一个粒子都有一个属于自己的id,会记录自己的轨迹状态信息就是track,当他发生反应时,就会产生新的id。用于返回我们想要的物理信息(数据)

六、假设自己来写一个程序进行模拟实现,有哪些必要的部分:
  1. 构建几何模型,建立4 * 4 * 4立方厘米的金属铝板
  2. 设置粒子源,类型、能量、位置…
  3. 确定要统计的物理量,能量沉积、能谱…并对此进行统计结果的输出
  4. 物理过程:光电效应等过程产生的动量、能量、方向等物理过程geant4已经写好了,不需要我们去考虑,我们只需要设置几何模型、粒子源等参数注册即可

每个代码的作用(每个代码写在哪里):

inclued头文件;src源文件;主函数.cc文件

构建几何模型:修改几何模型,包括尺寸、大小、位置以及材料在B1DetectorConstruction中进行编写修改。(后置名字就是DetactorConstruction(专业约定),前面B1自己取用于区分)

设置粒子源:设置粒子源、类型、能量、位置等在B1PrimaryGeneratorAction中进行编写修改,还可以到.mac文件中进行修改

确定要统计的物理量:能量沉积、能谱在B1EventAction、B1RunAction、B1SteppingAction

物理过程:可以自己写;初始化类:exampleB1.cc、B1ActionInitialization(实例的初始化)