“ 本文简述利用Geant4 cmake如何链接CRY库,并在自己的Geant4程序中使用”
下载cry包地址:
https://nuclear.llnl.gov/simulation/main.html
点击 Install from source,获取**.tar.gz文件。本文撰稿时版本为v1.7找一个合适的目录解压;打开命令行,在解压后的文件目录 : make,make完会有bug,发现是无法读取data中的数据,bug如下:
此时将test文件夹下的testMain.cc文件中的第75行中的data路径加上:
改为如下:
这里会运行一个test程序,输出是:…identical,如下(不用管):
现在目录里面重要的文件有geant文件夹,里面是关于在geant下如何使用;一个是src文件夹,里面包含了各种.c .h .o文件,也就是构成CRY库的源文件地址啦。一个是data文件夹,里面包含了三个不同海拔的数据。最后一个lib文件夹,里面是静态库文件libCRY.a
cd 到cry_v1.7的geant文件夹下:
Bug如下:
再次make以后会发现有如下bug:
继续进入到PhysicsList.cc文件里,定位到错误行处,发现是theParticleIterator改变量没有定义,加入定义如下,保存并退出:
把 “../data”改成
"/home/zhaijj/geant4.10.05/cry_v1.7/data"(你自己的存放路径)(总共三处)
不懂这里为什么官方下载的数据包会有这么多bug,着实不懂。。。
回到根目录下 cd ~
将之前需要source的setup文件的路径加入到.bashrc中,并source
附:
在geant4 .mac文件中控制CRY的行为,由于有PrimaryGeneratorMessenger的存在,所以命令如下:
/CRY/inputreturnNeutrons 1/0 1是开启,0是关闭
/CRY/inputreturnProtons
/CRY/inputreturnElectrons
/CRY/inputreturnGammas
等等,这些可以参考cry安装目录下geant文件夹内 cmd.file
/CRY/update 要先于/run/beamOn 运行