- 目的
DAQプロセスはハードウェアへアクセスし、データ収集をすることを目的 とします。
ただし、収集したデータは常時、他のプロセスに投げつけ続けられるので はなく、ある時間は自らに蓄積され、ある瞬間(例えばスピルの終了時)に DataHubプロセスに向かってソケッ トを通じて投げられます。
[目次] [次の説明]
- 使用方法
実行ファイル[daqT473]がDAQプロセスです。DAQプ ロセスは自らすすんで立ち上がるような種類のプロセスではありません。 つまり、RunControlプロセス によって、任意のホストで任意の瞬間に立ち上げられます。
実行時には環境変数LD_LIBRARY_PATHが設定されて いる必要があります。その値はlibcamlib.soの 存在するディレクトリであるべきなので、現在の環境では/konoe/local/camac/pkg-0.2.20/libになっていなければ なりません。
また、CC7x00用のデバイスドライバもカーネルに組み込まれている必要が あります。必ず、
となっているのを確認した上で実行して下さい。もし、デバイスドライバ が組み込まれていないようなら、スーパーユーザになっ て、% lsmod Module Size Used by cc7x00 12912 0 nfs 28192 3 (autoclean) lockd 30344 1 (autoclean) [nfs] sunrpc 52132 1 (autoclean) [nfs lockd] eepro100 15652 1 (autoclean)を実行して下さい。% insmod /usr/local/camac/pkg-0.2.20/lib/cc7x00.o
実行時にはスーパーユーザ権限は必要ありません ので注意して下さい。
[目次] [次の説明] [前の説明]
- ハードウェア
T473実験ではデータ収集用のハードウェアとしてCAMACを扱います。
詳細については後述する使用するモジュールを読 んで下さい。
[目次] [次の説明] [前の説明]
- 名前空間
KONOEではネットワーク透過な名前空間(ネームスペース)をデータベース として用意することにより、異なるホスト同士の情報共有を実現していま す。
DAQプロセスに関連する名前空間のアイテムと その値は以下のとおりです。
- RUN_NUMBER
- 18150等のラン番号が入ります。
- DAQ_CMD_PORT
- 18150等のコマンド入出のためのポート番 号が入ります。
- DATAHUB_INPUT_PORT
- 18150等のDataHubプロセスにデータを送信 するためのポート番号が入ります。
- DATAHUB_HOST
- konoe3等のDataHubプロセスが走るホスト 名が入ります。
- DAQ_STATUS
- none,standby, ready,idle, busyといったDAQプロセスの状態が値に考 えられます。
- DAQ_HOST
- konoe2等のDAQプロセスが走るホスト名が 入ります。
- DAQ_PID
- 18150等のDAQプロセスのPIDが入ります。
[目次] [次の説明] [前の説明]
- データの受け取り
DAQプロセスはreadyの状態の時のみデータ収集 を行ないます。
つまり、ready状態の時にイベントが発生すれば、 DAQプロセスはデータ収集を行ない、内部バッファにそのデータを蓄積し ます。
蓄積されたデータはスピルの終了、或はready状 態からidle状態を経て、standbyに遷移した時にのみ、DataHubプロセスに受渡しを行ないま す。
[目次] [次の説明] [前の説明]
- 状態
DAQプロセスはnone,standby,ready,idle,busyの状態を持ちます。
状態はRunControlプロセスに よって名前空間のDAQ_STATUSに格納されますが同期が取 れない場合、致命的なエラーになることが考えられます。故に、 DAQプロセス自身にも状態を持たせ、DAQプロセスが自身の状態を知りたい 時はNameSpaceプロセスに問い 合わせるのではなく、自身に問い合わせます。
- none
- DAQプロセスがまだ起動されていない状態です。したがって、この 状態をDAQプロセス自身が知ることはありません。
- standby
- DAQプロセスが起動し、いつでもデータ収集に入れる状態です。
- ready
- DAQプロセスが最もハードウェアに近接している状態です。イベン トが発生し、プロセスがbusyでなければ、 データ収集を行ないます。
- idle
- データ収集を一時中断させた時にこの状態になります。
状態を再びstandbyにするには、必ずこの状態を経由しなければなりません。- busy
- DAQプロセスがデータ収集をしている最中です。実際には、DAQプロ セスの状態というよりもハードウェアの状態 ということになります。
[目次] [次の説明] [前の説明]
- 操作
ユーザがEventDisplayプロセス を通じてDAQプロセスに対して与える操作にはbegin,pause,resume,end,shutdownがあります。コマンドと言いかえても良いでしょ う。
またこれらの操作はT473Actionクラスで定 義されるメンバ関数と名前を等しくします。
- begin
- 状態はstandbyから readyに遷移します。
動作としては、などが上げられます。
- ランナンバーの取得
- CAMAC(各モジュール)の初期化
- クレートコントローラをEnableにする
- pause
- 状態はreadyから idleに遷移します。
動作としては、などが上げられます。
- クレートコントローラをDisableにする
- resume
- 状態はidleから readyに遷移します。
動作としては、などが上げられます。
- クレートコントローラをEnableにする
- end
- 状態はidleから standbyに遷移します。
動作としては、などが上げられます。
- クレートコントローラをDisableにする
- CAMAC(各モジュール)の初期化
- バッファに残っているデータをDataHubプロセスに送る
- shutdown
- 状態はstandbyから noneに遷移します。
動作としては、などが上げられます。
- 名前空間の DAQ_STATUSを noneにする
- メモリの解放
- DAQプロセスに対してKILLシグナルを送 る
[目次] [次の説明] [前の説明]
- シグナルの受け取り
DAQプロセスは命令を受ける際にRunControlプロセスからのシグナ ルを受けます。
状態がnoneやbusyでな い限りはシグナルを受けることにより、名前空間 を読みにいき、命令の種類を知ります。
[目次] [次の説明] [前の説明]
- 使用するモジュール
T473実験で使用するCAMACモジュールは以下の通りです。
使用するCAMACモジュール モジュール名 チャンネル数 数量 ADC 16 channel 3 枚 TDC 8 channel 6 枚 Interrupt Register 8 channel 2 枚 Coincidence Register 16 channel 3 枚 Output Register 8 channel 2 枚 Scaler 12 channel 2 枚
- データのフォーマット
CsIカウンタの定義については図 1を参照して下さい。 また各カウンタの定義については図 2、ロジックに ついては図 3を参照して下さい。
Section 0 [General] Segement 0 Run Information Element 0 Run Number Element 1 Event Number Element 2 Run Type Segment 1 Interrupt Register (8ch) ID-0 Element 0 IR0 Channel 1 (EVENT) Segment 2 Interrupt Register (8ch) ID-1 Element 0 IR0 Channel 1 (SPILL END) Segment 3 Coincidence Register (16ch) ID-0 Element 0 1 2 3 4 S1L S1R S2 S3 5 6 7 8 S4 S5 S6 S7 9 10 11 12 GC1 GC2 CLK Xe1 13 14 15 16 Xe2 Xe3 Xe4 S1' Segment 4 Coincidence Register (16ch) ID-1 Element 0 1 2 3 4 CsI 1 CsI 2 CsI 3 CsI 4 5 6 7 8 CsI 5 CsI 6 CsI 7 CsI 8 9 10 11 12 CsI 9 CsI 10 CsI 11 CsI 12 13 14 15 16 CsI 13 CsI 14 CsI 15 - Segment 5 Coincidence Register (16ch) ID-2 Element 0 1 2 3 4 CsI 16 CsI 17 CsI 18 CsI 19 5 6 7 8 CsI 20 CsI 21 CsI 22 CsI 23 9 10 11 12 CsI 24 CsI 25 - - 13 14 15 16 - - - - Segement 6 Time Information Element 0 Time Element 1 Clock Segement 7 Appendix Element 0 Append 1 Element 1 Append 2 Element 2 Append 3 Section 1 [TDC for CsI] Segement 0 TDC (8ch) ID-0 Element 0 CsI Array 1 Element 1 CsI Array 2 Element 2 CsI Array 3 Element 3 CsI Array 4 Element 4 CsI Array 5 Element 5 CsI Array 6 Element 6 CsI Array 7 Element 7 CsI Array 8 Segement 1 TDC (8ch) ID-1 Element 0 CsI Array 9 Element 1 CsI Array 10 Element 2 CsI Array 11 Element 3 CsI Array 12 Element 4 CsI Array 13 Element 5 CsI Array 14 Element 6 CsI Array 15 Element 7 CsI Array 16 Segement 2 TDC (8ch) ID-2 Element 0 CsI Array 17 Element 1 CsI Array 18 Element 2 CsI Array 19 Element 3 CsI Array 20 Element 4 CsI Array 21 Element 5 CsI Array 22 Element 6 CsI Array 23 Element 7 CsI Array 24 Segement 3 TDC (8ch) ID-3 Element 0 CsI Array 25 Section 2 [ADC for CsI] Segement 0 ADC (16ch) ID-0 Element 0 CsI Array 1 Element 1 CsI Array 2 Element 2 CsI Array 3 Element 3 CsI Array 4 Element 4 CsI Array 5 Element 5 CsI Array 6 Element 6 CsI Array 7 Element 7 CsI Array 8 Element 8 CsI Array 9 Element 9 CsI Array 10 Element 10 CsI Array 11 Element 11 CsI Array 12 Element 12 CsI Array 13 Element 13 CsI Array 14 Element 14 CsI Array 15 Element 15 CsI Array 16 Segement 1 ADC (16ch) ID-1 Element 0 CsI Array 17 Element 1 CsI Array 18 Element 2 CsI Array 19 Element 3 CsI Array 20 Element 4 CsI Array 21 Element 5 CsI Array 22 Element 6 CsI Array 23 Element 7 CsI Array 24 Element 8 CsI Array 25 Section 3 [TDC for Scintillators] Segement 0 TDC (8ch) ID-4 Element 0 S1L Element 1 S1R Element 2 S2 Element 3 S3 Element 4 S4 Element 5 S5 Element 6 S6 Element 7 S7 Segement 1 TDC (8ch) ID-5 Element 0 GC1 Element 1 GC2 Element 2 CLK Element 3 Xenon 1 Element 4 Xenon 2 Element 5 Xenon 3 Element 6 Xenon 4 Element 7 S1' Section 4 [ADC for Scintillators] Segement 0 ADC (16ch) ID-2 Element 0 S1L Element 1 S1R Element 2 S2 Element 3 S3 Element 4 S4 Element 5 S5 Element 6 S6 Element 7 S7 Element 8 GC1 Element 9 GC2 Element 10 Xenon 1 Element 11 Xenon 2 Element 12 Xenon 3 Element 13 Xenon 4 Element 14 S1' Section 5 [Scaler] Segement 0 Scaler (12ch) ID-0 Element 0 S1L * S1R Element 1 S1L * S1R * S2 Element 2 S1L * S1R * S2 * S3 Element 3 S1L * S1R * S2 * S3 * S4 Element 4 S1L * S1R * S2 * S3(Delay) * S4 Element 5 S1L * S1R * S2 * S3 * S4 * S5 Element 6 S1L * S1R * S2 * S3 * S4 * S5 * S6 Element 7 S1L * S1R * S2 * S3 * S4 * S5 * S6 * S7 Element 8 GC1 * GC2 Element 9 S1L * S1R * S2 * S3 * S4 * GC1 * GC2 Element 10 Trigger (NO VETO) Element 11 Trigger (VETO) Segement 1 Scaler (12ch) ID-1 Element 0 CLK 1 Element 1 CLK 2 Element 2 CLK 2 (NO VETO) Element 3 Xenon 1 以上のようなフォーマットでデータ収集を行なうと、KONOEのDAQが300Hz を実現するならば
7.5 [KB/event]となることがわかっています。あくまで目安としてお考え下さい。
2.2 [MB/sec]
4.4 [MB/spill]
600 [events/spill]
実験期間に於けるトータルのイベント数はおよそ、6,640,000 [event] と いうことですので、全イベントのデータサイズはとなります。 7.5 × 6,640,000 ÷ 1024 ÷ 1024 = 47.5 [GB]
[目次] [次の説明] [前の説明]
- データの受渡し
データの受渡し方法にはソケット通信を利用します。
DAQプロセスはスピルゲートが開いてる間はひたすら、自身が稼働してい るホストのメモリにデータを蓄積します。
スピル終了の信号がDAQプロセスに届くと、あらかじめ約束されたホスト のポート番号に対して定まったフォーマットのデー タを送り続けます。
送っている間にイベントが発生した場合、DAQプロセスはそのイベントを 完全に見失います。
[目次] [前の説明]
$Id: urd.html,v 1.57 2000/12/24 12:15:05 iwai Exp $