[C3.1]データレコードクラス
実験データを保管するための枠組みであるデータレコードについて考えて
見ましょう。KONOEでは、データの発生源であるDAQモジュールからは
ばらばらなデータが読みだされます。各々のデータは、それがどこから
読みだされたかなどの情報が付加されてはじめて意味のあるものになります。
別のところでも述べましたが、ばらばらのデータをとりあえず適当なアドレスなど
のタグと合わせて保存するための枠組みがデータレコードです。データレコードは
そこにかかれるデータとはなんの関係もありません。単なる器と考えられます。
それにより、データ収集の部分はまったくデータの実際の中身などとは無関係に
作ることが出来ます。実際の物理データとしての解読は解析段階の仕事になり、
それにともない、データ収集部分をユーザが再構築する必要はなくなります。
現在の実装は
こうなっています。
1.データレコードの構造
一般的にデータレコードはいくつかの種類に属するデータの集まりと考える
ことが出来ます。色々な構造を持ってよいわけですが、入出力などを
含め、KONOEの中で使われるためにはある共通の枠組みで扱われることが
望ましいことになります。データレコードはある意味ではコンテナであり、
オブジェクトストリームを実装するため、基本的な構造を規定します。
具体的には次のような階層構造を与えることにします。
- データレコード。データセクションの集まり。
- データセクション。データセグメントの集まり。
- データセグメント。データエレメントの集まり。
- データエレメント。実際のデータ要素。
データエレメントは最小の構成単位で、例えば整数の値を一つ持ちます。
データセグメントはデータエレメントが一様に並んだもので、ある意味で
配列のようなものです。データセクションはいくつかのデータセグメントを
組み合わせて構成できることから、実用的な一つのデータのまとまりを
あらわします。データレコードはそれらの並びであると考えます。
もちろんもっと複雑な任意のレベルの構造を持った枠組みを考えることも
できますが、KONOEは比較的簡単なこの構造ですべてのデータレコードを
扱うモデルを採用します。この意味は、共通の書式でデータを扱うことに
よって、データ収集の大部分を汎用に保つことをめざすことです。
具体的には2節で述べたデータリストに従ってDAQモジュールから
読みだしたデータをデータレコードに加えていく部分と、同じデータ
リストに基づいてデータレコードを解読し、後に述べる物理データ
オブジェクトを生成する部分をデータの内容によらない形で実装することが
できるということです。
2.データレコードの種類
データレコードにはいくつかの種類がありえます。これまでの実験でも
例えば次のようなものが用いられています。
- ランビギンレコード
- イベントレコード
- ランエンドレコード
- スピルレコード
ランビギンレコードは文字通り実験ランの開始を示すもので、開始時刻や
コメント、実験設定の情報などを記録します。ランエンドはラン終了の
もので、終了時刻や統計情報などを記録します。トリガー毎の情報は
イベントレコードに記録されます。スピルレコードはPS実験のように
ビームがスピル構造を持っている場合、スピル毎の情報を記録するのに
もちいられます。もちろん他にもいろいろなレコードがありえます。
2.1.イベントレコード
イベントレコードはデータ収集の通常の処理で読み込まれるデータの塊です。
イベントレコードは様々な種類のデータセクションから構成されます。
例えばヘッダセクションを考えてみましょう。それにはランナンバーや
イベントナンバーなどのデータセグメントがそれに所属します。各々は
一つだけの要素の(通常は整数の)データエレメントで記述できます。
もちろん、通常の測定器からの信号のADCやTDCの値なども同じように
記述して行けます。例えばドリフトチェンバーデータセクションは
TDCデータセグメントから、カロリメータデータセクションはADCセグメントと
TDCセグメントから等々。
イベントレコードに含まれるデータについてもう少し検討してみましょう。
それぞれのデータセクションは対応する測定器があり、該当するADCや
TDCといったモジュールはデータセグメントにほぼ対応します。もちろん
そうでない実装も可能ですが。
この意味で測定器オブジェクトや
ADCオブジェクトなどといったものが必要であり、データセクションや
データセグメントのオブジェクトからそれらへのリンクが
必要ということになってきます。
ADCオブジェクトは先に述べたDAQモジュールのオブジェクトと考えることが
できます。それ以外に測定器クラスを考える必要があります。それは
実際にイベントディスプレイされる対象と考えると幾何学情報をもって
いなければなりません。また、測定器の検出単位の並び方や数、位置、寸法
形状なども重要な情報です。このような測定器クラスのオブジェクトは
イベントレコードに伴う必要はありませんが、データセクションへの
対応については別途関係が記述される必要があります。
3.実装
上述した構成をそのままクラスにインプリメントします。
3.1.KonoeDataElement
3.2.KonoeDataSegment
3.3.KonoeDataSection
3.4.KonoeDataRecord

[classes/datarecord.html] Last Modified : 06-Feb-1998.
KONOEコラボレーション
konoe-req@konoe.kek.jp