# Geant4Example
**Repository Path**: HeDianxiaoyuan/geant4-example
## Basic Information
- **Project Name**: Geant4Example
- **Description**: geant4的工程示例代码
- **Primary Language**: C++
- **License**: LGPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 11
- **Forks**: 1
- **Created**: 2022-07-15
- **Last Updated**: 2026-03-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 核电校园 Geant4 开源文档
中文 | [English](README_EN.md)
## 📖 Geant4简介
**Geant4** 是由欧洲核子研究中心(CERN)主导开发的开源粒子物理模拟工具包,采用C++实现蒙特卡洛方法,
可精确模拟粒子在复杂几何中的输运及相互作用。其支持60+种粒子类型(从keV到TeV能量范围),涵盖电磁作用、
强子物理、衰变等物理过程,提供灵活的几何建模(CSG/GDML)和OpenGL/Qt可视化功能,广泛应用于高能物理实验、
核反应堆屏蔽设计、医学放射治疗优化、空间辐射防护等领域。
技术亮点包括模块化架构(通过派生`G4VUser*`基类扩展)、多线程加速、跨平台部署及ROOT框架数据接口,遵循Apache 2.0协议。
官方文档与社区资源详见 [geant4.web.cern.ch](https://geant4.web.cern.ch)。
以上内容由DeepSeek生成。
## 💡 开源的工程介绍
- [G4Start](./01_G4Start/G4Start工程.md)是一个Geant4的最小工程,提供了一个能完整运行的最小示例。
- [G4Basic](./02_G4Basic/G4Basic工程.md)是一个简单的Geant4工程,可实现最灵敏体积内的能量沉积的计算。
- [G4Extension](./03_G4Extension/G4Extension工程.md)是一个综合了G4Start和G4Basic的综合工程,可实现对NaI探测器的能谱数据输出,工程中还提供了一个root程序,用来绘制能谱。
- [G4Improve](./04_G4Improve/G4Improve工程.md)是一个提高工程,主要实现了Sensitive Detector和Hit的使用。探测器使用CsI探测器。在建模中添加了磁场约束,在数据输出时使用了.root文件来输出数据。
- 关于Linux的常用命令、常规操作,请参考[Ubuntu-Linux的常见操作](./Ubuntu-Linux的常见操作.md)
## 🚀 Geant4安装
### 1 安装准备
- Ubuntu工作环境
- Geant4源码包和数据包(一定提前区官网下载好)
- C/C++编译工具包
- CMake工具包
- Qt5
- OpenGL
- 对于一个新的Ubuntu,推荐将shell改为bash
```bash
# shell改为bash的命令:
sudo dpkg-reconfigure dash
# 运行命令后,弹出的菜单选择“no”,确认即可。
```
### 2 安装指南
#### 2.1 安装依赖
安装Geant4运行所依赖的各项软件。
```bash
# 更新软件源
sudo apt-get updeate
# 安装C/C++编译工具包
sudo apt install -y build-essential
# 安装CMake工具包
sudo apt install -y cmake
sudo apt install -y cmake-curses-gui
# 安装Qt可视化支持
sudo apt install -y qtbase5-dev
# 安装OpenGL可视化支持
sudo apt install -y libxmu-dev
# 安装expat开发工具
sudo apt install -y libexpat1-dev
```
运行下方语句可一步完成上述操作(新手不推荐)
```bash
sudo apt-get updeate && sudo apt install -y build-essential cmake cmake-curses-gui qtbase5-dev libxmu-dev libexpat1-dev
```
#### 2.2 编译源码与安装
第一步:解压源码。命令:``
第二步:进入解压出来的源码目录,在目录下创建build文件夹,进入build文件夹。
```bash
mkdir build && cd build
```
第三步:运行ccmake。
```bash
ccmake ..
```
第四步:配置cmake编译选项
- 安装位置(CMAKE_INSTALL_PREFIX):默认位置是/usr/local,可修改为~/Geant4。
- 开启并行化支持(CMAKE_BUILD_MULTITHREADED):按空格键修改为ON。
- OpenGL可视化支持(GEANT4_USE_OPENGL_X11):按空格键修改为ON。
- Qt可视化支持(GEANT4_USE_QT):按空格键修改为ON。其他参数可暂不开启,
- 按c确定。
- 按g生成编译参数。
注意:此处要c -> e -> c -> e -> g。即要多次生成和确认才能出现g这个参数。
第五步:编译源码(根据电脑性能情况,此步骤用时较长)使用`make`或者`make -jN`命令。
```bash
make
make -jN # N为CPU线程数
```
第六步:安装编译的源码
```bash
make install
```
第七步:创建数据文件夹,并添加数据文件。
```bash
# 添加数据文件:在~/Geant4/share/Geant4/下创建一个叫data的文件夹。
# 解压数据文件到data目录(此处必须用终端命令解压)
```
第八步:添加环境变量
```bash
echo “source ~/Geant4/bin/geant4.sh” >> ~/.bashrc && source ~/.bashrc
```
#### 2.3 验证安装
- B1的示例拷贝出来,在B1目录下新建一个build文件夹。
- 进入build文件夹,运行命令:`cmake .. && make`。
- 执行`./exampleB1`。
## 🎨 Geant4工程的结构
Geant4的工程是Cmake工程,和其他Cmake工程一样,G4工程是由文件夹来管理的,一个文件夹就是一个G4工程。
参考B1,Geant4工程的目录规划如下:
```text
Project_folder/
├── build/ # 存放编译产生的中间文件的文件夹
├── inc/ # 存放用户编写的头文件的文件夹
├── src/ # 存放用户编写的源文件的文件夹
├── CmakeLists.text # CMake编译规则文件
├── mainCppFile.cc # main()函数坐在文件
└── *.mac *.in *.out ... # 其他中间文件
```
## WSL-Ubuntu下安装Geant4并使用
Geant4可在wsl下使用,安装与桌面Ubuntu相同,只是部分操作需要用命令行来实现。
### WSL-Ubuntu的安装
#### 准备工作
在Windows系统中开启虚拟机与wsl子系统,重启电脑后生效该设置。
#### 安装步骤
- 第一步,win+R打开cmd终端,在终端中输入`wsl --update`安装wsl工具。
- 第二步,在终端中输入`wsl --set-default-version 2`将wsl派知道wsl2。
- 第三步,在终端中输入`wsl -l -o`检索子系统版本。
- 第四步,在终端中输入`wsl --install Ubuntu-20.04`,安装子系统.。
此时,wsl系统安装完成。
#### 在Windows中访问WSL系统的文件
安装完成后,在win的此电脑中会有一个Linux的图标,进入后右键Ubuntu-20.04文件夹,电机映射网络驱动器,在点击完成,即可创建一个新的盘符,在win下可自由访问Linux的文件。
#### WSL运行Linux GUI应用
WSL2提供了运行Linux GUI应用的能力,直接安装linux GUI应用,即可运行。