粒子物理蒙特卡罗模拟库Geant4源码编译安装手记(Ubuntu16.04+cmake)

Geant (GEometry ANd Tracking)作为一种蒙卡程序,其与常用的MCNP[3] 程序有很大区别。Geant不提供可执行程序,而提供一组C++类库。如果需要进行模拟的话,用户需要使用这些类库,并且按照Geant的程序结构编写代码,然后编译连接生成可执行程序。
Geant 最初的开发是用于模拟高能物理实验 。经过全世界不同国家科研人员的合作,现在Geant已经成为了一款非常强大的通用蒙卡程序。各种常见的粒子基本都能够使用Geant来模拟,而且支持的能量范围非常宽,从几keV到上百GeV。

现在Geant主要应用于如下领域:

  • 空间物理和天体物理
  • 医用物理和核医学
  • 辐射防护
  • 计量学
  • 加速器物理
  • 探测器设计
  • 害虫防治和食物辐照
  • 人道主义项目,保安等

编译安装前的准备

root@master# sudo apt-get install git dpkg-dev make g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev
root@master# sudo apt-get install gfortran libssl-dev libpcre3-dev xlibmesa-glu-dev libglew1.5-dev libftgl-dev libmysqlclient-dev libfftw3-dev cfitsio-dev graphviz-dev libavahi-compat-libdnssd-dev libldap2-dev python-dev libxml2-dev libkrb5-dev libgsl0-dev libqt4-dev
root@master# sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 

Geant4源码下载

国内下载官网速度很慢所以建议上Github镜像下载

root@master# git clone https://github.com/Geant4/geant4.git

安装方面源码包和数据包缺一不可,数据包建议不在make时命令行下载(速度感人);去往http://geant4.web.cern.ch/geant4/support/download.shtml离线下载。

Geant4源码编译

编译前确保有如下几个文件夹:
  • geant4-master
  • InstallForGeant(自己创建供安装)
  • BuildForGeant(自己创建供编译)

目前后两个都是空的

root@master# sudo mkdir InstallForGeant
root@master# sudo mkdir BuildForGeant
root@master# cd BuildForGeant
root@master# cmake -DCMAKE_INSTALL_PREFIX=../InstallForGeant/ -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_BUILD_MULTITHREADED=ON ../geant4-master
root@master# make -j2
root@master# make install -j2

将下载的一系列数据文件解压到指定位置

root@master# cd ../../InstallForGeant/share/Geant4-10.4.0/
root@master# mkdir data
root@master# cd data/
root@master# mv /home/hanss/视频/Data/*.tar.gz ./
root@master# file -b G4EMLOW.6.50.tar
root@master# tar xvf G4NDL.4.5.tar.gz 
root@master# tar xvf G4EMLOW.6.50.tar.gz 
root@master# tar xvf G4PhotonEvaporation.4.3.2.tar.gz 
root@master# tar xvf G4EMLOW.6.50.tar.gz
root@master# tar xvf G4EMLOW.6.50.tar.gz
root@master# tar xvf  G4PhotonEvaporation.4.3.2.tar.gz
root@master# tar xvf  G4RadioactiveDecay.5.1.1.tar.gz
root@master# tar xvf G4NEUTRONXS.1.4.tar.gz
root@master# tar xvf G4PII.1.3.tar.gz 
root@master# tar xvf RealSurface.1.0.tar.gz 
root@master# tar xvf G4SAIDDATA.1.1.tar.gz 
root@master# tar xvf G4ABLA.3.0.tar.gz 
root@master# tar xvf G4ENSDFSTATE.2.1.tar.gz 
root@master# mv G4EMLOW6.50/ G4EMLOW6.54/
root@master# mv PhotonEvaporation4.3.2/ PhotonEvaporation5.0
root@master# mv RealSurface1.0/ RealSurface2.1

编译运行示例程序B1

root@master# cd /download/geant4-master/examples/basic/B1
root@master# mkdir B1-build
root@master# cd B1-build/
root@master# cmake -DGeant4_DIR=/download/InstallForGeant/lib/Geant4-10.0.1 /download/geant4-master/examples/basic/B1
root@master# ls
root@master# make -j2
root@master# ls
root@master# ./exampleB1

下载最新的PhotonEvaporation数据

[root@master Geant_Data]# wget http://cern.ch/geant4/support/source/G4PhotonEvaporation.5.0.tar.gz

官网上的离线下载链接不是PhotonEvaporation数据最新版。

未完待续

你可能感兴趣的:(C/C++)