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

news2024/11/19 11:21:11

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

二 如何自定义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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

四 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 

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

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

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

/process/em/deexcitationIgnoreCut true

在这里插入图片描述

在这里插入图片描述

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.
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1017855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云无影云电脑有什么用?常用使用场景说明

阿里云无影云电脑是一种易用、安全、高效的云上桌面服务,阿里云无影云电脑可用于高数据安全管控、高性能计算等要求的金融、设计、视频、教育等领域,适用于多种办公场景,如远程办公、多分支机构、安全OA、短期使用、专业制图等。阿里云百科来…

ES6(二)

文章目录 对象的扩展对象的展开运算符Object.is()Object.assign() 字符串的扩展includes(), startsWith(), endsWith()repeat()padStart(),padEnd()trimStart(),trimEnd() 运算符扩展指数运算符 Set方法应用 Map方法 对象的扩展 ES6 允许在大括号里面&a…

DC系列靶机5通关教程

信息收集 主机扫描 sudo arp-scan -l端口扫描 nmap -p- -A 192.168.16.172漏洞发现 浏览器访问靶机IP 在Contact找到类似提交数据的地方 点击submit,数字发生变化。不断刷新的话,数字依然会发生变化 使用bp抓包发送重发器查看数据包 再次点击发送查看…

修改了Android Studio 中的这两个面板配置后,代码写的更舒服了~

本文已同步发表于我的微信公众号,微信搜索 代码说 即可关注,欢迎与我沟通交流。 一、 增加打开文件的数量及展示方式 如图,默认AS中打开的文件个数是10个,当超过10个时,超过的部分会直接隐藏,甚至会直接把之…

TCP详解之重传机制

TCP详解之重传机制 TCP 实现可靠传输的方式之一,是通过序列号与确认应答。 在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回一个确认应答消息,表示已收到消息。 但在错综复杂的网络,并不一定能如上图那么顺…

Oracle SQL操作和查询

文章目录 一、SQL简介二、数据类型讲解三、创建表和约束1.表结构2. 更新表结构3.约束 四、DML语句1.INSERT2.序列号3.UPDATE4.删除语句5.多行插入 五、DQL语句1.简单查询语句1.1 知识点讲解1.2 案例讲解 2.聚合函数3.分组查询4.多表查询 一、SQL简介 SQL是结构化查询语言&…

Procmon.exe在cuckoo中的使用

背景 最近研究了下procmon.exe,该工具用途可大了,Procmon是微软出品用于监视Windows系统里程序的运行情况,监视内容包括该程序对注册表的读写、 对文件的读写、网络的连接、进程和线程的调用情况,procmon 是一款超强的系统监视软…

typescript字面量类型

typescript 字面量介绍 在TypeScript中,字面量是指在代码中直接使用的具体值,如字符串、数字、布尔值等。字面量类型是TypeScript中的一种特殊类型,它用于定义一组有限的值,并且可以在定义变量或函数时使用字面量作为具体值&…

基于Java的养老院管理系统的设计与实现(亮点:多角色、登录验证码、留言反馈)

养老院管理系统 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序(小蔡coding)2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述 五、系统实现5.1 养老院…

【基础篇】四、SpringBoot整合第三方技术

文章目录 1、SpringBoot整合Junit2、SpringBoot整合MyBatis3、SpringBoot整合MyBatisPlus4、SpringBoot整合Druid 1、SpringBoot整合Junit 步骤: 导入测试对应的starter测试类使用SpringBootTest修饰使用自动装配的形式添加要测试的对象 SpringBootTest class Spri…

IDEA(2023)解决运行乱码问题

😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。 🎆学习格言:不读书的人,思想就会停止。——狄德罗 ⛪️个人主页:进入博主主页 🗼专栏系列:无 &#x1f33c…

Nginx 相关介绍(Nginx是什么?能干嘛?)

Nginx的产生 没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器,基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator…

【算法专题突破】滑动窗口 - 串联所有单词的子串(15)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:30. 串联所有单词的子串 - 力扣(LeetCode) 这道题其实也很好理解,看一下示例就基本知道是什么意思了, 主要就是找 s 里面…

day21算法

常见的七种查找算法: ​ 数据结构是数据存储的方式,算法是数据计算的方式。所以在开发中,算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词,如果各位铁粉有疑惑,可以先看一下哥们后面录制的数据结构…

Ubuntu不能上网解决办法

问题及现象 Ubuntu的虚拟机(18.04)总是莫名就不能上网了。 使用ifconfig -a 查看,ensxx(xx为虚拟机分配的id号)对应的网卡有mac地址,但是没有分配ip地址。 Network中也没有Wired的选项。 临时解决方案 使…

深入学习 Redis Cluster - 集群缩容(全网最详细)

目录 一、集群缩容 1.1、准备环境 1.2、第一步,删除从节点 1.3、第二步,重新分配 slots 第一次分配:分配给 106 1365 个 slots 第二次分配:分配给102 1365 个 slots 此时查看集群状态,可以看到 110 节点不再持有…

【技术分享】NetLogon于域内提权漏洞(CVE-2020-1472)

一、漏洞介绍 CVE-2020-1472是一个Windows域控中严重的远程权限提升漏洞。攻击者在通过NetLogon(MS-NRPC)协议与AD域控建立安全通道时,可利用该漏洞将AD域控的计算机账号密码置为空,从而控制域控服务器。该漏洞适用于Win2008及后…

C#实现钉钉自定义机器人发送群消息帮助类

一、自定义机器人发送群消息使用场景 在企业中,针对一些关键指标内容(如每天的生产产量、每天的设备报警信息等信息),需要同时给多人分享,此时就可以将需要查看这些数据的人员都拉到一个群中,让群里的机器人将这些关键指标内容推送到群里即可【(目前已实现在钉钉群里创建…

Pytorch-CNN-Mnist

文章目录 model.pymain.py网络设置注意事项及改进运行截图 model.py import torch.nn as nn class CNN_cls(nn.Module):def __init__(self,in_dim28*28):super(CNN_cls,self).__init__()self.conv1 nn.Conv2d(1,32,1,1)self.pool1 nn.MaxPool2d(2,2)self.conv2 nn.Conv2d(3…

2023上半年软件设计师上午题目总结

1 在计算机中系统总线用于连接 主存及外设部件 2 在由高速缓存、主存、硬盘构成的三级存储体系中,CPU执行指令时需要读取数据,DMA控制器和中断CPU发出的数据地址是 主存物理地址 。 DMA(Direct Memory Access)控制器是计算机硬…