========================================
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 |子エレメントの個数|
+------------+----------------+-------------------------+
|親エレメント|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 | |
+------------+----------------+-----------------------+
|子エレメント|なし | |
+------------+----------------+-----------------------+
|コンテンツ |,,... |検出器の位置情報。 |
| |(実数、 |numAxis=1なら8個、 |
| |カンマ区切り) |numAxis=2なら13個。 |
+------------+----------------+-----------------------+
------------
bankInfo
------------
検出器のグループ化(バンク)情報の親。
+------------+----------------+----------------------------+
| |名前 | 意味・説明 |
+============+================+============================+
|属性 |なし | |
+------------+----------------+----------------------------+
|親エレメント|detectorInfo | |
+------------+----------------+----------------------------+
|子エレメント|bank |検出器グループ化の情報 |
+------------+----------------+----------------------------+
|コンテンツ |なし | |
+------------+----------------+----------------------------+
---------------
bankInfo/bank
---------------
検出器のグループ化(バンク)情報を記す。
+------------+----------------+---------------------------------------+
| |名前 | 意味・説明 |
+============+================+=======================================+
|属性 |bankId |バンク識別ID |
| +----------------+---------------------------------------+
| |name |バンクの名前 |
+------------+----------------+---------------------------------------+
|親エレメント|bankInfo | |
+------------+----------------+---------------------------------------+
|子エレメント|なし | |
+------------+----------------+---------------------------------------+
|コンテンツ |All |すべてのPixelIDに適応 |
| +----------------+---------------------------------------+
| |- |ハイフンは範囲(10-39なら10から39まで)|
| +----------------+---------------------------------------+
| |, |カンマは個別の指定 |
| +----------------+---------------------------------------+
| |,- |両方の共存も可能 |
+------------+----------------+---------------------------------------+
位置情報のフォーマットの詳細
==============================
検出器の装置内座標系における位置を定義する。
1. Pixel位置計算のための仮定
Pixelは検出器上の直線軸上に位置し、1つもしくは2つの軸の線形結合によって表記しうることとする。
2. いくつかのルール
- 軸のベクトルの向きはPixel番号が小さい方から大きい方へ。
- 数値はすべてミリメートルを単位とする。
検出器の位置情報は下記に述べるベクトルとスカラのパラメータで指定する。それらの情報をカンマ区切りの実数として、DetectorInfo内のpositionInfo/positionのコンテンツに記述する
------------------------------
1次元検出器の場合のパラメータ
------------------------------
|image0|
- 検出器自体の位置を定義するベクトル
- 試料位置を原点としたベクトル: :math:`\vec P_{org}`
- 検出器内の軸を定義するベクトル: :math:`\vec U`
大きさは使用するPixelの端から端までとする。
- :math:`\vec P_{org}` の終点を検出器内の軸で表すためのスカラ: :math:`\vec L_{U0}`
:math:`\vec U` と :math:`\vec V` の始点からの距離で示す。
なお、Pixel数に関してはこのフォーマットには含まれないことに留意すること。
positionのコンテンツ
---------------------
positionタグの属性numAxisが1のときは8個の実数(カンマ区切り)で記述する。
:math:`P_{org-x}` , :math:`P_{org-y}` , :math:`P_{org-z}` , :math:`U_{x}` , :math:`U_{y}` , :math:`U_{z}` , :math:`L_{U0}` , w
wは、:math:`\vec U` に垂直な方向のPixelの幅 [mm]である。
------------------------------
2次元検出器の場合のパラメータ
------------------------------
|image1|
|image2|
- 検出器自体の位置を定義するベクトル
- 試料位置を原点としたベクトル: :math:`\vec P_{org}`
- 検出器内の軸を定義するベクトル: :math:`\vec U` と :math:`\vec V`
大きさは使用するPixelの端から端までとする。
- :math:`\vec P_{org}` の終点を検出器内の軸で表すためのスカラ: :math:`\vec L_{U0}` と :math:`\vec L_{V0}`
:math:`\vec U` と :math:`\vec V` の始点からの距離で示す。
なお、Pixel数に関してはこのフォーマットには含まれないことに留意すること。
positionのコンテンツ
---------------------
positionタグの属性numAxisが2のときは13個の実数(カンマ区切り)で記述する。
:math:`P_{org-x}` , :math:`P_{org-y}` , :math:`P_{org-z}` , :math:`U_{x}` , :math:`U_{y}` , :math:`U_{z}` , :math:`V_{x}` , :math:`V_{y}` , :math:`V_{z}` , :math:`L_{U0}` , :math:`L_{V0}` , :math:`w_{U}` , :math:`w_{V}`
ここで、
.. math::
{\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)
と置いている。また、 :math:`w_{U}` は、:math:`\vec U` 方向のPixelの幅 [mm]、:math:`w_{V}` :math:`\vec V` 方向のPixelの幅 [mm]である。
------------------------------
位置の計算例
------------------------------
計算に必要な値は以下のとおり。
- :math:`n_{pixel}` :Pixel分割数
- :math:`\vec P_{org}` :原点となる位置
- :math:`\vec U` :PSD上のPixelNo=0のピクセル端から( :math:`n_{pixel}` -1 )へ向かい、Pixel領域の両端を結ぶベクトル
- :math:`L_{U0}` ::math:`\vec P_{org}` からPixelNo=0のピクセル端までの長さ
これらのうち、detId(PSDのID)と、 :math:`\vec P_{org}` , :math:`\vec U` , :math:`L_{U0}` の情報はDetectorInfoに含まれる。
「Pixel位置」とは、Pixelの領域の中心を示すとする。
PixelNo=0のPixelの位置を :math:`\vec P_{0}` と示すとすると、
.. math::
{\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
となる。また図のようにPixel No.が増える方向のPixel単位ベクトル :math:`\vec u` を定義する。
.. math::
\vec p = \frac{{\vec U}}{{{n_{{\rm{pixel}}}}}}
これらを用い、n番目のPixelの位置を :math:`\vec P_{n}` で表すと
.. math::
{{\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
となる。
.. |image0| image:: media/Define1D_detector.png
:width: 300px
:alt: figure of folders structure on Utsusemi environment
.. |image1| image:: media/Define2D_detector.png
:width: 300px
:alt: figure of folders structure on Utsusemi environment
.. |image2| image:: media/Define2D_detector2.png
:width: 300px
:alt: figure of folders structure on Utsusemi environment