[C3.2]物理データ

KONOEでは、最初はばらばらのバイナリーデータはデータレコードにまとめられ 解析の段階で物理データという属性のオブジェクトに解読されてヒストグラムなど 実際のアナリシスに用いられます。

現在の実装は こうなっています。

1.物理データを扱うモデル

1.1.物理データのとらえかた

物理データは最終的には数値で扱えるものです。ある意味では数値の 集合と考えることが出来ます。しかし、単純な配列であらわされる ようなものでもありません。ごく自然な考えとして、例えばホドスコープの ヒットは可変数です。イベント毎にADCヒットの数は(ホドスコープという 測定器をセットで考えたとき)まちまちです。その数自身(マルチプリシティ) 物理データとしてあつかわれるべきものです。また、同じ測定器の 例えばTDCのヒット数はADCのヒット数と同じとは限りません。

そこで、物理データをある抽象的な概念として例えば測定器毎に定義します。 それはいくつかのカテゴリーのデータを持っており、カテゴリーごとに 今言った多重度や生の値をとりだすメソッドを定義します。生の値は 物理データ要素と呼ぶことにします。

上述したカテゴリーは例えばADCだとかTDCだとか任意のビットパターンなど 色々考えられます。また、同じカテゴリーに属するデータは例えばADCの 値のように取りうる範囲が同じように限定されます。また、特定の データソースから発生するという意味で共通性を持っています。これらを 狭い意味で物理データと呼びます。

さらに物理データはある測定器に属するものとしていくつかのカテゴリーの ものを合わせて扱ったほうが適当かも知れません。

また、いくつかの物理データの間の演算によって新しい物理データを 計算することも可能でしょう。チェンバーのデータからトラッキングを おこない、トラックという物理データを得ることが出来るように。

1.2.データレコードと物理データの関係

ある意味で、物理データオブジェクトの実装は解析プログラムとして そのつど書き換えられる性格のものの一面を持ちます。ですが、ツールと して、ある一定の標準物理データモデルを組み込んでおいて、例えば テストの段階でそれを利用して簡単な実験を行なうことなどは必要な 機能だと考えられます。

このように組み込まれた型をデータレコードとして定義しました。これは ソケットを介してやり取りされたり、ファイルに記録されたりするためにも 必要な仕組みです。一方、解析プログラムでは目的に応じた物理データ クラスを定義したいものです。そこで、これらの間をつなぐメカニズム、 すなわち、システム標準のデータレコードの内容を解析して、ユーザ定義の 物理データを生成するサービスが必要ということです。この機能を データアナライザとして実装します。

データアナライザは、データレコードの生成、すなわちこれはソケットからの データレコードの受け取りや、ファイルからの読み込みというきっかけを 与える意味で重要なものですが、そのタイミングで起動されます。処理の 流れとして重要です。プログラムはデータレコードを発見するとアナライザに 渡します。アナライザは個別の内容を解析し、物理データに変換して、 必要な消費者へまわします。

消費者としては、

などが考えられます。それぞれに対応したサービスクラスが必要です。

2.実装

2.1.データ多重項KonoeDataMultipletクラス

例えばTDCのデータは、それ自身は単なる整数ですが、TDCの値であるという 情報、さらにはどの検出器に接続されたTDCであるかという情報を合わせる ことで、物理情報として扱えるようになります。この場合TDC値という 物理データ要素であると考えます。

ヒストグラミングなどはこの物理データ要素を使ってフィルすることになります。

データ要素は例えばADCやTDC値のようなスカラーの場合もありますが、 フラッシュADCやトランジェントレコーダのように値の集合の場合、 パイプラインTDCのようにONとOFFの時間シーケンスとして扱われるもの、 ビットパターンなど、表現に工夫が必要なものがあります。また、 二次データは位置情報や形状、エネルギーや運動量などさまざまなものを 扱う必要があります。

KONOEでは物理データ要素を「データ多重項」として定義します。 それぞれの項は名前を持ち、データ多重項記述子によって記述されます。

2.2.物理量KonoePhysicalValueクラス

実際の処理では例えばドリフトチェンバーDC1Xのデータというように測定器や その集合のデータとして扱いたい場合があります。そのことにより、ヒットの 多重度のような、集合としての物理データも扱えるようになります。また、 物理データオブジェクトの間で相関をとることなども考えられます。

実装の上では物理量はデータ多重項の集合として表現されます。

2.3.物理データアナライザKonoeDataAnalyzer

データ解析はある意味では物理データオブジェクトの生成の部分がもっとも ユーザに依存する部分になります。依存するというのはユニバーサルな コードに書けないということです。

具体的にやることは、まず生データの段階ではイベントレコードから データリストにしたがってデータエレメントを取り出し、物理データ 要素に変換します。それらの要素を物理データオブジェクトに加えて いきます。

この部分はデータアナライザクラスが受け持ちます。データアナライザは いくつものセクションアナライザから構成されます。データアナライザの 実装は標準的なものですが、セクションアナライザはデータレコードの 構成によってさまざまです。セクションタイプやセグメントタイプは 読み出しリストで与えられていますが、それに対応したセクションアナライザ クラスはユーザが用意しなければなりません。

KONOEではセクションアナライザの下敷き(抽象クラス)と、一般に共通に 使えるデータセクションの枠組みを用意します。

2.4.物理データの演算

物理データはイベント毎に発生するデータの集合ですが、いくつもの 種類のものが考えられます。データレコードに含まれるものは基本的に ハードウエアから読み出された生データです。ここでは一次データと 呼んでいます。それに対し、一次データを用いて演算を行なうことによって 得られる二次データがあります。色々なレベルの二次データがあります。 生データの単純な演算のようなものから、トラックやクラスター情報など まで、場合によっては粒子識別や事象再構成の結果まで。

また、解析の主要なプロセスは、ある物理量に条件を与えたときの 別の物理量の分布を調べることで、バックグラウンドの中から信号を 抽出していきます。これまでn-tuplesといわれているような機構が 必要です。

これらの手順を一連の操作として登録して、順に呼び出す機構を導入する 必要があります。個別の操作をデータオペレータが実行します。 オペレータは入力となる物理データを解析し、結果を二次物理データに フィルしていきます。オペレータはデータドライバーに登録されており、 データドライバーが一次データ生成完了をアナライザから受信し、 順にオペレータを起こして回ります。最後の操作が完了すると 全ての二次データが利用可能になり、次のレベルの消費者へまわされます。

オペレータにはいくつかのタイプが考えられます。

情報変換型
一次データは単純なADCの値などです。それに対して、例えば エネルギースケールを与えることで、他の値と直接演算できる情報に 置き換えることができます。同様に、ヒットアドレスから該当する 検出器の幾何学情報を与えてもいいわけです。
相関・総合型
複数の一次・二次データから総合して新しい情報を生成するものです。 カロリメータのヒットからクラスターを求めるとか、チェンバーの情報から トラックを得るなどの高度なものもありますが、もっと単純なもの、例えば スタッガーしたチェンバーのTDCの値の単純和なども考えられます。
フィルター・論理型
ある物理データに条件を与え、それが満たされたときにもとデータを コピーし、そうでないときは空にします。ヒストグラムをフィルするか どうかを判断したことになります。同様にイベントを後に残すかどうか イベントセレクションに使えます。
オペレータはユーザが解析するために直接実装するクラスになります。 トラッキングやクラスタリングなどはかなり複雑な処理になります。それらに いかに効率よく情報を与えるかを考えておく必要があります。


[classes/physdata.html] Last Modified : 19-May-1998.

KONOEコラボレーション konoe-req@konoe.kek.jp