内部资料 Geant4安装和入门 2)安装CLHEP
从上面提供的网页上下载CLHEP, 目前的版本是CLHEP.1.8.1.0.a, 解压缩到/home/username/目录下, 如下就是安装CLHEP的命令. cd /home/username/CLHEP
./configure -prefix=/home/username/CLHEP make
make install (需要用root用户执行) cp
/home/username/CLHEP/lib/libCLHEP.a
3)安装Geant4.7.0
如下为安装Geant4的命令, 逐条执行即可. cd Geant4.7.0 mkdir data cd data/
tar -xzvf G4CD/Geant4Software/DataFiles/Elastic.1.0.tar.gz tar -xzvf G4CD/Geant4Software/DataFiles/G4EMLOW2.3.tar.gz tar -xzvf G4CD/Geant4Software/DataFiles/RadiativeDecay.3.0.tar.gz tar -xzvf G4CD/Geant4Software/DataFiles/G4NDL3.7.tar.gz
tar -xzvf G4CD/Geant4Software/DataFiles/PhotonEvaporation.2.0.tar.gz cd ..
./Configure -build (阅读安装程序提供的信息, 按需要回答它的问题) ./Configure -install cd source make
cd visualization/OpenIventor make
cd ../../../physics_list/hadronic make
4. 安装一些外加的软件
从G4CD/AdditionSoftware目录下各种外加软件的Linux版本拷贝到/home/username/addsoftware/目录下. 1)安装 Dawn.
tar -xzvf dawn_3_85e.taz cd dawn_3_85e make
make install (需要root用户权限)
/home/username/CLHEP/lib/libCLHEP-g++.1.8.1.0.a
5 Geant4安装和入门 内部资料
2)安装 Java
chmod a+x j2sdk-1_4_2_05-linux-i586.bin ./j2sdk-1_4_2_05-linux-i586.bin
3)安装 Wired java -cp . install
4)安装 AIDA
tar -xzvf AIDAJNI-3.2.2-Linux-g++.tar.gz tar -xzvf JAIDA-3.2.2.tar.gz
mv AIDAJNI-3.2.2-src.tar.gz AIDAJNI_3.2.2 cd AIDAJNI_3.2.2
tar -xzvf AIDAJNI-3.2.2-src.tar.gz
export FREEHEP=/home/username/addsoftware/AIDAJNI_3.2.2 export JDK_HOME=/home/username/addsoftware/j2sdk1.4.2_05 export
PATH=/home/username/addsoftware/AIDAJNI_3.2.2/bin:$/home/username/addsoftware/j2sdk1.4.2_05/bin:$PATH export OS=Linux export COMPILER=g++ chmod +x tools/ant tools/ant -Djar=aidajni gmake -f GNUmakefile-src
gmake -f GNUmakefile-src dist (将会产生一个 AIDAJNI-3.2.2-Linux-g++.tar.gz 文件, 表示已经安装成功.)
5)安装 ActiveTcl
tar -xzvf ActiveTcl8.4.5.0-linux-ix86.tar.gz cd ActiveTcl8.4.5.0-linux-ix86 ./install.sh //root privilege
5. 运行例子
Geant4自带许多例子程序, 可以执行其中一两个来观察Geant4是否安装成功. cd /usr/bin
ln -s /home/username/addsoftware/jas3-0.7.6/jas3 jas3 (root用户权限) cd /home/username/geant4.7.0/example/extend/analysis/A01/ make
6 内部资料 Geant4安装和入门 ./A01app jas A01.aida
三. Geant4初级编程
1. Geant4的类结构
Geant4程序代码是根据这个类结构建立起来的, 类结构如下图所示. 下面就是Geant4中每个类的简单说明.
1) Run 和 Event
这些类与模拟事件相关, 产生次级粒子, 为粒子径迹模拟器提供粒子.
2) Tracking 和 Track
根据粒子在探测器材料中的物理过程模拟粒子运行的轨迹, 给出粒子特定时间段在空间的位置, 或者粒子空间时间的分布.
3) Geometry, Magnetic Field 和 CAD-Interface
这三个类就是用来描述探测器几何结构和探测器中电磁场的分布. 为了使探测器几何结构可以在CAD系统中进行修改, Geant4的几何体模型完全与ISO STEP标准一致. 将来Geant4中几何结构的设计将从程序设计中独立出来. 面向对象设计的方法可以让用户在不影响程序其他部分的同时改变几何参数和场.
4) Particle Definition 和 Matter
这两个类用于定义粒子和探测器材料.
5) Physics
它提供了粒子与探测器材料相互作用时所发生物理过程的模型, 允许用户为每次反应或每个反应道添加物理模型. 用户根据粒子的种类, 探测器材料和能量范围选择不同的物理模型. Geant4有电磁物理过程和强子物理过程模型, 同时也提供了散射截面数据库.
6) Hits 和 Digitization
这个两个类用于对用户定义的灵敏区内的响应进行采样和分析.
7) Visualization
它显示了探测器几何形状, 粒子轨迹和碰撞过程. 由于采用了面向对象设计技术来设计可视化部分, 这允许用户独立开发可视化工具, 如: OpenGL 和 OpenInventor(为X11和Windows设计), DAWN, Postscript(via DAWN)和VRML.
7 Geant4安装和入门 内部资料
8) Interfaces
支持可视化用户界面以及和外加程序的交流(OODBMS, reconstruction等).
2. main()程序的定义 1) main()中应该包括的内容
Geant4是一个探测器模拟工具, 但它对于某个特定的模拟程序没有固定的main()函数, 用户在建立模拟程序的过程中需要提供自己的main()函数. 一个最基本的main()函数需要包括以下几个方面:
G4RunManager(模拟整个过程)
G4VUserDetectorConstruction(定义探测器材料, 几何形状, 灵敏区和读出方案) G4VUserPhysicsList(定义粒子种类和物理过程, 还有截断参数)
G4VUserPrimaryGeneratorAction(定义了源粒子的种类, 能量, 出射方向等)
2) 一个最简单的main()函数如下:
////////////////////////////////////////////////////////////////////////////////////
#include \#include \
#include \#include \
#include \
int main() {
// Construct the default run manager
G4RunManager* runManager = new G4RunManager; // set mandatory initialization classes
runManager->SetUserInitialization(new ExN01DetectorConstruction); runManager->SetUserInitialization(new ExN01PhysicsList); // set mandatory user action class
runManager->SetUserAction(new ExN01PrimaryGeneratorAction); // Initialize G4 kernel
8