• geant4创建自己的physicslist(以电磁物理为例)


    1 基本概念

    1.1 需要创建一个类继承 G4ModularPhysicist

    每个physics都是继承 G4PhysicsConstruct
    Physicslist 由很多 physics组成,physics里面包含很多的process,也就是物理过程,光电效应就是一个process
    在这里插入图片描述

    1.2 model的概念:实现proces,一个process可以对应多个model,也就是有多种实现方式

    在这里插入图片描述
    一个model最重要的两个方法,
    ComputeCrossSectionPerAtom():计算反应截面,反应截面越大,发生反应的概率越大,例如,2kv的电子,在这个地方是发生哪种反应,是靠这个函数决定的
    SampleSecondaries(): 模拟粒子发生的过程,比如产生光子,吸收电子的过程

    不同model实现的细节和考虑的东西可能不一样;以及考虑的数据库可能不一样,有些model,比如光电效应,在低能的时候模拟得比较好,但是有些model在高能的情况下模拟得比较好,这种时候就需要同时去调用两个model来实现更好的模拟
    在这里插入图片描述

    例如下面两个model都是处理光电效应的,但是后者是偏重低能的光电效应
    G4LivermorePhotoElectricModel
    G4PenelopePhotoElectricModel
    
    • 1
    • 2
    • 3

    二 如何自定义physics list

    2.1 为什么要自定义 physics list

    虽然geant4自定义了很多physics list,但是里面所含有的反应太多太完备,很多都用不到,在知道自己的实验发生哪种物理反应的情况下,就可以自定义一个自己的physics list

    三 、gps/pos/rot1 和 gps/pos/rot2理解

    没有添加 gps/pos/rot1
    gps/pos/rot2 0 0 1
    
    • 1
    • 2

    在这里插入图片描述

    没有添加 gps/pos/rot1
    gps/pos/rot2 0 1 0
    
    • 1
    • 2

    在这里插入图片描述

    没有添加 gps/pos/rot1
    gps/pos/rot2 1 0 0
    
    • 1
    • 2

    在这里插入图片描述

    四 production cut,tracking cut 以及step length的区别

    (1) production cut

    A . production cut的定义:

    production cut设置的是距离,如果次级例粒子的运行距离小于这个距离,他们就不会被产生,而是以能量沉积的形式被沉积下来。粒子在不同的物体里面,这个距离就会被转换成具体的能量值,本质来说这个是个能量,在判断次级粒子会不会产生的时候,是根据这个转换的能量来判断的,也就数判断次级粒子的能量是不是大于这个转换能量,从而判断次级粒子是产生还是直接转换成能量沉积

    下面是在打印的log文件里面的这个地方可以查看所设置的距离(production cut)在具体的物体里面对应的能量是多少
    在这里插入图片描述

    加速程序运行效率的一种方式:比如光电效应里面,如果不关心很低能的一些电子的运动过程,就可以设置这个阈值,让他
    以能量沉积的形式沉积下来,节省计算时间

    B. 对gamma,e-,e+,proton四种粒子同时设置他们的 production cut,只需要下面一句
    /process/em/applyCuts true  %光电效应,康普顿要加这个
    /run/setCut 10 nm 
    
    • 1
    • 2

    如果要对指定的粒子设定 production cut

    /process/em/applyCuts true  %光电效应,康普顿要加这个
    /run/setCutForAGivenParticle gamma 10 nm 
    
    • 1
    • 2

    不考虑 production cut时,可以设置如下语句,那么不管你设置多少,都不会考虑这个值。
    默认情况是不忽略的。

    /process/em/deexcitationIgnoreCut true
    
    • 1

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    C. /process/em/applyCuts true

    在这里插入图片描述
    if false
    在这里插入图片描述

    D /cuts/setLowEdge 使用

    producton cut 阈值设置过程中,默认的最低阈值是990eV,如果要设置的阈值低于这个值,就需要加上这个语句 /cuts/setLowEdge
    在这里插入图片描述
    在这里插入图片描述

    (2) tracking cut

    以前的旧版本里面,设置 tracking cut是为了使得粒子低于这个能量时,就停止最终,不再设置。

    新版的geant4
    一般来说,现在的geant4里面,不再设置tracking cut了,粒子轨迹结束停止下来的条件是能量变成0.
    在这里插入图片描述

    五 反应截面

    1 定义

    定义:入射的粒子和原子(也就是物质)之间发生相互作用的概率
    在这里插入图片描述

    2 反应截面有两种

    微分截面:如果平方cm的面积内有一个电子,粒子打上去,会有多大的几率发生碰撞。
    物质通常是360度的一个立体物质,所以e/cm2还要除以一个球面立体角度,也就是球体里面的一小部分面积对应的立体角。
    积分截面: 对微分截面的所有角度积分的结果,就是积分截面,单位是 e/cm2

    3 以康普顿散射为例,介绍其两个假设模型

    3.1 Thomson模型假设,对低能量的光子描述比较好

    下面描述的是每平方cm里面只有一个电子的电子密度情况下,粒子与物质发生反应的概率
    光子能量很低;自由电子;光子的反应是弹性碰撞
    下图公式里面的φ就是球面立体角,在这里理解为散射角
    在这里插入图片描述
    在这里插入图片描述

    3.2 Klein-Nishina 模型假设
    1)假设的前提条件

    在这里插入图片描述
    hv是入射光子的能量,hv’是散射光子的能量
    在这里插入图片描述
    在这里插入图片描述

    2)Variety of K-N cross section

    σ是表示反应截面:
    eσ:电子的反应几率
    aσ:原子的反应几率,原子可以由很多电子构成
    σtr:σa:能量被吸收或者传输的几率
    σs:多大的几率能量给到散射的光子
    σ后面什么都不加:表示发生弹性碰撞的概率

    eσtr:能量传输到电子的概率
    在这里插入图片描述

    3.3 Averge collision cross section模型假设在这里插入图片描述
  • 相关阅读:
    猿创征文|一文带你深入掌握ES6 Proxy数据代理
    时间序列的数据分析(七):数据变换
    加持智慧医疗,美格智能5G数传+智能模组让就医触手可及
    GSON转换成Long型变为科学计数法及时间格式转换异常的解决方案
    【毕业设计】单片机与NBIOT通信模块 - 单片机 物联网 stm32
    Spring-MVC使用JSR303及拦截器,增强网络隐私安全
    【Kubernetes 系列】ConfigMap 进阶 环境变量的配置及使用
    【代码随想录】算法训练营 第十七天 第六章 二叉树 Part 4
    MFC 简单绘图与文本编辑
    C++模拟OpenGL库——图片处理及纹理系统(三):图片缩放操作:简单插值&二次线性插值
  • 原文地址:https://blog.csdn.net/weixin_43528481/article/details/132405124