简介

本文来源于意大利国家核物理研究院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的更多相关文章

  1. [转]C# 系统应用之鼠标模拟技术及自动操作鼠标

    原文网址: C# 系统应用之鼠标模拟技术及自动操作鼠标        游戏程序的操作不外乎两种——键盘输入控制和鼠标输入控制,几乎所有游戏中都使用鼠标来改变角色的位置和方向,本文主要是讲述如何使用C# ...

  2. C# 系统应用之鼠标模拟技术及自动操作鼠标

    游戏程序的操作不外乎两种——键盘输入控制和鼠标输入控制,几乎所有游戏中都使用鼠标来改变角色的位置和方向,本文主要是讲述如何使用C#调用Windows API函数实现鼠标模拟操作的功能.首先通过结合Fi ...

  3. C#之鼠标模拟技术

    游戏程序的操作不外乎两种——键盘输入控制和鼠标输入控制,几乎所有游戏中都使用鼠标来改变角色的位置和方向,本文主要是讲述如何使用C#调用Windows API函数实现鼠标模拟操作的功能.首先通过结合Fi ...

  4. geant4开发平台的构建方案的讨论a

    首先比较linux和windows下的平台的不同的功能 linux通过命令进行一系列操作,对于不习惯命令的也可以用鼠标,但是就显得过于落后,因为命令的存在自然表明其先进性. linux下的geant4 ...

  5. 在Win7环境下搭建Geant4工作平台

    本物理专业小硕,现在材料实验室工作,研究方向大概是核屏蔽材料的软件模拟吧.其实实验室里大多数师兄弟都是搞焊接的,平时能接触到这类直接给源码自己编译的软件的机会基本为零,所以一切都靠自己探索,成功搭建了 ...

  6. CentOS8安装Geant4笔记(一):Geant4介绍、编译和安装

    前言   在服务器CentOS8.2上安装geant4软件.   GEANT4 介绍   Geant4 是一个用于模拟粒子穿过物质的工具包.其应用领域包括高能.核物理和加速器物理,以及医学和空间科学研 ...

  7. CentOS8安装Geant4笔记(三):Geant4介绍、编译、安装支持Qt5界面并运行exampleB1例程显示Qt界面

    前言   上一篇,安装了Qt5环境.  本篇在服务器CentOs8.2上安装geant4软件,geant4使用Qt5来显示.   GEANT4 介绍   Geant4 是一个用于模拟粒子穿过物质的工具 ...

  8. VR ( Virtual Reality )、AR(Augmented Reality)、MR(Mix Reality)和CR(Cinematic Reality)是什么鬼?

    整个社会对虚拟现实的研究和开发源于上个世纪六十年代,计算机图形学.人机接口技术.图像处理与模式识别.多传感技术.语音处理与音响技术.高性能计算机系统.人工智能等领域在之后半个世纪取得了长足的发展为虚拟 ...

  9. Atitit 智能云网络摄像机的前世今生与历史 优点  密码默认888888

    Atitit 智能云网络摄像机的前世今生与历史 优点  密码默认888888 用户名admin  密码aaaaaa 网络摄像机是一种结合传统摄像机与网络技术所产生的新一代摄像机,它可以将影像通过网络传 ...

随机推荐

  1. Node应用进程管理器pm2的使用

    本文转载自:豆瓣-PM2介绍 更多内容见github上的pm2说明文档pm2 pm2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程 ...

  2. Asp.Net中Response.Cookies.Remove 无法删除COOKIE的问题解决方法

    登陆功能经常需要使用Cookie来存储登陆信息,可是在开发过程中,经常发现cookie无法删除的问题.删除的代码无非就是找到Cookie并删除掉. 但是会发现 Response.Cookies.Rem ...

  3. Python全栈 MySQL 数据库 (表字段增、删、改、查、函数)

    ParisGabriel              每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰    开局一张图         查询SQL变量 show variables 1.表字 ...

  4. CodeForces-1061B Views Matter

    题目链接 https://vjudge.net/problem/CodeForces-1061B 题面 Description You came to the exhibition and one e ...

  5. shell之小知识点

    last:显示/var/log/wtmp文件,显示用户登录历史及重启历史     -n #:仅显示最近几次的相关信息 lastb:/var/log/btmp文件,显示用户错误的登录尝试     -n ...

  6. Sockt编程(多线程)

    服务器端: package com.zeph.serverclient; import java.io.BufferedReader; import java.io.IOException; impo ...

  7. 【BestCoder 1st Anniversary】

    AB题都是签到题.... C 题意: 有一串数列,An=3*n*(n-1)+1 然后要从A数列中选取尽量少个数(可重复),使得Sum(An)=m 题解: 贪心地想,能拿大就拿大很明显就是错的...[哪 ...

  8. [SDOI2015][bzoj3990] 序列 [搜索]

    题面 传送门 思路 首先,这道题目有一个非常显然(但是我不会严格证明,只能意会一下)的结论:一个合法的操作序列中,任意两个操作是可以互换的 那么,这个结论加上本题极小的数据范围,为什么不搜索一下呢? ...

  9. [poj] 3090 Visible Lattice Points

    原题 欧拉函数 我们发现,对于每一个斜率来说,这条直线上的点,只有gcd(x,y)=1时可行,所以求欧拉函数的前缀和.2*f[n]+1即为答案. #include<cstdio> #def ...

  10. 忽略node_modules目录

    如上图所示添加node_modules目录到忽略文件列表里面,点击应用就可以了.