Geant4 School 总结
前言
在这里面更多的是关于geant的应用和程序上的学习总结和讨论,关于物理上的东西应该是写在另一篇里面(如果能记得的话)
关于Geant4的程序结构
From 《Structure of a Geant4 application》——Giada Petringa(LNS-INFN)
geant设计原则
Geant4在本质上还是一个工具包,并不是一个完整的类似于ROOT这种的应用程序,所以说在应用的时候还是需要用其他的工具来调用这一个包,例如说写一个C++程序并且编译运行这个程序。这是Geant4的正常用法。
使用Geant4的使用方式:
- 写一个C++的应用程序
- 在主函数中初始化Geant4
- 描述你所需要的探测器的几何形状,你的primary particles,物理过程,以及其他的需要,通过调用Geant4的类方式。
- 编译程序
- 运行
Geant4是由上图的模块来组成的,emmmm,有时间的时候再来想这东西是个什么样子的,再来具体解释吧,毕竟现在这么写的话我自己也是乱的,我觉得需要经过一些总结,但是在Giada的课件中对于每一个模块是干什么的都有说明。在Geant4中好像也有RUN和Event的概念,而且在今天下午焦老师的测试中,其中也有每个Run中有多少个Event的说明,所以说可能也是有这样的概念,在接下来几天的实际的测试中要体会。
上图是以Geant4自带的例子中B1为例来介绍的一个Geant4的应用的结构,其中包括:
- 主程序,其中包括着程序的main函数
- head files 和 source files 这两个是要在其中写好你自己需要的类和你自己需要的函数的功能,在今天课堂上举得例子中,有一个C++的知识点需要注意的是 vitual 的成员函数,或者中文叫虚函数,以及 override关键字,这两个是在类的继承中用得到的,我不会,WSSB
- 包含命令的脚本,以我今天下午的理解,这个脚本的作用是在你写完Geant4的应用程序后,如果你不写脚本,运行这一个Geant4的程序的话你是需要在Geant4的交互界面中一行行的敲你需要执行的命令的。而这个脚本的作用就是让Geant4来一行一行的执行你所需要的程序。
- CmakeList.txt,这个东西是用来构建这一个应用的。其实,Geant4的应用已经和root来比是一个比较复杂的程序,之前你在研究Makefile和Cmake的时候你也知道,这东西是用来来对复杂的程序进行编译的,所以说这玩意在这里被用到了,那么问题来了,你需要研究如何来写Makefile和cmakelist这种东西来应付复杂的程序开发,而不是改别人的。
今天先写到这里了,要去debug了