開発時間を短くしたいということもありまして,CLDAQはいろんなライブラリに依存します.必要になるライブラリはリンクのページに列挙してありますので,そこから飛んでいってください.
もっとも,大抵のディストリビューションにはインストール時に入っちゃってるのがほとんどだと思うのですけれど, CLHEPとROOTという,非高エネ業界の人々には覚えのないものも使用します.
どちらもインストールは至極簡単ですが,一応,インストール方法を書いておきます.
CLHEPはクラスライブラリです.これを使用することによってベクトルやマトリックスの表現,物理定数や乱数を簡単に操作することが出来ます.便利なのでCLDAQ では積極的に使用しています.
まずは ここから最新版をダウンロードしてきます. (リンク先切れてたらGoogleしてちょうだい) このドキュメントを書いている時点での最新版は バージョン1.8.0.0でした.
CLHEPのインストールは超簡単で,今までうまくいかなかったりハマったりしたことはないです.もしハマるようなら,そんなディストリビューションは捨てたほうがいいんでないでしょうか?
% tar zxvf clhep-1.8.0.0.tgz % cd CLHEP % ./configure % make % su # make install # cd /usr/local/lib # ln -s libCLHEP-g++.1.8.0.0.a libCLHEP.a
これで終わりです. configure && make ですむソフトウェアは楽でいいですね.(こんなことを言う人はUNIXに犯されてる証拠)
実はROOTはCLDAQの機能を使用するには必要ないんですが,同梱される多くのアプリケーションコードでROOTのライブラリを使用して,プロットを作っています.
CLDAQには解析パッケージなるもの(CLDAQ/source/analysis) が含まれていて,開発初期の構想においては解析ステーション(様々な解析ソフトウェアが集まる場所という位置づけで,ワークステーションを真似たプレイステーションの真似)というものを用意し,あらゆる解析ソフトウェアに対応する予定でした.少なくともそうゆうフレームワークにしてリリースする予定でした.
ところがこの部分を作っているときに肺炎になってしまい(2002年9月頃),その後, どんどん忙しくなってしまって,放置された状態が続き,今なお放置されています.
高エネ業界では歴史的に古くはPAWという解析ソフトウェアが使用され,また新世代にはこのROOTがよく使用されているようです.僕も以前はPAWを使用していたクチですが,内輪(GLC)で標準的にになってきたということもあり,ためらいつつもROOTに移行しました.
そんな個人的背景もあって,CLDAQのアプリケーションコードではROOTを頻繁に利用しますので,まともに動いてる様子を御覧になりたければ,ROOTをインストールしておくことを強く奨めます.
インストールは簡単です.まずは ここから最新版をダウンロードしてきてください.バイナリ版も配布されていますが,ここでは Version 3.05/07 のソースからビルドする場合を例にとって解説します.
内輪では実行時リンク型のライブラリをビルドするのが流行っているようですので,ちょっと嫌なんだけど,共有(ダイナミック)ライブラリをビルドします.ちょっとややこしいので,以下のようなスクリプトを用意しました.
#! /bin/sh -x RR="/usr/local/root" ./configure linux \ --aclocaldir=$RR/aclocal \ --datadir=$RR \ --docdir=$RR/doc \ --elispdir=$RR/site-lisp \ --etcdir=$RR/etc \ --fontdir=$RR/fonts \ --iconpath=$RR/icons \ --incdir=$RR/include \ --libdir=$RR/lib \ --macrodir=$RR/macros \ --mandir=$RR/man/man1 \ --prefix=$RR \ --srcdir=$RR/src \ --testdir=$RR/test \ --tutdir=$RR/tutorial \ --enable-ldap \ --enable-mysql \ --enable-opengl \ --enable-pgsql \ --enable-shared \ --enable-soversion \ --enable-table \ --enable-thread \ --with-ldap-incdir=/usr/include \ --with-ldap-libdir=/usr/lib \ --with-mysql-incdir=/usr/include/mysql \ --with-mysql-libdir=/usr/lib/mysql \ --with-opengl-incdir=/usr/include \ --with-opengl-libdir=/usr/lib \ --with-pgsql-incdir=/usr/include \ --with-pgsql-libdir=/usr/lib \ --with-thread-libdir=/usr/lib \ --with-xpm-libdir=/usr/X11R6/lib
もっとも,たいていの場合は
% ./configure linux % make # make install
で済んでしまう話です.
これを実行すれば,ビルドされたものは /usr/local/root 以下に置かれます. PythiaとCERNライブラリを生かしたければ,さらに以下の行をスクリプト中につけ加えます.
--enable-pythia6 \ --with-pythia6-libdir=$CERN_ROOT/lib \ --enable-cern \ --with-cern-libdir=$CERN_ROOT/lib \
このroot-run-configを持っていったら,実行するだけです.
% tar zxvf root_v3.05.05.source.tar.gz % cd root % ./root-run-config % make % su # make install # echo "/usr/local/root/lib" >> /etc/ld.so.conf # ldconfig
これで終わりです.
さて,必要なものが揃ったところで,CLDAQをビルドしましょう. ダウンロードページから最新版をダウンロードしてください.とりあえず,ホームディレクトリにインストールする例を紹介します. シェルは csh系 を使っています.
% cd $HOME % tar zxvf CLDAQ-x.xx.xx.tar.gz % source CLDAQ/config/scripts/cldaq-setup.csh % cd CLDAQ/source % make
うまくいけばこれで終わりです.
CLDAQには便利なconfigureスクリプトは存在しません.(将来的には用意しますが) 上の例中の3行目で cldaq-setup.csh というファイルを source している行がありますが,これが非常に重要です. CLDAQではライブラリをビルドするとき,あらかじめ設定されてある環境変数を使いまくります.
ビルド時に参照される環境変数は以下のようなものがあります.特に始めの5行は必須項目ですので必ず設定してください.出来れば,$HOME/.tcshrcなどに書くか,sourceされるようにしておくとよいでしょう.
環境変数 | 設定例 | 意味 |
CLDAQ_INSTALL | $HOME/CLDAQ | CLDAQの展開先 |
CLDAQ_CLHEP_BASE_DIR | /usr/local | CLHEPのルートパス |
CLDAQ_CLHEP_LIB_NAME | CLHEP | CLHEPのライブラリ名 |
CLDAQ_ZLIB_USE | 1 | zlibを使用するかどうか |
CLDAQ_ROOT_USE | 1 | ROOTを使用するかどうか
|
CLDAQ_INCLUDES | -\I$HOME/local/include -I/net/include | その他のヘッダファイルへのパス(makeにこけたらこれを設定してみるとよいかも) |
CLDAQ_LIBS | -L$HOME/local/lib -lfoo -lbar -lbaz | その他のライブラリパス(makeにこけたらこれを設定してみるとよいかも)
|
CLDAQ_PAW_USE | 0 | PAWを使用するかどうか |
CLDAQ_X11_USE | 1 | X11を使用するかどうか |
CLDAQ_X11_LIB_DIR | /usr/X11R6/lib | Xライブラリへのパス |
CLDAQ_X11_INC_DIR | /usr/X11R6/include | Xヘッダファイルへのパス
|
CLDAQ_GTK_USE | 1 | Gtkを使用するかどうか |
CLDAQ_QT_USE | 1 | Gtkを使用するかどうか |
CLDAQ_QT_BASE_DIR | /usr/lib/qt-2.3.1 | Qtのルートパス |
CLDAQ_QT_LIB_DIR | $CLDAQ_QT_BASE_DIR/lib | Qtライブラリへのパス |
CLDAQ_QT_INC_DIR | $CLDAQ_QT_BASE_DIR/include | Qtヘッダファイルへのパス |
なお, sh系のシェルを使用している場合は以下のようにして環境変数の設定箇所を以下に読み換えてください.
% . CLDAQ/config/scripts/cldaq-setup.sh
ライブラリのビルドが終われば,$CLDAQ_INSTALL/lib/libCLDAQ.aが生成されたはずです.これであなたはCLDAQをいつでも使用できると思います.きちんとした使用方法については 初心者むけのふざけた解説や 上級者むけのまじめな解説で解説したいと思いますが,ひとまず,ちゃんとビルドされて動くものかどうかテストしたいところですね.
動作のテストは $CLDAQ_INSTALL/tests にあるコードで行います.どれも数10行〜100行程度の短いプログラムですが, CLDAQの使い方を簡単に理解し,動作しているかどうかを調べるにはここから始めるのが良いでしょう.
もし,ここまでのビルドが終わっているならば,あとは簡単です.
% cd $CLDAQ_INSTALL/tests % make
で終わりです.
% ls $CLDAQ_INSTALL/bin
なにやらいろいろ出来ていますよね?デバイスを必要とするプログラムはドライバとデバイスの接続を必要としますが,その他のプログラムは今すぐ動くはずです.ゲッティンスタートなのです.