轻松的安装 Geant4
本文主要是给组里面的同学们快速配置自己的 Geant 4 之用
本文使用 Fedora 操作系统(或者是其 WSL remix)
如果你是高贵的 Arch 用户,AUR 里面貌似有现成的 Geant 4,也是开箱即用的,但是 Arch 用户大概不需要这篇文章
在 WSL 中配置你的 Fedora 环境
对于原生 Linux 用户,请忽略这一节。
启用 WSL 与安装 Linux
请参阅这篇文章的“为 WSL
做准备”章节,启用你的 Windows 下的 WSL。然后在Fedora
Remix for WSL
发表页面下载那个appxbundle
文件,双击安装这个软件包,然后打开安装的程序,按照提示进行设置用户名以及密码。
安装 XServer
为了能正确使用 ROOT/Geant4 的图形界面,你需要安装 XServer。在这里下载,安装后启动,全部选择默认配置即可。
然后在 WSL 中运行 1
echo 'export DISPLAY=127.0.0.1:0' >> ~/.bashrc
伪装 release 信息
运行 1
sudo dnf install fedora-release --allowerasing
WSL 配置至此结束,接下来是安装 Geant 4 以及 ROOT。
安装 Geant 4
运行 1
2sudo dnf copr enable yanqiyu/geant4
sudo dnf install geant4 geant4-data geant4-devel geant4-examples
编译安装
我不怎么建议自己编译安装,因为编译慢,安装的位置不好还需要手动设置一下环境变量
下载 Geant 4 的源代码,然后解压 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17mkdir build && cd build
cmake -DGEANT4_BUILD_MULTITHREADED=ON \
-DGEANT4_INSTALL_DATA=ON \
-DGEANT4_USE_GDML=ON \
-DGEANT4_USE_G3TOG4=ON \
-DGEANT4_USE_QT=ON \
-DOpenGL_GL_PREFERENCE=GLVND \
-DGEANT4_USE_XM=ON \
-DGEANT4_USE_OPENGL_X11=ON \
-DGEANT4_USE_INVENTOR=OFF \
-DGEANT4_USE_RAYTRACER_X11=ON \
-DGEANT4_USE_SYSTEM_CLHEP=OFF \
-DGEANT4_USE_SYSTEM_EXPAT=ON \
-DGEANT4_USE_SYSTEM_ZLIB=ON \
..
make -jN(N 替换为你的 CPU 线程数)
make install
自己编译安装的版本需要运行:
1 |
|
来设置环境变量,通过源安装的不需要。
安装 ROOT
在多数情况下,可以通过安装 1
sudo dnf install root-hist-painter root-physics root-mathmore root-tree-dataframe root-hist root-spectrum root-net root-tree-ntuple root-graf-x11 root-graf3d root-vecops root-matrix root root-multiproc root-icons root-tree root-graf-postscript root-gui root-graf-gpad root-tree-player root-cling root-minuit root-fonts root-graf-asimage root-graf root-core root-mathcore root-io root-gui-ged
cmake
的时候提示缺文件就再安装就行。
基本程序框架
physicsList
, 一般是G4VModularPhysicsList
以及其派生的预定义物理类型, 这个类负责定义模拟中的物理过程;DetectorConstruction
, 派生自G4VUserDetectorConstruction
负责构建探测器的几何结构以及材料;ActionInitialization
派生自G4VUserActionInitialization
, 主要工作是对于模拟进行准备操作, 通过SetUserAction
来实现注册各个其他运行相关的类, 在简单的程序中包括RunAction
,EventAction
,SteppingAction
,PrimaryGeneratorAction
, 如果需要保存直方图的话就要加上HistoManager
;RunAction
派生自G4UserRunAction
, 这个类定义了每个 run 的操作;PrimaryGeneratorAction
, 派生自G4VUserPrimaryGeneratorAction
, 也就送描述粒子源的行为;EventAction
派生自G4UserEventAction
, 描述的是一个模拟的 Event 的过程, 一般处理的事情是按照设计统计每个 Step 中物理过程的能量沉积等数据, 并填充 tuple;SteppingAction
派生自G4UserSteppingAction
, 处理模拟过程每个 step, 每个 step 中UserSteppingAction
都会被调用, 并传入一个G4Step
参数, 可以获取这个 step 中的物理过程.HistoManager
, 它一般是负责保存直方图到ROOT
文件以供进一步操作的;- 对于一些类来说, 还可以有它的
messenger
用于处理命令.