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

Status

作成中

概要

空蟬は、TrigNETがDAQミドルウェアを通して出力するイベントデータを利用し、中性子データ(イベント)をTrigNETに入力されたシグナルの情報の組み合わせ(ケース)により分類し、ケースごとに個別のヒストグラムとして取り出す機能(フィルタリング)を持つ。このケースを定義するために必要な情報をXML形式で記述しており、それを”Case Info”と定義している。本稿ではCaseInfoの役割とそのフォーマットについて記述する。

イベント識別するための条件

  1. 測定時刻による切り出し

  • 測定開始を0としたときの経過時間(相対時刻)

  • 装置時刻(絶対時刻)

    • T0に使用されているMLF基本時刻(2008/1/1を0とするClock)での指定

    • 年月日時刻による指定

  1. TOF(TOFによるイベントの取捨選択=CaseIDを返す)

  2. TrigNETのイベントに記載された情報によるフィルタリング

  • TrigNETのイベントの値(DIO状態やアナログ値)に応じてCaseIDを返す

  1. TrigNETのイベントをトリガーとするカウンター

  • カウント数を内部で持っていて、指定したイベントがあればカウントし、そのカウント数に応じてCaseIDを返す

TrigNETイベントでの場合分けの流れ

  1. フィルタリングするための条件読み込み (CaseInfoファイル)

  2. TrigNETイベントの解析

  3. Caseのタイムテーブルによる中性子イベントの分別

語句の定義

Case

  • フィルター及びカウンターによって識別された場合分けをCaseと呼んでいる

  • 「Case=0は不使用」と定義する

    • よって、使用するCaseは必ず0以上の整数。

  • Caseの識別を行うための条件は

    • フィルター

      • Trignetイベントデータによる分別

      • TOFの領域による分別

      • 時刻情報による分別

    • カウンター

      • Trignetデータを解析し、それをカウンターとして、その値で分別。

Caseテーブル

中性子イベントをTOFで分けるために使用するテーブルをCaseテーブルと呼ぶ。フレームごとに、CaseId, TOF, CaseId, TOF,… という情報を収めたもの。

DIOのRiseとDrop、UpとDown

TrigNETに入力可能なシグナルにTTLがある。これは0 Vから5.0V の間の電圧で閾値(おそらく1.5V程度)を超えると、シグナルが入った富なし、逆に閾値を下回るとシグナルが消えたとみなす。 本稿では、このTTLのシグナル入力をDIO(DigitalIO)と呼び、閾値を超える挙動をRise, 下回る挙動をDrop、超えている状態をUp、下がっている状態をDownとする。

TrigNET+Caseファイル使用例

本稿では、TrigNETと共に使用するCaseInfoの例を示す。

フィルター設定例:シグナル状態で識別

TrigNETに入ってきたシグナルの状態(TTL, 電圧)によって、Caseを決める

カウンター設定例:単純Increment

TrigNETに入ってきたDIOシグナル(Rise, Drop)をカウンターとして、そのカウンターに定数をかけた値に対してCaseを決定する方式

カウンター設定例:サイクリックIncrement

こちらもTrigNETに入ってきたDIOシグナル(Rise, Drop)をカウンターとして、そのカウンターに定数をかけた値に対してCaseを決定するが、こちらは計算値が予め設定した領域から外れた場合に、その範囲内の値に変換(端点の値からの差分)しCaseを決定する方式

カウンター設定例:仮想的時間原点

TrigNETのDIOのシグナルを時間分解における仮想的な原点とし、その原点からの秒数によって時間分解しCaseに分類する方式

カウンター設定例:仮想的時間原点+フレーム厳密対応

TrigNETのDIOのシグナルを時間分解における仮想的な原点のトリガーとし、同時に施設のMLF基準トリガー(常時25Hz)のDIO入力をカウンターとすることで、その原点から厳密なフレーム単位の時間分解を可能とする方式

カウンター設定例:ロータリーエンコーダ+DAQコンポーネント

ロータリーエンコーダのA相B相シグナルをTrigNETに入力し、TrigNET用DAQミドルウェアコンポーネントにて処理されたイベントに対応した方式

以下に上記の場合の具体的なCase Info(XMLによって記述)の例と説明を述べる。

フィルター設定例:シグナル状態で識別

TrigNETに入ってきたシグナルの状態(TTL, 電圧)によって、Caseが決まる方式である。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<caseInfo>
    <caseAmbiguity>1</caseAmbiguity>
    <initialCase>0</initialCase>
    <filters n="2">
        <filter i="0" case="1">
            <signal cond="AND" n="2">
                <trignet i="0" index="0" io="DIO1R" type="DIO">*,*,1,0,*,*,*,*</trignet>
                <trignet i="1" index="1" io="DIO2R" type="LADC1">0,1000000</trignet>
            </signal>
            <timeRange type="DATE">2012,4,12,2,45,0,0.0,2012,4,12,12,40,0,0.0</timeRange>
            <tofRange>500.0,20000.0</tofRange>
        </filter>
        <filter i="1" case="2">
            <signal cond="OR" n="1">
                <trignet i="0" index="0" io="DIO1R" type="DIO">*,*,0,0,*,*,*,*</trignet>
                <trignet i="1" index="1" io="DIO2R" type="LADC1">1000000,9000000</trignet>
            </signal>
            <timeRange type="MLF">345313,4313145</timeRange>
            <tofRange/>
        </filter>
    </filters>
    <counters/>
    <timeSlicing/>
</caseInfo>

このCaseInfoに置いて、Case 1 の条件を以下のように定めている(5行目〜12行目)。

  1. TrigNETのDIO1のRiseで生じるシグナルのうち、DIO3がUp、DIO4がDownの時、(7行目)

  2. DIO2の立ち上がり時にLADC1が0〜1000000の間(8行目)

  3. 時刻が2012/4/12 2:45:00から2012/4/12 12:40:00までの(10行目)

  4. TOFが500から20000の間(11行目)

また、Case 2 の条件を以下のようにしている(13行目〜20行目)。

  1. TrigNETのDIO1のRiseで生じるシグナルのうち、DIO3、DIO4がDownの時(15行目)

  2. DIO2の立ち上がり時にLADC1が1000000から9000000の間(16行目)

  3. MLF標準Clockで345313から4313145の間(18行目)

カウンター設定例:単純Increment型

TrigNETに入ってきたDIOシグナル(Rise, Drop)をカウンターとして、そのカウンターに定数をかけた値に対してCaseを決定する方式である。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<caseInfo>
    <caseAmbiguity>0</caseAmbiguity>
    <initialCase>1</initialCase>
    <counters n=“1">
        <counter i="1" type="NORMAL">
            <signal n="2">
                <trignet i="0" index="0" io="DIO1R" title="Counter1" attr="1.0"/>
                <trignet i="1" index="0" io="DIO2R" title="Counter2" attr="-1.0"/>
            </signal>
            <conversionVal>1.0</conversionVal>
            <originalVal unit="Counts">0.0</originalVal>
            <conditions type="1" n="3">
                <cond i="0" case="1">1.0,2.5</cond>
                <cond i="1" case="2">2.5,14.0</cond>
                <cond i="2" case="3">14.0,20.0</cond>
            </conditions>
        </counter>
    </counters>
    <timeSlicing/>
</caseInfo>

このCaseInfoではカウンターとしての使用方法の例を示している。

カウンター方式では、TrigNETへのシグナルによって加算される内部カウンターがあり、これとconversionValとoriginalValを利用して得られた値( Val = <originalVal> + <conversionVal> × <内部カウンター>)に対して、Caseを割り当てることになる。

この例では、

  • DIO1にシグナルが来た(Rise)時に内部カウンターに1.0を加算 ( 7行目 )

  • DIO2にシグナルが来た(Rise)時に内部カウンターに-1.0を加算( 8行目 )

と定義し、値 Val = 0.0(originalVal) + 1.0(conversionVal) × 内部カウンター が、

  • 1.0 <= Val < 2.5 なら Case 1 ( 13行目 )

  • 2.5 <= Val < 14.0 なら Case 2 ( 14行目 )

  • 14.0 <= Val < 20.0 なら Case 3 ( 15行目 )

として識別 ( 12行目: <conditions>の属性 typeが1 ) される。値がそれ以外の値を取った時はイベントは無視される。

カウンター設定例:サイクリックIncrement型

こちらもTrigNETに入ってきたDIOシグナル(Rise, Drop)をカウンターとして、そのカウンターに定数をかけた値に対してCaseを決定するが、こちらは計算値が予め設定した領域から外れた場合に、その範囲内の値に変換(端点の値からの差分)しCaseを決定する方式である。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<caseInfo>
    <caseAmbiguity>0</caseAmbiguity>
    <initialCase>1</initialCase>
    <counters n=“1">
        <counter i="1" type="NORMAL">
            <signal n="1">
                <trignet i="0" index="0" io="DIO1R" title="Counter1" attr="1.0"/>
            </signal>
            <conversionVal>2.0</conversionVal>
            <originalVal unit="Counts">100.0</originalVal>
            <cyclicRange begin="0.0" end="360.0"/>
            <conditions type="2">
                <cond>0.0,360.0,2.0</cond>
            </conditions>
        </counter>
    </counters>
    <timeSlicing/>
</caseInfo>

この例の場合、

  • DIO1にシグナルが来た(Rise)ら内部カウンターに1.0加算 ( 7行目 )

  • 値 Val = 100.0 + 2.0 × <内部カウンター>

と定義されているが、さらに<cyclicRange>( 11行目 )により

  • 値が 0.0から360.0 の間から外れた時は360.0 = 0.0 とみなす

ことになる。すなわち、Caseに分類に使う値Valはサイクリックに扱われる。

また、 <conditions>の属性 typeが2 であるので、そのコンテンツ <cond>0.0,359.0,2.0</cond> から

  • case 1 : 0.0-2.0

  • case 2 : 2.0-4.0

  • case 178 : 356.0-358.0

  • case 179 : 358.0-360.0

という分類となる。

カウンター設定例:仮想的時間原点

TrigNETのDIOのシグナルを時間分解における仮想的な原点とし、その原点からの秒数によって時間分解しCaseに分類する方式である。時間分解の一つであるが、カウンターのシグナルを原点とみなす設定なので、カウンター設定の一つとしている。 またこの方法では、厳密に1フレーム単位で抜き出すのは難しい(1フレームの時間が一定ではないため)ので注意すること。フレーム単位で取り出す場合は、後述のカウンター設定例4の方法を取ること。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<caseInfo>
  <caseAmbiguity>2</caseAmbiguity>
  <initialCase>0</initialCase>
  <filters/>
  <counters n="1">
    <counter i="0" type="NORMAL">
      <signal n="1" cnd="AND">
        <trignet i="0" index="0" io="DIO2R" title="Counter" attr="1.0"/>
      </signal>
      <conversionVal>1.0</conversionVal>
      <originVal unit="Clock" priority="case">0.0</originVal>
      <cyclicRegion/>
      <conditions type="1">
        <cond case="1">0.0,1.0</cond>
        <cond case="2">1.0,2.0</cond>
        <cond case="3">2.0,3.0</cond>
        <cond case="4">3.0,4.0</cond>
        <cond case="5">4.0,5.0</cond>
        <cond case="6">5.0,6.0</cond>
        <cond case="7">6.0,7.0</cond>
        <cond case="8">7.0,8.0</cond>
        <cond case="9">8.0,9.0</cond>
        <cond case="10">9.0,15.0</cond>
      </conditions>
    </counter>
  </counters>
</caseInfo>

この例の場合、DIO2のRiseイベントをカウンターとして拾い、この時刻を時間原点とし、その原点から1秒ごとに9秒後までCaseに分けるものである。

この設定で重要なのは

<originVal unit="Clock" priority="case">0.0</originVal>
<cyclicRegion/>

である。

  • <originVal>のunit属性値を、通常”Counts”であるのを”Clock”とすること

  • <cyclicRegion>を空にすること

  • <condition><cond>でCaseを指定するが、単位は[sec]であること

  • <originVal>のpriorigy属性値を”case”と設定すると、<condition>で指定した範囲内に再びカウンター用イベントが来ても無視する(Case分類を優先する)。不要なら外す。

カウンター設定例:仮想的時間原点+フレーム厳密対応

TrigNETのDIOのシグナルを時間分解における仮想的な原点のトリガーとし、同時に施設のMLF基準トリガー(常時25Hz)のDIO入力をカウンターとすることで、その原点から厳密なフレーム単位の時間分解を可能とする方式である。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<caseInfo>
    <caseAmbiguity>3</caseAmbiguity>
    <initialCase>0</initialCase>
    <filters/>
    <counters n="1">
        <counter i="0" type="KICKCOUNT">
            <signal n="2" cnd="OR">
                <trignet i="0" index="0" io="DIO1R" title="Kicker" attr="1.0"/>
                <trignet i="1" index="0" io="DIO2R" title="Counter" attr="1.0"/>
            </signal>
            <conversionVal>1.0</conversionVal>
            <originVal unit="Counts">0.0</originVal>
            <cyclicRegion/>
            <conditions type="2">
                <cond>-0.5,11.5,1.0</cond>
            </conditions>
        </counter>
    </counters>
</caseInfo>

この設定で重要な点は

  1. <counter>のtype属性に”KICKCOUNT”を与える。

<counter i="0" type="KICKCOUNT">
  1. <counter>/<signal>には二つの<trignet>があり、片方は仮想キッカー、もう片方はカウンターであり、両者の区別はtitle属性で行う。

<trignet i="0" index="0" io="DIO1R" title="Kicker" attr="1.0"/>
<trignet i="1" index="0" io="DIO2R" title="Counter" attr="1.0"/>

なお、<trignet>のtitle属性値は以下のように与え、役割を指定すること。

役割

title

仮想トリガー

“Kicker”

カウンター

“Couinter”

カウンター設置例:ロータリーエンコーダ+DAQコンポーネント

ロータリーエンコーダのA相B相シグナルをTrigNETに入力し、TrigNET用DAQミドルウェアコンポーネントにて処理されたイベントに対応した方式である。

この新しいモジュールは、連続回転測定などのエンコーダのシグナルをLineDriver経由でTrigNETで取り込む際の

  • 多く発生するノイズの低減

  • フレームごとの角度情報(A相B相から算出)がわからない

の点を改善するため、A相B相から角度情報を算出し、LADC1イベントとして保存するDAQミドルウェアのコンポーネントを使用する場合に用いるやり方である。

このデータを処理する場合のCaseInfoは以下のようになる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<caseInfo>
    <counters n="1">
        <counter i="0" type="ABC">
            <signal n="1">
                <trignet i="0" io="DIO1R" type="LADC1" />
            </signal>
            <conversionVal>0.002866242038</conversionVal>
            <originVal unit="Degree">-90.00</originVal>
            <conditions type="2">
                <cond>-90.0,90.0,1.0</cond>
            </conditions>
        </counter>
    </counters>
</caseInfo>

ここで重要な点は以下の通り。あとは通常のカウンターの動作と同じ。

  • <counter> の属性typeが”ABC”(”ABP”ではなく)

  • <counter>/<signal>/<trignet>の数は一つだけ(これを角度情報イベントとして取り込む)

  • <counter>/<signal>/<trignet>

  • 属性ioはA相を示す値であること

  • 属性typeは”LADC1”であること

挙動としては以下の通り。

  • conversionVal=0.002866242038、原点(originalVal)を -90度とし、

  • これからCase識別用の値(Val)を計算する( Val = conversionVal*counts + originalVal )。

  • -90.0から+90.0を1.0刻みで分けて、Valの値が-90.0〜-89.0の時をCase 1, -89.0〜-88.0をCase 2, …と割りあてる。

単純時間分解

特にTrigNETなどを使用せずとも、単純な時間分解だけでもCaseInfoは使用できる。以下のように timeSlicing を利用する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<caseInfo>
    <caseAmbiguity>0</caseAmbiguity>
    <initialCase>0</initialCase>
    <filters/>
    <counters/>
    <timeSlicing>
        <time caseId="1">0.0,1234.5</time>
        <time caseId="2">1500.0,2345.6</time>
        <time caseId="3">2445.6,3000.0</time>
    </timeSlicing>
</caseInfo>
  • time タグで、測定開始からの秒数(実数)で開始と終了を示す

  • フォーマットは、<開始[秒]>, <終了[秒]>

  • time タグの属性値 caseId でその開始・終了範囲内のデータのCaseIdを決める

フォーマットの詳細

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

caseInfo

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

名前

意味・説明

属性

無し

親エレメント

なし

子エレメント

filters

caseAmbiguity

一つのフレームの中に複数のCaseが入っていた場合の処理(主にノイズ対策)

名前

意味・説明

属性

無し

親エレメント

caseInfo

子エレメント

無し

コンテンツ

整数 0

全てを採用

整数 1

一つのCaseのみ以外は不採用

整数 2

多数決でCaseを一つに絞る

整数 3

最初のCaseだけを採用する

initialCase

最初のTrigNETのイベントが発生するまでのCaseを定義する。

名前

意味・説明

属性

無し

親エレメント

caseInfo

子エレメント

なし

コンテンツ

整数

Case Number

filters

filterの親。

名前

意味・説明

属性

i

ナンバリング

n

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

親エレメント

caseInfo

子エレメント

filter

コンテンツ

無し

filters/filter

filterの条件の親。

名前

意味・説明

属性

i

インデックス

case

case番号

親エレメント

filters

子エレメント

signal

Trignetイベントの条件

timeRange

時刻の条件

tofRange

TOFの条件

コンテンツ

無し

signal

複数のTrigNETやその他のシグナルを用いる場合のために用意。

名前

意味・説明

属性

n

内包するタグ(trignet)の数

cond

シグナル条件の”AND”/”OR”

親エレメント

filter or container

子エレメント

trignet

コンテンツ

trignet

Trignetイベントの条件。

名前

意味・説明

属性

i

ナンバリング

index

複数のTrigNETを使用するときのID

io

イベントトリガーの種類:詳細は下記

type

イベント内容のタイプ:DIO, LADC1, LADC2, HADC

title

このシグナルの名前

attr

何か属性を加える場合に使用。現在は単純カウンター設定時に内部カウンターの増減値として、 もしくは、エンコーダとしての設定時にA相B相の識別に使用。

親エレメント

signal

子エレメント

なし

内容

イベント内容によって異なる

DIO1〜8

カンマ区切りの8つの整数(0か1)、Off=0,On=1,Free=それ以外、省略すると完全にフリー、 つまり状態がなんであれトリガーがあればよい

低速ADC1、低速ADC2

カンマ区切りの2つの実数(min,max)、仕様上、minは0が最小値、maxに最大値はないが、 max=0なら上限なし判定

高速ADC

カンマ区切りの4つの実数、minは0が最小値、maxは4095が最大値

ioの記述

イベント発生トリガー

属性ioに使用できる文字

DIOの立ち上がり

DIO1R, DIO2R, DIO3R, DIO4R, DIO5R, DIO6R, DIO7R, DIO8R

DIOの下り

DIO1F, DIO2F, DIO3F, DIO4F, DIO5F, DIO6F, DIO7F, DIO8F

T0立ち上がり

T0R

TI(タイマ)

TI

ソフトウェア

SW

全て利用

ANY

timeRange

時刻の条件、内容が2つの実数なら相対時間で、内容が14の実数なら絶対時刻で切り出すことを示す。

名前

意味・説明

属性

type

時刻の指定方法:0. 測定開始からの経過時間[秒]、1.MLF基準Clock、2.年月日時分秒方式

親エレメント

filter

子エレメント

なし

内容

切り出し時刻情報

カンマ区切りの2または14の実数 ( 例:2013年4月10日 5時21分32.54秒->”2013”,”4”,”10”,”5”,”13”,”21”,”32”,”0.54” )

tofRange

TOFの条件。

名前

意味・説明

属性

なし

親エレメント

filter

子エレメント

なし

内容

切り出し時刻情報

カンマ区切りの2つの実数

counters

counterの親。

名前

意味・説明

属性

n

子エレメント(counter)の個数

親エレメント

caseInfo

子エレメント

counter

内容

無し

counter

counterの条件の親。

名前

意味・説明

属性

i

ナンバリング

type

カウンターとしてのタイプ (後述するテーブル参照)

親エレメント

counters

子エレメント

signal

Trignetイベントの条件(filterのものと同じ)

conversionVal

カウンターの変換用(積)

originalVal

カウンターの変換用(原点)

conditions

Case分別用情報

type属性

“NORMAL”

通常のシグナル

“ABP”

エンコーダー用

“ABC”

ロータリーエンコーダ+DAQコンポーネント用

“KICKCOUNT”

仮想的時間原点+フレーム厳密対応

conversionVal

Case識別に使用する値への変換用パラメータ。Case識別に用いる値は(originalVal) + (conversionVal) × カウント数。

名前

意味・説明

属性

無し

親エレメント

counter

子エレメント

内容

カウント数にかける値

実数

originalVal

Case識別に使用する値への変換用パラメータ。Case識別に用いる値は(originalVal) + (conversionVal) × カウント数。

名前

意味・説明

属性

unit

単位。”Counts”や”Clock”(詳細は「TrigNET+Caseファイル使用例」参照)

親エレメント

counter

子エレメント

内容

カウント数に足す値

実数

cyclicRange

Case識別に使用する値への変換用パラメータ。Case識別に用いる値が(begin)から(end)までサイクリックに扱われる。例えば角度で360度=0度とみなすのと同等。

名前

意味・説明

属性

begin

範囲の先頭

end

範囲の末尾

親エレメント

counter

子エレメント

内容

カウント数に足す値

実数

conditions

カウント数の変換値をCaseに分類する情報

名前

意味・説明

属性

type

条件の与え方(1: condの羅列、2: start,end,step)

n

子エレメント(cond)の個数

親エレメント

counter

子エレメント

cond

cond

カウント数の変換値をCaseに分類する情報

名前

意味・説明

属性

i

ナンバリング(conditionsのtype=1の時に使用)

case

このcondのCaseID(conditionsのtype=1の時に使用)

親エレメント

counter

子エレメント

内容

conditionsのtype=1の時:変換値の範囲

カンマ区切りの2実数

conditionsのtype=2の時:変換値の区切り情報

カンマ区切りの3実数(start, end, step)、CaseIDは先頭から1,2,…。

timeSlicing

単純な時間分割用。

名前

意味・説明

属性

親エレメント

caseInfo

子エレメント

time

コンテンツ

無し

timeSlicing/time

単純な時間分割用。caseIdとその時間領域を記述する。単位は測定開始を0秒とした秒数(実数)で示す。

名前

意味・説明

属性

caseId

このコンテンツが示す時間領域に対するCaseId

親エレメント

timeSlicing

子エレメント

なし

コンテンツ

<開始>,<終了>

測定開始を0秒、実数、カンマ区切り

Appendix

TrigNETの出力イベントのフォーマット

トリガーの記述

イベントのトリガー

SID[7:3](int)

DIO1立ち上がり

0

DIO2立ち上がり

1

DIO3立ち上がり

2

DIO4立ち上がり

3

DIO5立ち上がり

4

DIO6立ち上がり

5

DIO7立ち上がり

6

DIO8立ち上がり

7

T0立ち上がり

14

TIイベント(タイマ)

15

DIO1立ち下がり

16

DIO2立ち下がり

17

DIO3立ち下がり

18

DIO4立ち下がり

19

DIO5立ち下がり

20

DIO6立ち下がり

21

DIO7立ち下がり

22

DIO8立ち下がり

23

Softwareイベント

31

記録イベントの識別

イベントの内容のタイプ

SID[2:0](int)

適応できる条件

DIO1 - 8

1

On/Off * 8

低速ADC1

2

範囲

低速ADC2

3

範囲

高速ADC

4

ADC1とADC2のそれぞれに対する範囲

CaseTable技術仕様

基本構造

vector< vector<UInt4> >

  • 一つのフレーム内のCase分け情報を一つのvector<UInt4>で表す。

  • CaseIDとTOFを交互に並べる。TOFはCaseの境界となるTOFを指定。

  • TOFの単位は40MHzのClockで指定し、CaseIDともどもUInt4で表現する。

注意点

この表現方法は、現在のUtsusemiFilterTrignetクラスに搭載されているものであり、実際UtsusemiEventDataConverterTemplate::Incrementで呼び出される関数(UtsusemiEventCasesDecoderBase::GetCaseFromTof)によって使用される。この関数は、vector< vector<UInt4> >の枠組みさえ守れば本来自由に定義できるものであるため、別の形式を考えることも可能である。