自分のシミュレーションプログラムを作ってみる

ちなみに、この文書読むまえに「とりあえず使ってみる」を読んで下さい。ここでは、e391a libraryを使うための設定と環境変数MY_TOP_DIRが設定されていることを前提としています。

E391aにおいて、いろいろなことをシミュレーションを使ってstudyしたい場合、e391a libraryにある標準的なシミュレーションgsim-e391aをつかってKLをいくつか崩壊させ、吐き出されたHBOOKファイルを解析につかうことができます。しかし一方で、gsim-e391aではやっていない過程や、デフォルトでは書き出されない物理量がほしくなった場合、自分なりのシミュレーションを作る必要が出てきます。

ここでは、$MY_TOP_DIRの下に新しいプログラムを作る手順を説明します。

まず、$MY_TOP_DIR/srcの下に移動してください。ここには、

合計 16k
-rw-r--r--    1 kensh    users         378 May  6 01:21 Makefile
-rw-r--r--    1 kensh    users          11 May  6 02:01 PACKAGES
drwxr-xr-x    2 kensh    users        4.0k May  6 01:21 config
drwxr-xr-x    5 kensh    users        4.0k May  6 01:22 gsim-e391a

といったファイルがあると思います。

一番簡単なのが、確実に動いているgsim-e391aから少しずつ自分のあったプログラムに変えていく方法です。今回は、まずgsim-e391aと全く同じプログラムを違う名前で作るところを説明します。

まず、gsim-e391aディレクトリを別名のディレクトリにコピーし、新しいプログラムとして登録します。新しいプログラム名はgsim-myとします。

[hoge@justice]> cp -r gsim-e391a gsim-my

[hoge@justice]> echo gsim-my >> PACKAGES

ここで、分かると思いますが新しいプログラムの登録は、PACKAGESファイルにそのプログラムの名前を追加することで行なわれます。

次に、gsim-myのMakefileを書き換えます。gsim-my/src/MakefileのMAINSという行とLINK_ARGSという行を下の用に変更します。

MAINS = gsim-my gxsim-my

LINK_ARGS = -L$(MY_LIB_DIR)/so -L$(MY_LIB_DIR) -L$(E391_LIB_DIR)/so \
-L$(E391_LIB_DIR) -l$(PACKAGE) -lgsim-general -lTupleManager \
 $(CLHEPLIB) -L$(CERNLIB_DIR) -lgeant321 -lpawlib -lgraflib \
-lgrafX11 -lpacklib -lmathlib $(CERN_LAPACK) -ljetset74 \
$(X11LIB) $(SYSLIB) gxsim-my:-ldl

また、gsim-my/src/の下でgsim.ccとgxsim.ccのファイル名をそれぞれgsim-my.ccとgxsim-my.ccに書き換えて下さい。

[hoge@justice]> cd gsim-my/src

[hoge@justice]> mv gsim.cc gsim-my.cc

[hoge@justice]> mv gxsim.cc gxsim-my.cc

これで後はmakeするとgsim-myがインストールされます。

[hoge@justice]> cd $MY_TOP_DIR/src/gsim-my

[hoge@justice]> gmake

このあとは、自分でソースコードを書き換えて、自分の目的にあったプログラムをつくって下さい。

ただ、gsim-e391aにはそこで使われている関数がすべてgsim-e391a/srcの下にはありません。(特に最近のe391a libraryでは。)何か書き換える必要のある関数が、gsim-e391a/src/*.cc等に書かれていない場合は、$E391_TOP_DIR/src/sim/gsim/gsim-generalから取ってくる必要があります。

ちなみにmakeは、srcディレクトリ以下で行なう必要があります。$MY_TOP_DIR/src/でgmakeするとそれ以下にあるすべてのプログラム(PACKAGESファイルに書かれているもの)がインストールされます。gsim-myだけインストールしたいときには、$MY_TOP_DIR/src/gsim-my/の下でgmakeしてください。

これで、自分のシミュレーションプログラムを作ることができました。めでたし。 (2002/05/06, kensh)


Copyright 2002 KTeV group@Yamanaka-Taku Lab.