KONOEホームページへ

T473パッケージ / DAQプロセス / 設計仕様書

$Id: urd.html,v 1.57 2000/12/24 12:15:05 iwai Exp $

T473パッケージにおけるDAQプロセスの設計仕様書です。

  1. 目的
  2. 使用方法
  3. ハードウェア
  4. 名前空間
  5. データの受け取り
  6. 状態
  7. 操作
  8. シグナルの受け取り
  9. 使用するモジュール
  10. データのフォーマット
  11. データの受渡し

  1. 目的
    DAQプロセスはハードウェアへアクセスし、データ収集をすることを目的 とします。
    ただし、収集したデータは常時、他のプロセスに投げつけ続けられるので はなく、ある時間は自らに蓄積され、ある瞬間(例えばスピルの終了時)に DataHubプロセスに向かってソケッ トを通じて投げられます。

    [目次] [次の説明]

  2. 使用方法
    実行ファイル[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
           
    を実行して下さい。

    実行時にはスーパーユーザ権限は必要ありません ので注意して下さい。

    [目次] [次の説明] [前の説明]

  3. ハードウェア
    T473実験ではデータ収集用のハードウェアとしてCAMACを扱います。

    詳細については後述する使用するモジュールを読 んで下さい。

    [目次] [次の説明] [前の説明]

  4. 名前空間
    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が入ります。

    [目次] [次の説明] [前の説明]

  5. データの受け取り
    DAQプロセスはreadyの状態の時のみデータ収集 を行ないます。
    つまり、ready状態の時にイベントが発生すれば、 DAQプロセスはデータ収集を行ない、内部バッファにそのデータを蓄積し ます。
    蓄積されたデータはスピルの終了、或はready状 態からidle状態を経て、standbyに遷移した時にのみ、DataHubプロセスに受渡しを行ないま す。

    [目次] [次の説明] [前の説明]

  6. 状態
    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プロ セスの状態というよりもハードウェアの状態 ということになります。

    [目次] [次の説明] [前の説明]

  7. 操作
    ユーザが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_STATUSnoneにする
    • メモリの解放
    • DAQプロセスに対してKILLシグナルを送 る
    などが上げられます。

    [目次] [次の説明] [前の説明]

  8. シグナルの受け取り
    DAQプロセスは命令を受ける際にRunControlプロセスからのシグナ ルを受けます。
    状態がnonebusyでな い限りはシグナルを受けることにより、名前空間 を読みにいき、命令の種類を知ります。

    [目次] [次の説明] [前の説明]

  9. 使用するモジュール
    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 枚


    [目次] [次の説明] [前の説明]

  10. データのフォーマット
    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
    5678
    S4 S5 S6 S7
    9101112
    GC1 GC2 CLK Xe1
    13141516
    Xe2 Xe3 Xe4 S1'
    Segment 4 Coincidence Register (16ch) ID-1 Element 0 1 2 3 4
    CsI 1CsI 2CsI 3CsI 4
    5678
    CsI 5CsI 6CsI 7CsI 8
    9101112
    CsI 9CsI 10CsI 11CsI 12
    13141516
    CsI 13CsI 14CsI 15-
    Segment 5 Coincidence Register (16ch) ID-2 Element 0 1 2 3 4
    CsI 16CsI 17CsI 18CsI 19
    5678
    CsI 20CsI 21CsI 22CsI 23
    9101112
    CsI 24CsI 25--
    13141516
    ----
    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


    図1: CsIカウンタの番号定義


    図2: 配置図


    図3: ロジック図

    以上のようなフォーマットでデータ収集を行なうと、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]

    となります。

    [目次] [次の説明] [前の説明]

  11. データの受渡し
    データの受渡し方法にはソケット通信を利用します。
    DAQプロセスはスピルゲートが開いてる間はひたすら、自身が稼働してい るホストのメモリにデータを蓄積します。
    スピル終了の信号がDAQプロセスに届くと、あらかじめ約束されたホスト のポート番号に対して定まったフォーマットのデー タを送り続けます。
    送っている間にイベントが発生した場合、DAQプロセスはそのイベントを 完全に見失います。

    [目次] [前の説明]

$Id: urd.html,v 1.57 2000/12/24 12:15:05 iwai Exp $
[ exmples / t473 / DAQ / URD ]   iwai@hep.sc.niigata-u.ac.jp