.. _UsermanualMask:
==================================
空蝉で使用するマスク処理について
==================================
マスク処理とは、データ処理を行う際に存在はしているものの処理には使用しないデータを指定するものである。例えば、特定の検出器の調子が悪い時にデータは収集したものの、処理には使わない場合にマスクをかけるし、また特定の検出部位(以降 **Pixel** と呼ぶ)に測定には不必要なバックグランドのシグナルがあった場合にマスクをかける、など様々な場面で使用する。
これは万葉ライブラリのルールを利用している。詳細は、万葉ライブラリユーザーマニュアルを参照のこと。
本稿では、空蝉で使用しているマスクをかけるためのコマンドと使用するパラメータファイルについて述べる。
マスクの対象と手段
=====================
空蝉のデータコンテナである、万葉ライブラリのElementContainer, ElementContainerArray, ElementContainerMatrixに与えられる。これらデータコンテナをマスクする場合、各コンテナのHeaderに、"MASKED"というキーを持つ整数値をもたせている。
+----------+----------+
|MASKEDの値|意味 |
+==========+==========+
|0 |マスクなし|
+----------+----------+
|1 |マスクあり|
+----------+----------+
また、ElementContainerのヒストグラム情報に対してもマスクをかけることができる。その場合、マスクが掛かっている値の **エラー値が負** の値となっている。
--------------------
マスク用コマンド
--------------------
マスクを行うコマンドは、ほぼ以下のものに集約される。
- DoMask
-------------------------
マスクを使用するコマンド
-------------------------
幾つかのコマンドは内部に **DoMask** コマンドを含んでおり、間接的に実行される。
- AverageAll
- GetNeunetHist
など
マスクファイル
=================
どのデータにマスクをかけるかを示したファイルである。DoMaskコマンドなどではこのファイルを与える。
-----------------
フォーマット1
-----------------
このフォーマットでは、検出器(detId)と **Pixel** の検出器内の順番( *PixelNo* )の二つを指定することで **Pixel** 自体にマスクをかけることができる。ファイルはテキストファイルである。
フォーマットの例を示す。
.. code-block:: bash
# INSTRUMENT SIK
# DATATYPE ElementContainerMatrix
# TIME 2014 3 10
0.0 0.99
1.0 1.99
10.0 10.1 10.2
15.
16.0 16.1 16.98 16.99
25.0 25.00
**ルール**
1. 先頭に#がある場合は無視される。
2. 1行に1検出器(PSDなど)の情報。
3. 検出器全体をマスクする場合、その検出器のIDをNとすると、" **N.** "と指定する。
4. *PixelNo* を指定する場合、検出器のIDをN、 *PixelNo* Mとすると、" **N.M** "と指定する。
5. 複数のPixelを指定する場合は、スペースで区切る。
-----------------
フォーマット2
-----------------
このフォーマットにより、フォーマット1と同様の指定した **Pixel** 自体に対してマスクをかけること以外に、指定した **Pixel** のヒストグラムデータの軸方向に対してマスクをかけることができる。そのフォーマットはテキストからXMLファイルへと変更となっている。
**Pixel** の指定方法として、そのID **PixelId** を用いる( *pixelid* タグ)か、検出器ID *detId* ( *detector* タグ)と検出部位の番号 *PixelNo* ( *pixelno* タグ)を用いる。
.. code-block:: xml
100-200
32-223
All
0:500,1000:1250
XMLタグ詳細
----------------
^^^^^^^^^^
maskInfo
^^^^^^^^^^
マスクファイル内全てのエレメントの親である。
+------------+----------------+----------------+
| |名前 | 意味・説明 |
+============+================+================+
|属性 |なし |装置コード |
+------------+----------------+----------------+
|親エレメント|なし | |
+------------+----------------+----------------+
|子エレメント|masklist | |
+------------+----------------+----------------+
^^^^^^^^^^^
masklist
^^^^^^^^^^^
マスク情報の親。属性値のnにマスクの数を入れる。
+------------+----------------+----------------+
| |名前 | 意味・説明 |
+============+================+================+
|属性 |n |マスク情報の個数|
+------------+----------------+----------------+
|親エレメント|maskInfo | |
+------------+----------------+----------------+
|子エレメント|mask |マスク情報 |
+------------+----------------+----------------+
^^^^^^^
mask
^^^^^^^
マスク情報。子エレメントにはマスクをかけるための具体的な情報をもたせている。
+------------+-----------------------+------------------+
| |名前 | 意味・説明 |
+============+=======================+==================+
|属性 |i |マスク情報のindex |
+------------+-----------------------+------------------+
|親エレメント|masklist | |
+------------+-----------------------+------------------+
|子エレメント|pixelid, detector, | |
| |pixelno, axis | |
+------------+-----------------------+------------------+
^^^^^^^^^^
pixelid
^^^^^^^^^^
マスクをする検出器部位の指定。検出器部位のID( *PIXELID* )で指定する。ElementContainerのヘッダ内の "PIXELID" 情報を利用する。指定方法としては、この *pixelid* タグで指定する方法と、*detector* タグ及び *pixelno* タグを用いるやり方のどちらかであるが、両方の記述があった場合、この *pixelid* タグが優先される。
+------------+-----------------+--------------------------------------------------------------------+
| |名前 |意味・説明 |
+============+=================+====================================================================+
|属性 |無し |インデックス |
+------------+-----------------+--------------------------------------------------------------------+
|親エレメント|mask | |
+------------+-----------------+--------------------------------------------------------------------+
|子エレメント|無し | |
+------------+-----------------+--------------------------------------------------------------------+
|コンテンツ | |マスクをしたいPixelの PixelID をカンマ区切りで記述する。 |
| | |範囲を指定する場合はハイフンでつなぐ。 |
| | |例えば、「5-10,15,20」ならPixelIDが5から10までのPixelと、15, 20の |
| | |計8 Pixelを指定。 |
+------------+-----------------+--------------------------------------------------------------------+
^^^^^^^^^^
detector
^^^^^^^^^^
検出器情報。検出器のID( *DETID* )を指定する。ElementContainerArrayのヘッダ内の "DETID" 情報を利用する。 *pixelid* タグが併記されていた場合、 *pixelid* タグが優先される。
+------------+-----------------+--------------------------------------------------------------------+
| |名前 |意味・説明 |
+============+=================+====================================================================+
|属性 |無し |インデックス |
+------------+-----------------+--------------------------------------------------------------------+
|親エレメント|mask | |
+------------+-----------------+--------------------------------------------------------------------+
|子エレメント|無し | |
+------------+-----------------+--------------------------------------------------------------------+
|コンテンツ | |マスクをしたいPixelを含む検出器をDetIdのカンマ区切りで指定する。 |
| | |範囲を指定する場合はハイフンでつなぐ。 |
| | |例えば、「5-10,15,20」ならDetIDが5から10までの検出器と、15, 20の |
| | |計8本を指定。 |
+------------+-----------------+--------------------------------------------------------------------+
^^^^^^^^^^
pixelno
^^^^^^^^^^
**Pixel** を指定する。 *detector* との組み合わせで、検出部位を指定できる。なお、*pixelno* とはElementCOntainerArrayに収められている順番となる。 *pixelid* タグが併記されていた場合、 *pixelid* タグが優先される。
+------------+-----------------+--------------------------------------------------------------------+
| |名前 |意味・説明 |
+============+=================+====================================================================+
|属性 |無し |インデックス |
+------------+-----------------+--------------------------------------------------------------------+
|親エレメント|mask | |
+------------+-----------------+--------------------------------------------------------------------+
|子エレメント|無し | |
+------------+-----------------+--------------------------------------------------------------------+
|コンテンツ | |マスクをしたいPixelの検出器内の順番PixelNoをカンマ区切りで記述する。|
| | |範囲を指定する場合はハイフンでつなぐ。 |
| | |例えば、「5-10,15,20」ならPixelNoが5から10までの検出部位と、15, 20の|
| | |計8Pixelを指定。 |
| | |コンテンツを省略( のみ記述)した場合や、"All"と入れると |
| | |全部のPixelにマスク、すなわちdetectorで指定した検出器自体にマスクを |
| | |与えることになる。 |
+------------+-----------------+--------------------------------------------------------------------+
^^^^^^^^
axis
^^^^^^^^
指定された **Pixel** のヒストグラムの横軸方向へのマスクを指定する。
+------------+-----------------+--------------------------------------------------------------------+
| |名前 |意味・説明 |
+============+=================+====================================================================+
|属性 |key |マスクをかける範囲を指定するのに用いる横軸を設定する。 |
| | |与える値はElementContainer内のベクターのキーを指定する。 |
| | |省略(key="")した場合、デフォルトの横軸が用いられる。 |
+------------+-----------------+--------------------------------------------------------------------+
|親エレメント|mask | |
+------------+-----------------+--------------------------------------------------------------------+
|子エレメント|無し | |
+------------+-----------------+--------------------------------------------------------------------+
|コンテンツ | |Keyで与えた横軸上の数値をカンマ区切りで記述する。 |
| | |範囲を指定する場合はコロン(:)でつなぐ。 |
| | |例えば「-2:2,15:16」なら横軸が-2から2までの間の強度と、15から16まで |
| | |の強度に対してマスクをかける。 |
| | |計8Pixelを指定。 |
| | |コンテンツを省略( のみ記述)した場合や |
| | |"All"と指定した場合、全領域へのマスクすなわち、その検出部位(Pixel)に|
| | |マスクを与えることになる。 |
+------------+-----------------+--------------------------------------------------------------------+
フォーマット2の具体例
-------------------------
**例1**
PixelIdが10000から11000の範囲のPixelをマスクする。
.. code-block:: xml
10000-11000
**例2**
PixelIdが11112のPixelのヒストグラムの横軸1000から2000までの領域をマスクする。
.. code-block:: xml
11112
1000:2000
**例3**
Detector Idが56-60の範囲と100-110の範囲の検出器の、検出器内の順番が 0から5と 95から99のPixelに対してマスクをかける。
.. code-block:: xml
56-60,100-110
0-5, 95-99