空蟬で使用するマスク処理について

マスク処理とは、データ処理を行う際に存在はしているものの処理には使用しないデータを指定するものである。例えば、特定の検出器の調子が悪い時にデータは収集したものの、処理には使わない場合にマスクをかけるし、また特定の検出部位(以降 Pixel と呼ぶ)に測定には不必要なバックグランドのシグナルがあった場合にマスクをかける、など様々な場面で使用する。

これは万葉ライブラリのルールを利用している。詳細は、万葉ライブラリユーザーマニュアルを参照のこと。

本稿では、空蟬で使用しているマスクをかけるためのコマンドと使用するパラメータファイルについて述べる。

マスクの対象と手段

空蟬のデータコンテナである、万葉ライブラリのElementContainer, ElementContainerArray, ElementContainerMatrixに与えられる。これらデータコンテナをマスクする場合、各コンテナのHeaderに、"MASKED"というキーを持つ整数値をもたせている。

MASKEDの値

意味

0

マスクなし

1

マスクあり

また、ElementContainerのヒストグラム情報に対してもマスクをかけることができる。その場合、マスクが掛かっている値の エラー値が負 の値となっている。

マスク用コマンド

マスクを行うコマンドは、ほぼ以下のものに集約される。

  • DoMask

マスクを使用するコマンド

幾つかのコマンドは内部に DoMask コマンドを含んでおり、間接的に実行される。

  • AverageAll

  • GetNeunetHist

など

マスクファイル

どのデータにマスクをかけるかを示したファイルである。DoMaskコマンドなどではこのファイルを与える。

フォーマット1

このフォーマットでは、検出器(detId)と Pixel の検出器内の順番( PixelNo )の二つを指定することで Pixel 自体にマスクをかけることができる。ファイルはテキストファイルである。 フォーマットの例を示す。

# 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 detIddetector タグ)と検出部位の番号 PixelNopixelno タグ)を用いる。

<?xml version="1.0" encoding="utf-8" ?>
<maskInfo>
    <masklist n="2">
        <mask i="0">
            <pixelid> 100-200 </pixelid>
            <detector/>
            <pixelno/>
            <axis key=""/>
        </mask>
        <mask i="1">
            <pixelid/>
            <detector> 32-223 </detector>
            <pixelno> All</pixelno>
            <axis key="TOF"> 0:500,1000:1250 </axis>
        </mask>
    </masklist>
</maskInfo>

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を指定。 コンテンツを省略( <pixelno/>のみ記述)した場合や、"All"と入れると 全部のPixelにマスク、すなわちdetectorで指定した検出器自体にマスクを 与えることになる。

axis

指定された Pixel のヒストグラムの横軸方向へのマスクを指定する。

名前

意味・説明

属性

key

マスクをかける範囲を指定するのに用いる横軸を設定する。 与える値はElementContainer内のベクターのキーを指定する。 省略(key="")した場合、デフォルトの横軸が用いられる。

親エレメント

mask

子エレメント

無し

コンテンツ

Keyで与えた横軸上の数値をカンマ区切りで記述する。 範囲を指定する場合はコロン(:)でつなぐ。 例えば「-2:2,15:16」なら横軸が-2から2までの間の強度と、15から16まで の強度に対してマスクをかける。 計8Pixelを指定。 コンテンツを省略( <axis key=""/>のみ記述)した場合や "All"と指定した場合、全領域へのマスクすなわち、その検出部位(Pixel)に マスクを与えることになる。

フォーマット2の具体例

例1

PixelIdが10000から11000の範囲のPixelをマスクする。

 <?xml version="1.0" encoding="utf-8" ?>
 <maskInfo>
    <masklist n="2">
        <mask i="0">
            <pixelid>10000-11000</pixelid>
            <detector/>
            <pixelno/>
            <axis key="" />
        </mask>
    </masklist>
</maskInfo>
例2

PixelIdが11112のPixelのヒストグラムの横軸1000から2000までの領域をマスクする。

 <?xml version="1.0" encoding="utf-8" ?>
 <maskInfo>
    <masklist n="2">
        <mask i="0">
            <pixelid>11112</pixelid>
            <detector/>
            <pixelno/>
            <axis key="">1000:2000</axis>
        </mask>
    </masklist>
</maskInfo>
例3

Detector Idが56-60の範囲と100-110の範囲の検出器の、検出器内の順番が 0から5と 95から99のPixelに対してマスクをかける。

 <?xml version="1.0" encoding="utf-8" ?>
 <maskInfo>
    <masklist n="2">
        <mask i="0">
            <pixelid/>
            <detector>56-60,100-110</detector>
            <pixelno>0-5, 95-99</pixelno>
            <axis key=""/>
        </mask>
    </masklist>
</maskInfo>