CaseInfoとそのフォーマットについて#
- last update:
19th May 2023
- Status:
作成中
概要#
空蟬は、TrigNETがDAQミドルウェアを通して出力するイベントデータを利用し、中性子データ(イベント)をTrigNETに入力されたシグナルの情報の組み合わせ(ケース)により分類し、ケースごとに個別のヒストグラムとして取り出す機能(フィルタリング)を持つ。このケースを定義するために必要な情報をXML形式で記述しており、それを”Case Info”と定義している。本稿ではCaseInfoの役割とそのフォーマットについて記述する。
イベント識別するための条件#
測定時刻による切り出し
測定開始を0としたときの経過時間(相対時刻)
装置時刻(絶対時刻)
フィルター設定時のみ有効
T0に使用されているMLF基本時刻(2008/1/1を0とするClock)での指定
年月日時刻による指定
TOFの指定によるイベントの分割
TrigNETのイベントに記載された情報による分別(フィルタリング)
TrigNETのイベントの値(DIO状態やアナログ値)に応じてフィルタリングする
TrigNETのイベントをトリガーとするカウンター
カウント数を内部で持っていて、指定したイベントがあればカウントし、そのカウント数に応じてフィルタリングする
TrigNETイベントを利用したフィルタリング#
フィルタリングするための条件ファイル(CaseInfoファイル)の読み込み
TrigNETイベントファイルの読み込みと解析
中性子イベントの読み込みとフィルタリング
語句の定義#
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+CaseInfoファイル具体例#
本稿では、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<caseInfo>
2 <caseAmbiguity>1</caseAmbiguity>
3 <initialCase>0</initialCase>
4 <filters n="2">
5 <filter i="0" case="1">
6 <signal cond="AND" n="2">
7 <trignet i="0" index="0" io="DIO1R" type="DIO">*,*,1,0,*,*,*,*</trignet>
8 <trignet i="1" index="1" io="DIO2R" type="LADC1">0,1000000</trignet>
9 </signal>
10 <timeRange type="DATE">2012,4,12,2,45,0,0.0,2012,4,12,12,40,0,0.0</timeRange>
11 <tofRange>500.0,20000.0</tofRange>
12 </filter>
13 <filter i="1" case="2">
14 <signal cond="OR" n="1">
15 <trignet i="0" index="0" io="DIO1R" type="DIO">*,*,0,0,*,*,*,*</trignet>
16 <trignet i="1" index="1" io="DIO2R" type="LADC1">1000000,9000000</trignet>
17 </signal>
18 <timeRange type="MLF">345313,4313145</timeRange>
19 <tofRange/>
20 </filter>
21 </filters>
22 <counters/>
23 <timeSlicing/>
24</caseInfo>
このCaseInfoに置いて、Case 1 の条件を以下のように定めている(5行目〜12行目)。
TrigNETのDIO1のRiseで生じるシグナルのうち、DIO3がUp、DIO4がDownの時、(7行目)
DIO2の立ち上がり時にLADC1が0〜1000000の間(8行目)
時刻が2012/4/12 2:45:00から2012/4/12 12:40:00までの(10行目)
TOFが500から20000の間(11行目)
また、Case 2 の条件を以下のようにしている(13行目〜20行目)。
TrigNETのDIO1のRiseで生じるシグナルのうち、DIO3、DIO4がDownの時(15行目)
DIO2の立ち上がり時にLADC1が1000000から9000000の間(16行目)
MLF標準Clockで345313から4313145の間(18行目)
カウンター設定例:単純Increment型#
TrigNETに入ってきたDIOシグナル(Rise, Drop)をカウンターとして、そのカウンターに定数をかけた値に対してCaseを決定する方式である。
1<caseInfo>
2 <caseAmbiguity>0</caseAmbiguity>
3 <initialCase>1</initialCase>
4 <counters n=“1">
5 <counter i="1" type="NORMAL">
6 <signal n="2">
7 <trignet i="0" index="0" io="DIO1R" title="Counter1" attr="1.0"/>
8 <trignet i="1" index="0" io="DIO2R" title="Counter2" attr="-1.0"/>
9 </signal>
10 <conversionVal>1.0</conversionVal>
11 <originalVal unit="Counts">0.0</originalVal>
12 <conditions type="1" n="3">
13 <cond i="0" case="1">1.0,2.5</cond>
14 <cond i="1" case="2">2.5,14.0</cond>
15 <cond i="2" case="3">14.0,20.0</cond>
16 </conditions>
17 </counter>
18 </counters>
19 <timeSlicing/>
20</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<caseInfo>
2 <caseAmbiguity>0</caseAmbiguity>
3 <initialCase>1</initialCase>
4 <counters n=“1">
5 <counter i="1" type="NORMAL">
6 <signal n="1">
7 <trignet i="0" index="0" io="DIO1R" title="Counter1" attr="1.0"/>
8 </signal>
9 <conversionVal>2.0</conversionVal>
10 <originalVal unit="Counts">100.0</originalVal>
11 <cyclicRange begin="0.0" end="360.0"/>
12 <conditions type="2">
13 <cond>0.0,360.0,2.0</cond>
14 </conditions>
15 </counter>
16 </counters>
17 <timeSlicing/>
18</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<caseInfo>
2 <caseAmbiguity>2</caseAmbiguity>
3 <initialCase>0</initialCase>
4 <filters/>
5 <counters n="1">
6 <counter i="0" type="NORMAL">
7 <signal n="1" cnd="AND">
8 <trignet i="0" index="0" io="DIO2R" title="Counter" attr="1.0"/>
9 </signal>
10 <conversionVal>1.0</conversionVal>
11 <originVal unit="Clock" priority="case">0.0</originVal>
12 <cyclicRegion/>
13 <conditions type="1">
14 <cond case="1">0.0,1.0</cond>
15 <cond case="2">1.0,2.0</cond>
16 <cond case="3">2.0,3.0</cond>
17 <cond case="4">3.0,4.0</cond>
18 <cond case="5">4.0,5.0</cond>
19 <cond case="6">5.0,6.0</cond>
20 <cond case="7">6.0,7.0</cond>
21 <cond case="8">7.0,8.0</cond>
22 <cond case="9">8.0,9.0</cond>
23 <cond case="10">9.0,15.0</cond>
24 </conditions>
25 </counter>
26 </counters>
27</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<caseInfo>
2 <caseAmbiguity>3</caseAmbiguity>
3 <initialCase>0</initialCase>
4 <filters/>
5 <counters n="1">
6 <counter i="0" type="KICKCOUNT">
7 <signal n="2" cnd="OR">
8 <trignet i="0" index="0" io="DIO1R" title="Kicker" attr="1.0"/>
9 <trignet i="1" index="0" io="DIO2R" title="Counter" attr="1.0"/>
10 </signal>
11 <ignoreKickerInCondRange>Y</ignoreKickerInCondRange>
12 <conversionVal>1.0</conversionVal>
13 <originVal unit="Counts">0.0</originVal>
14 <cyclicRegion/>
15 <conditions type="2">
16 <cond>-0.5,11.5,1.0</cond>
17 </conditions>
18 </counter>
19 </counters>
20</caseInfo>
この設定で重要な点は
<counter>のtype属性に”KICKCOUNT”を与える。
<counter i="0" type="KICKCOUNT">
<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<caseInfo>
2 <counters n="1">
3 <counter i="0" type="ABC">
4 <signal n="1">
5 <trignet i="0" io="DIO1R" type="LADC1" />
6 </signal>
7 <conversionVal>0.002866242038</conversionVal>
8 <originVal unit="Degree">-90.00</originVal>
9 <conditions type="2">
10 <cond>-90.0,90.0,1.0</cond>
11 </conditions>
12 </counter>
13 </counters>
14</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<caseInfo>
2 <caseAmbiguity>0</caseAmbiguity>
3 <initialCase>0</initialCase>
4 <filters/>
5 <counters/>
6 <timeSlicing>
7 <time caseId="1">0.0,1234.5</time>
8 <time caseId="2">1500.0,2345.6</time>
9 <time caseId="3">2445.6,3000.0</time>
10 </timeSlicing>
11</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” |
仮想的時間原点+フレーム厳密対応 |
ignoreKickerInCondRange#
仮想的な時間原点を示すキッカーが、Case分類に使用するCounter範囲内に記録されていた場合に無視する、という設定を制御する。
名前 |
意味・説明 |
|
---|---|---|
属性 |
無し |
|
親エレメント |
counter |
|
子エレメント |
||
内容 |
Y or N |
有効か無効 |
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> >の枠組みさえ守れば本来自由に定義できるものであるため、別の形式を考えることも可能である。