一、genie简介

genie是使用蒙特卡洛方法模拟中微子物理的现代化软件。具体用途有请罗昊同学讲解。

二、genie安装

genie的安装是比较复杂的,关键原因是genie依赖软件包比较多,而且依赖软件包之间存在相互连接的现象。

例如:genie依赖于ROOT,ROOT编译的时候需要链接pythia6之后再编译。

但是安装过程只要一步步来,耐心细心,解决出现的问题,就不难成功安装。

1.安装依赖包

需要的依赖包如下:

  • log4cpp:记录C++程序的日志和调试
  • GSL:GNU的科学计算库
  • LHAPDF6:计算夸克打碎的物理过程
  • pythia6:描述各种基本粒子相互碰撞过程
  • libxml2:支持使用可扩展标记语言(xml)存储数据
  • ROOT:数据分析软件

-------以下操作均在/opt目录下-------

(1)安装log4cpp

下载安装包:

 wget https://sourceforge.net/projects/log4cpp/files/latest/download

解压:

 tar –xvf log4cpp-1.1.3.tar.gz

规范命名:

 mv log4cpp-1.1.3 log4cpp-1.1.3-src (-src表示源代码目录)

 mkdir log4cpp-1.1.3 (无-src表示安装目录)

编译安装:

 cd ../log4cpp-1.1.3-src

 ./autogen.sh

 ./configure --prefix=/opt/log4cpp-1.1.3

 make

 make install

(2)安装GSL

理论上也可以安装log4cpp的办法安装GSL,但是可以直接用apt安装(Debian、Ubuntu)

 sudo apt install libgsl-dev

(3)安装LHAPDF6

下载安装包:

 wget https://lhapdf.hepforge.org/downloads/?f=LHAPDF-6.2.3.tar.gz

解压:

 tar –xvf LHAPDF-6.2.3.tar.gz

规范命名:

 mv LHAPDF-6.2.3 LHAPDF-6.2.3 -src

 mkdir LHAPDF-6.2.3

编译安装:

 cd ../ LHAPDF-6.2.3 -src

 ./configure --prefix=/opt/LHAPDF-6.2.3

 make

 make install

(4)安装pythia6

pythia6是个相当古老的软件包,它使用Fortran77编写,在2007年已经被用C++重写的pythia8代替,但是没有办法,genie要求pythia6

这里提供一个简单安装pythia6的方法:

 下载:点击这里

原地址已不能使用,请使用https://root.cern.ch/download/pythia6.tar.gz

编译:

 Linux: ./makePythia6.linux(按照命名来说,64位Linux应该是./makePythia6.linuxx8664,但是我用前者也可以)

 macos: ./makePythia6.macosx(按照命名来说,64位macos应该是./makePythia6.macosx64,但是我两个都没试)

编译之后生成: libPythia6.so 即为需要的pythia6库文件。

注意编译过程可能遇到g77错误,把对应的make文件里g77改成gfortran

(5)安装libxlm2

下载安装包:

 wget ftp://xmlsoft.org/libxml2/libxml2-2.8.0.tar.gz

解压:

 tar –xvf libxml2-2.8.0.tar.gz

规范命名:

 mv libxml2-2.8.0 libxml2-2.8.0-src

 mkdir libxml2-2.8.0

编译安装:

 cd ../ libxml2-2.8.0 -src

 ./configure --prefix=/opt/libxml2-2.8.0

 make

 make install

(6)安装ROOT

下载安装包:

 wget https://root.cern/download/root_v6.20.04.source.tar.gz

解压:

 tar –xvf root_v6.20.04.source.tar.gz

规范命名:

 mv root_v6.20.04 root-6.20.04-src

 mkdir root-6.20.04

编译安装:

 cd ../ root-6.20.04

 cmake ../ root-6.20.04-src

  -DCMAKE_INSTALL_PREFIX=/opt/root-6.20.04

  -Dbuiltin_gsl=ON -Dmathmore=ON -Dpythia6=ON

  -DPYTHIA6_LIBRARY=/opt/pythia6/libPythia6.so

  -DLIBXML2_INCLUDE_DIR=/opt/libxml2-2.8.0/include/libxml2

  -DLIBXML2_LIBRARY=/opt/libxml2-2.8.0/lib/libxml2.so

cmake的时候需要注意gsl和mathmore要打开,XML2的路径写到哪里也需要准确。

不是安装过gsl了吗?为什么这里gsl还要打开?我也不清楚,有时间可以测试gsl不打开的效果。

我是使用cmake-gui配置,注意PYTHIA6_LIBRARY设置一定要正确,我还遇到gfortan库中函数未定义的问题,最后发现是pythia6不能从pythia官网下载,需要从ROOT官网下载。

顺利的话就可以编译安装:

 make

 make install

准备好电影好好享受编译过程!

2.编译安装genie

总言:genie的安装和一般GNU软件安装方法一样,都是 ./configure&&make&&make install 

(1)下载genie安装包

 git clone https://github.com/GENIE-MC/Generator.git

如果下载太慢可以选择下面链接(同步于2020-4)

 git clone https://gitee.com/zhaoww7/genieGenerator

您也可以先把github仓库导入国内gitee仓库,然后从gitee下载

总而言之,您如果在/opt目录下载,会得到/opt/genieGenerator

另外创建/opt/genie作为您的安装目录。

(1)设置环境变量

genie安装前需要设置环境变量,目的是genie安装过程中可以寻找到依赖包:

 $GENIE=/opt/genieGenerator:注意这里是genie源代码位置(存疑)

 $ROOTSYS=/opt/root-6.20.04 :ROOT的安装位置

将下列路径添加到 LD_LIBRARY_PATH :

 $GENIE/lib、$ROOTSYS/bin、$/opt/pythia6/libPythia6.so、/opt/libxml2-2.8.0/lib、/opt/log4cpp/lib

添加方法: export LD_LIBRARY_PATH=$GENIE/lib:$LD_LIBRARY_PATH   以此类推

将下列路径添加到 PATH :

 $ROOTSYS/bin、$GENIE/bin

添加方法: export PATH=$ROOTSYS/bin:$GENIE/bin:$PATH

也可以将上面的环境设置写入~/.bashrc(linux用户)

(2)配置genie

官方给出的配置方法如下:

./configure --prefix=/opt/genie                   ## 安装目录   
--disable-profiler  
--enable-gfortran                                 ## 记得打开gfortran
--with-gfortran-lib=/usr/lib/x86_64-linux-gnu     ## 使用 ldconfig -p | grep libfortran 找到gfortran库位置写上
--disable-lhapdf5 
--enable-lhapdf6 
--disable-validation-tools 
--disable-cernlib   
--enable-lhapdf  
--enable-flux-drivers   
--enable-geom-drivers   
--disable-doxygen   
--enable-test  
--enable-mueloss 
--enable-dylibversion    
--enable-t2k  
--enable-fnal  
--enable-atmo    
--enable-nucleon-decay  
--disable-masterclass  
--disable-debug   
--with-optimiz-level=O2   
--with-pythia6-lib=/opt/pythia6  
--with-lhapdf6-inc=/opt/LHAPDF-6.2.3/include  
--with-lhapdf6-lib=/opt/LHAPDF-6.2.3/lib  
--with-libxml2-inc=/opt/libxml2-2.8.0/include/libxml2  
--with-libxml2-lib=/opt/libxml2-2.8.0/lib    
--with-log4cpp-inc=/opt/log4cpp-1.1.3/include   
--with-log4cpp-lib=/opt/log4cpp-1.1.3/lib
        

官网上还有一句话:看起来一切默认就能安装。

不过我建议最好不要缺少gfortran和inc、lib的路径。

(3)编译genie

如果上面 ./configure 没有报错,那么恭喜你已经半只脚踏入成功的大门了,编译只需:

 make -j4

同样的,这里是4还是其他取决于你的电脑CPU核数

(4)安装genie

将编译好的文件复制到/opt/genie

 make install

一切顺利?恭喜恭喜!

三、genie使用

留白也是艺术

本文基本内容从genie导入,后增加自己注释而成;侵权请联系本人删除。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐