DetectorInfoとそのフォーマットについて#

概要#

空蟬において、DAQミドルウェアが出力するイベントデータからDetectorInfoを利用して作成された検出単位のヒストグラムに対して位置情報などを付与するために必要な情報をXML形式で記述しており、それを”Detector Info”と定義している。本稿ではDetecotInfoの役割とそのフォーマットについて記述する。

DetectorInfoの情報#

Detector Infoは、XML形式によって記述されている。またその情報には大まかに3種類ある。DetectorInfoが持つ情報は以下のようなものである。

Detector Info内の情報

XMLのタグ

1

基本的な距離の情報(L1など)

instrumentInfo, L1など

2

Time-Focusingパラメータの情報

tfp, tfpCalcParamsなど

3

検出器の位置を示す情報

positionInfo, positionなど

4

検出器のまとまり(Bank)を示す情報

bankInfo, bankなど

5

検出器の構造を示す情報

フォーマットの詳細#

これらの情報を収めるXMLタグの詳細な情報を以下に記す。

detectorInfo#

DetectorInfo内の全てのエレメントの親である。

名前

意味・説明

属性

inst

装置コード

version

バージョン

update

アープデート日時

親エレメント

なし

子エレメント

instrumentInfo, tfpCalcParams, positionInfoなど

instrumentInfo#

装置の配置情報を含む。現在はL1のみ。

名前

意味・説明

属性

なし

親エレメント

detectorInfo

子エレメント

L1

線源と試料間距離情報

TypicalL2

代表的なL2

TypicalDS

代表的な1 pixelあたりの立体角

instrumentInfo/L1#

線源と試料の間の距離。単位は[mm]。

名前

意味・説明

属性

なし

親エレメント

instrumentInfo

子エレメント

なし

コンテンツ

L1

線源試料間距離情報[mm]

instrumentInfo/TypicalL2#

代表的なL2(試料とPixelとの距離)。単位は[mm]。

名前

意味・説明

属性

なし

親エレメント

instrumentInfo

子エレメント

なし

コンテンツ

L2

単位[mm]

instrumentInfo/TypicalDS#

代表的な1Pixelあたりの立体角。単位は[str]。

名前

意味・説明

属性

なし

親エレメント

instrumentInfo

子エレメント

なし

コンテンツ

立体角

単位[str]

tfp#

PixelごとのTime Focusing パラメータの情報の親。

名前

意味・説明

属性

n

子エレメント<param>の個数

親エレメント

detectorInfo

子エレメント

param

コンテンツ

なし

tfp/param#

PixelごとのTime Focusing パラメータ情報。

名前

意味・説明

属性

i

インデックス

pixId

pixel Id

親エレメント

tfp

子エレメント

なし

コンテンツ

Time Focusing パラメータ

< A, B >

tfpCalcParams#

全PixelのヒストグラムのTime-of-Flightを、指定した特定のPixelへ波長を揃えてたたみ込むためのパラメータを記述する。

名前

意味・説明

属性

なし

親エレメント

detectorInfo

子エレメント

psd

コンテンツ

なし

tfpCalcParams/psd#

現在PSDだけを対象にしているが、将来別の可能性もあるため、PSDとして枠を作成している。

名前

意味・説明

属性

なし

親エレメント

tfpCalcParams

子エレメント

reference

畳み込み先の位置情報

コンテンツ

なし

tfpCalcParams/psd/reference#

たたみ込む先の情報を記述する。

名前

意味・説明

属性

なし

親エレメント

psd

子エレメント

L2

畳み込み先のL2

theta

畳み込み先のPolar Angle

コンテンツ

なし

positionInfo#

検出器の位置情報の親である。

名前

意味・説明

属性

なし

親エレメント

detectorInfo

子エレメント

position

検出器ごとの位置情報

コンテンツ

なし

positionInfo/position#

検出器の位置情報を示す。コンテンツの具体的な記述方法や具体的な位置の計算方法などは、後述(  )する。

名前

意味・説明

属性

detId

detId(検出器ID)

numAxis

検出器内の座標軸数

親エレメント

positionInfo

子エレメント

なし

コンテンツ

<p1>,<p2>,… (実数、 カンマ区切り)

検出器の位置情報。 numAxis=1なら8個、 numAxis=2なら13個。

bankInfo#

検出器のグループ化(バンク)情報の親。

名前

意味・説明

属性

なし

親エレメント

detectorInfo

子エレメント

bank

検出器グループ化の情報

コンテンツ

なし

bankInfo/bank#

検出器のグループ化(バンク)情報を記す。

名前

意味・説明

属性

bankId

バンク識別ID

name

バンクの名前

親エレメント

bankInfo

子エレメント

なし

コンテンツ

All

すべてのPixelIDに適応

<n1>-<n2>

ハイフンは範囲(10-39なら10から39まで)

<n1>,<n2>

カンマは個別の指定

<n1>,<n3>-<n4>

両方の共存も可能

位置情報のフォーマットの詳細#

検出器の装置内座標系における位置を定義する。

  1. Pixel位置計算のための仮定

    Pixelは検出器上の直線軸上に位置し、1つもしくは2つの軸の線形結合によって表記しうることとする。

  2. いくつかのルール
    • 軸のベクトルの向きはPixel番号が小さい方から大きい方へ。

    • 数値はすべてミリメートルを単位とする。

検出器の位置情報は下記に述べるベクトルとスカラのパラメータで指定する。それらの情報をカンマ区切りの実数として、DetectorInfo内のpositionInfo/positionのコンテンツに記述する

1次元検出器の場合のパラメータ#

figure of folders structure on Utsusemi environment

  • 検出器自体の位置を定義するベクトル
    • 試料位置を原点としたベクトル: \(\vec P_{org}\)

    • 検出器内の軸を定義するベクトル: \(\vec U\)

      大きさは使用するPixelの端から端までとする。

    • \(\vec P_{org}\) の終点を検出器内の軸で表すためのスカラ: \(\vec L_{U0}\)

      \(\vec U\)\(\vec V\) の始点からの距離で示す。

    なお、Pixel数に関してはこのフォーマットには含まれないことに留意すること。

positionのコンテンツ#

positionタグの属性numAxisが1のときは8個の実数(カンマ区切り)で記述する。

\(P_{org-x}\) , \(P_{org-y}\) , \(P_{org-z}\) , \(U_{x}\) , \(U_{y}\) , \(U_{z}\) , \(L_{U0}\) , w

wは、\(\vec U\) に垂直な方向のPixelの幅 [mm]である。

2次元検出器の場合のパラメータ#

figure of folders structure on Utsusemi environment figure of folders structure on Utsusemi environment

  • 検出器自体の位置を定義するベクトル
    • 試料位置を原点としたベクトル: \(\vec P_{org}\)

    • 検出器内の軸を定義するベクトル: \(\vec U\) と \(\vec V\)

      大きさは使用するPixelの端から端までとする。

    • \(\vec P_{org}\) の終点を検出器内の軸で表すためのスカラ: \(\vec L_{U0}\) と \(\vec L_{V0}\)

      \(\vec U\)\(\vec V\) の始点からの距離で示す。

    なお、Pixel数に関してはこのフォーマットには含まれないことに留意すること。

positionのコンテンツ#

positionタグの属性numAxisが2のときは13個の実数(カンマ区切り)で記述する。

\(P_{org-x}\) , \(P_{org-y}\) , \(P_{org-z}\) , \(U_{x}\) , \(U_{y}\) , \(U_{z}\) , \(V_{x}\) , \(V_{y}\) , \(V_{z}\) , \(L_{U0}\) , \(L_{V0}\) , \(w_{U}\) , \(w_{V}\)

ここで、

\[\begin{split}{\vec P_{{\rm{org}}}} = \left( {\begin{array}{*{20}{c}}{{P_{{\rm{org - x}}}}}\\{{P_{{\rm{org - y}}}}}\\{{P_{{\rm{org - z}}}}}\end{array}} \right) , \vec U = \left( {\begin{array}{*{20}{c}}{{U_{\rm{x}}}}\\{{U_{\rm{y}}}}\\{{U_z}}\end{array}} \right) , \vec V = \left( {\begin{array}{*{20}{c}}{{V_x}}\\{{V_y}}\\{{V_z}}\end{array}} \right)\end{split}\]

と置いている。また、 \(w_{U}\) は、\(\vec U\) 方向のPixelの幅 [mm]、\(w_{V}\) \(\vec V\) 方向のPixelの幅 [mm]である。

位置の計算例#

計算に必要な値は以下のとおり。

  • \(n_{pixel}\) :Pixel分割数

  • \(\vec P_{org}\) :原点となる位置

  • \(\vec U\) :PSD上のPixelNo=0のピクセル端から( \(n_{pixel}\) -1 )へ向かい、Pixel領域の両端を結ぶベクトル

  • \(L_{U0}\)\(\vec P_{org}\) からPixelNo=0のピクセル端までの長さ

これらのうち、detId(PSDのID)と、 \(\vec P_{org}\) , \(\vec U\) , \(L_{U0}\) の情報はDetectorInfoに含まれる。

「Pixel位置」とは、Pixelの領域の中心を示すとする。 PixelNo=0のPixelの位置を \(\vec P_{0}\) と示すとすると、

\[ \begin{align}\begin{aligned}{\vec P_{\rm{0}}} = {\vec P_{{\rm{org}}}} - \frac{{{L_{{\rm{U0}}}}}}{{{L_{{\rm{psd}}}}}}\vec U + \frac{1}{2}\frac{{\vec U}}{{{n_{{\rm{pixel}}}}}}\\\quad = {\vec P_{{\rm{org}}}} - \left( {\frac{{{L_{{\rm{U0}}}}}}{{\left| {\vec U} \right|}} - \frac{1}{{2{n_{{\rm{pixel}}}}}}} \right)\vec U\end{aligned}\end{align} \]

となる。また図のようにPixel No.が増える方向のPixel単位ベクトル \(\vec u\) を定義する。

\[\vec p = \frac{{\vec U}}{{{n_{{\rm{pixel}}}}}}\]

これらを用い、n番目のPixelの位置を \(\vec P_{n}\) で表すと

\[ \begin{align}\begin{aligned}{{\vec P}_{\rm{n}}} = {{\vec P}_{\rm{0}}} + n \cdot \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\rightharpoonup$}} \over p}\\\quad = {{\vec P}_{{\rm{org}}}} - \left( {\frac{{{L_{{\rm{U0}}}}}}{{\left| {\vec U} \right|}} - \frac{1}{{2{n_{{\rm{pixel}}}}}}} \right)\vec U + n \cdot \frac{{\vec U}}{{{n_{{\rm{pixel}}}}}}\\\quad = {{\vec P}_{{\rm{org}}}} - \left( {\frac{{{L_{{\rm{U0}}}}}}{{\left| {\vec U} \right|}} - \frac{{n + {\textstyle{1 \over 2}}}}{{{n_{{\rm{pixel}}}}}}} \right)\vec U\end{aligned}\end{align} \]

となる。