Lion に Geant4 9.5 を入れた

ちょっと久しぶりに Geant4 を使うことになったので、Lion に Geant4 9.5 p01 を入れました。以前に使っていたのは 9.3 なのですが、かなり作法が変わってしまい困惑。ということで作業記録を。Snow Leopard に 9.3p01 を入れた記録はこちら

(2012.12.5 追記) Mountain Lion でも同様にして install できます。

1. 環境変数の設定

以前は G4WORKDIR とか色々と設定していましたが、なんかそういうのはもう要らないっぽい。次の変数だけ ~/.zshrc に追加しましたが、別になくても OK です。

export G4INSTALL=/usr/local/geant4/geant4.9.5.p01

2. 落としてきて展開

$ wget http://geant4.cern.ch/support/source/geant4.9.5.p01.tar.gz
$ cd /usr/local
$ sudo mkdir geant4
$ cd geant4
$ sudo tar zxvf ~/geant4.9.5.p01.tar.gz
$ mkdir geant4.9.5.p01-build
$ cd geant4.9.5.p01-build

まあ、入れるところは好きな場所で良いのですが、今回は /usr/local/geant4/geant4.9.5.p01 に展開して、geant4.9.5.p01-build で build することにします。前者は G4INSTALL として設定済み。

3. GDML 用に Xerces-C を入れる

GDML を使うかもしれないので、Xerces-C を MacPorts から入れる。

$ sudo port install xercesc3

4. Build する

ここが大きく 4.9.3 の頃とは変わっていました。CMake を使うのが標準になったようです。

$ pwd
/usr/local/geant4/geant4.9.5.p01-build
$ sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DXERCESC_ROOT_DIR=/opt/local -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_RAYTRACER_X11=ON -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_GDML=ON $G4INSTALL

以前は Configure を走らせて色々と質問に答える形式で設定を行っていましたが、今は -D で色々やるようです。以下、自分が使った設定のみ解説。

  • CMAKE_INSTALL_PREFIX Geant4 の library だとかを install するための path です。Default で /usr/local なのですが、念のため明示的に与えています。
  • XERCESC_ROOT_DIR Xerces-C を入れた場所で、MacPorts からなので /opt/local を指定しています。
  • GEANT4_USE_OPENGL_X11 OpenGL を ON に。
  • GEANT4_USE_RAYTRACER_X11 Ray tracing を ON に。
  • GEANT4_INSTALL_DATA 中性子などの追加データを install する。
  • GEANT4_USE_GDML GDML を使う。

cmake が無事に完了したら、次は普通に make です。

$ sudo make -j4
$ sudo make install

5. geant4.sh を走らせる

これまた ~/.zshrc に以下を追加します。bash の場合は公式の manual に従って下さい。zsh だと /usr/local/bin に移動しないと駄目なようです。

cd /usr/local/bin
source geant4.sh
cd -  > /dev/null

6. 例題を試す

これも 9.3p01 の頃と勝手が変わっていて、CMake を使います。

$ cd
$ mkdir B1-build
$ cd B1-build
$ cmake -DGeant4_DIR=/usr/local/lib/Geant4-9.5.1 $G4INSTALL/examples/basic/B1 
$ make -j4
$ ./exampleB1

cmake を使う場合には vis.mac などは一緒に build directory に持ってきてくれませんので、自分で examples/basic/B1 などから cp して下さい。

B1 の例だと make の target を指定しなくて良いのですが、例えば examples/extended/radioactivedecay/rdecay01 の場合だとあらわに target を指定する必要があるので注意です。まあ、今どき zsh 使うのが当然なので、勝手に target の一覧を展開してくれるはずですが。

$ cd
$ mkdir rdecay01-build
$ cd rdecay01-build
$ cmake -DGeant4_DIR=/usr/local/lib/Geant4-9.5.1 $G4INSTALL/examples/extended/radioactivedecay/rdecay01
$ make -j4 rdecay01
$ ./rdecay01

7. Mac 用の VRML viewer を入れる

Geant4 の可視化に使われる VRML は、WindowsLinux で表示するためのソフトが豊富に存在します。Mac だとあまり無いようで、試しに MacPorts から OpenVRML を入れてみましたが、exampleB1 の吐く VRML を正しく表示できませんでした。

$ sudo port install openvrml +player
$ openvrml-player

で、次に試したのが FreeWRL です。これは OS X 用に binary installer が用意されているのですが、少なくとも手元の Lion にはちゃんと install できませんでした。そこで、手動でゴニョゴニョと。

FreeWRL-1.22.13-pre1.dmg などを落としてきて、disk image を展開します。そうすると /Volumes/FreeWRL 1.22.13-Pre1 install という volume が mount されます。Installer が入っていますが、これは使わないで、手動で必要なものを移動します。

$ cd
$ cp /Volumes/FreeWRL\ 1.22.13-Pre1\ install/FreeWRL-1.22.13-pre1.pkg/Contents/Archive.pax.gz .
$ gunzip Archive.pax.gz
$ open Archive.pax
$ cd unidst
$ cp -pr Applications/FreeWRL /Applications
$ sudo cp -p usr/local/lib/lib* /usr/local/lib/
$ sudo cp -p usr/bin/* /usr/local/bin/

この状態だと /usr/local/lib/libfreetype* が置かれるのですが、これらがちょっと古いため、MacPorts で入れた /usr/local/lib/libfreetype* とぶつかる可能性があります。MacPorts で入れたものが動かなくなったら (Emacs 23 が起動しなくなることを確認済み)、/usr/local/lib/libfreetype* を消して、以下を実行しましょう。

$ cd /usr/local/lib
$ sudo ln -s /opt/local/lib/libfreetype.6.dylib libfreetype.6.dylib

これで、freewrl という command を叩くと、Aqua で VRML が表示されます。X11 でやる方法もあるのですが、自分とこではうまく build ができませんでした。

$ freewrl

~/.zshrc で環境変数に以下を追加しておくと、VRML を表示する際に自動で freewrl が起動されます。

export G4VRMLFILE_VIEWER=freewrl

exampleB1 の場合、vis.mac に /vis/open OGL 600x600-0+0 という行があるので、これを comment out し、/vis/open VRML2FILE という行の comment を外します。そして exampleB1 を実行した最後に /vis/viewer/flush を実行すると、FreeWRL が起動します。ただし、prompt が返ってこないので、Ctrl-C で殺せば OK です。

$ ./exampleB1
(略)
Idle> /vis/viewer/flush