使用GEANT4的模拟技术1
简介
本文来源于意大利国家核物理研究院INFN的08年的slides。原文名称simulation techniques using geant4,原文主要讲述的是开发geant4用户程序的方法。这里做个笔记包括个人感想
GEANT4介绍------工具包+用户程序
GEANT4提供的是用户程序和工具包,以及若干文档。
GEANT4是一个工具包
这里强调他是一种工具包,英文是TOOLKIT,也就是说,提供的是一些库文件、计算核心以及数据库。而不是提供特定的程序。这样可以带来很强的灵活性, 还能保证G4本身的开发的高度可维护性,这个可维护性是我想的,暂时没找到合适的、强大的根据。由于是工具包, 因此,用户运行程序不能独立于G4内核以及数据库,虽然也有人将模拟的程序集成到其他软件, 可以部分提取G4内核和部分数据库, 但是不如将整个内核与部分数据库提取,经过压缩后, 体积并不大。另外一个关键问题是,由于G4是只提供库文件、内核以及数据库的, 所以用户必须写出自己的代码来, 唯有如此,才能完成特地的任务。
导致的结果
不存在G4的默认值
这句话我不太赞同, 现在新版本已经将一些物理过程打包, 具体可以参考心版本的一些例子,他们的调用方式可以看出来这一点。
必须提供必要的信息来设置自己的模拟
所谓的必要信息其实就是探测器几何、源粒子发射以及物理模型的构造。
必须仔细谨慎选择用哪种工具来使用
指导---提供了许多例子
例子包括novice 和 advance,其实这是老版本的说法,对于新版本,例子novice其实已经删除了,正如文章所说,novice的作用仅仅是帮助用于了解g4。而关键的是advanced,这一部分才是实际应用。因此对于每个学习G4的人,至少都要看看ADVANCED例子。
基本概念
必须做的
- 描述实验设置
- 为模拟的输入提供初始粒子
- 确定使用g4提供的哪些物理模型和粒子,确定模拟精度,
通过设定产生和追踪次级粒子的截断值。
也许想要做的
- 与内核进行交互,从而控制模拟
- 可视化模拟设置或结果
- 产生柱状图,元组tuples等,以便进行进一步分析。
与G4内核交互
geant4默认提供了一些工具可以使用
- 告诉内核关于你的模拟设置
- 单独和内核本身交互
G4提供的用户交互工具是基本类
- 用户可以根据这个创建自己的具体类
- G4可以使用他自己的基本类透明的处理你的派生类,这叫多态性(polymorphism)
用户交互的抽象基类
- 用户派生具体类是强制性的,也就是说用户必须根据这个派生出具体的类
用户交互的具体基类---带有virtual的虚方法
- 这种情况下,用户派生类是可选的。
用户类
初始化类
- G4VUserDetectorConstruction
- G4VUserPhysicsList
行为类
- G4VUserDetectorConstruction
- G4UserRunAction
- G4UserEventAction
- G4UserTrackingAction
- G4UserStackingAction
- G4UserSteppingAction
上述类中的强制类有
G4VUserDetectorConstruction
用于描述实验设置
G4VUserPhysicsList
选择想要激活的物理过程
G4VUserPrimaryGeneratorAction
产生初级粒子
使用GEANT4的模拟技术1的更多相关文章
- [转]C# 系统应用之鼠标模拟技术及自动操作鼠标
原文网址: C# 系统应用之鼠标模拟技术及自动操作鼠标 游戏程序的操作不外乎两种——键盘输入控制和鼠标输入控制,几乎所有游戏中都使用鼠标来改变角色的位置和方向,本文主要是讲述如何使用C# ...
- C# 系统应用之鼠标模拟技术及自动操作鼠标
游戏程序的操作不外乎两种——键盘输入控制和鼠标输入控制,几乎所有游戏中都使用鼠标来改变角色的位置和方向,本文主要是讲述如何使用C#调用Windows API函数实现鼠标模拟操作的功能.首先通过结合Fi ...
- C#之鼠标模拟技术
游戏程序的操作不外乎两种——键盘输入控制和鼠标输入控制,几乎所有游戏中都使用鼠标来改变角色的位置和方向,本文主要是讲述如何使用C#调用Windows API函数实现鼠标模拟操作的功能.首先通过结合Fi ...
- geant4开发平台的构建方案的讨论a
首先比较linux和windows下的平台的不同的功能 linux通过命令进行一系列操作,对于不习惯命令的也可以用鼠标,但是就显得过于落后,因为命令的存在自然表明其先进性. linux下的geant4 ...
- 在Win7环境下搭建Geant4工作平台
本物理专业小硕,现在材料实验室工作,研究方向大概是核屏蔽材料的软件模拟吧.其实实验室里大多数师兄弟都是搞焊接的,平时能接触到这类直接给源码自己编译的软件的机会基本为零,所以一切都靠自己探索,成功搭建了 ...
- CentOS8安装Geant4笔记(一):Geant4介绍、编译和安装
前言 在服务器CentOS8.2上安装geant4软件. GEANT4 介绍 Geant4 是一个用于模拟粒子穿过物质的工具包.其应用领域包括高能.核物理和加速器物理,以及医学和空间科学研 ...
- CentOS8安装Geant4笔记(三):Geant4介绍、编译、安装支持Qt5界面并运行exampleB1例程显示Qt界面
前言 上一篇,安装了Qt5环境. 本篇在服务器CentOs8.2上安装geant4软件,geant4使用Qt5来显示. GEANT4 介绍 Geant4 是一个用于模拟粒子穿过物质的工具 ...
- VR ( Virtual Reality )、AR(Augmented Reality)、MR(Mix Reality)和CR(Cinematic Reality)是什么鬼?
整个社会对虚拟现实的研究和开发源于上个世纪六十年代,计算机图形学.人机接口技术.图像处理与模式识别.多传感技术.语音处理与音响技术.高性能计算机系统.人工智能等领域在之后半个世纪取得了长足的发展为虚拟 ...
- Atitit 智能云网络摄像机的前世今生与历史 优点 密码默认888888
Atitit 智能云网络摄像机的前世今生与历史 优点 密码默认888888 用户名admin 密码aaaaaa 网络摄像机是一种结合传统摄像机与网络技术所产生的新一代摄像机,它可以将影像通过网络传 ...
随机推荐
- .gitignore 中文文件夹无效
有个文件夹名如:测试 在.gitignore中添加 /测试/ 但运行命令git status后发现还是被追踪到了 一番搜索后终于发现.gitignore文件编码是GBK的,重新将文件保存成utf ...
- Java EE - JSP 小结
Table of Contents 前言 JSP 与 Servlet JSP 初始化参数 脚本元素 page 指令 禁用脚本元素 EL 表达式 EL 函数 taglib 指令 标记 TLD 文件的位置 ...
- pyinstaller打包自己的python程序
使用Pyinstaller打包步骤如下 1. 安装pyinstaller pip install pyinstaller 查看安装的版本 pyinstaller --version 2. 给脚本加密 ...
- android 远程Service以及AIDL的跨进程通信
在Android中,Service是运行在主线程中的,如果在Service中处理一些耗时的操作,就会导致程序出现ANR. 但如果将本地的Service转换成一个远程的Service,就不会出现这样的问 ...
- python 读取consul配置
自动化通过rcp client调用远端服务接口时,都需要将远端测试服务ip.端口记录在配置文件. 但由于,服务发布或重启会导致ip.端口变动. 以下将通过python-consul 自动去读取cons ...
- 使用SecureCRT设置linux系统登录的ssh公钥认证
1.修改ssh配置文件/etc/ssh/sshd_configRSAAuthentication yes //使用RSA加密算法PubkeyAu ...
- PHP面向对象单例模式(懒汉式)
知识点: 一.三私一公: ①.私有静态属性,又来储存生成的唯一对象 ②.私有构造函数 ③.私有克隆函数,防止克隆——clone ④.公共静态方法,用来访问静态属性储存的对象,如果没有对象,则生成此单例 ...
- perf 的事件
perf的事件包括: 硬件事件:branch-instrctions / branch-miss / bus-cycles / cache-miss / cache-reference / cycle ...
- [CF999E]Reachability from the Capital
题目大意:有一个$n$个点$m$条边的有向图,起点$S$,要求你添加最少的边使得$S$可以到达所有点 题解:缩点,答案就是没有入边的强连通分量个数,注意,如果起点$S$所在的强连通块没有入边则不计入答 ...
- 牛客 NOIp模拟1 T3 保护 解题报告
保护 题目描述 \(C\)国有\(n\)个城市,城市间通过一个树形结构形成一个连通图.城市编号为\(1\)到\(n\),其中\(1\)号城市为首都.国家有\(m\)支军队,分别守卫一条路径的城市.具体 ...