Telesim

進捗報告
M2 下村
140 地上系会議
内容
•
•
•
•
Validate Level0
QLSummary修正
EPICSデータ生成
ToDo
Validate Level0
• TcpServerEXMainを流用してLevel0データの検証用プロ
グラムを作成した
– 目的:Level0データのチェック
– UKey2/EventIDの連続性、チェックサムの確認等
Level0データ
GSEヘッダ
データ部
GSEヘッダ
データ部
GSEヘッダ
データ部
・
・
・
実行例
エラーがあるとここ
にコメントが出る
Telemetry Data File:HighLat/CR_MJD55501_00000_00050.bin.ics
TcpServerEXMain ... secDiff=1060163644
1402048452 1122 1 1 0 0 341884808
1 1 1
0
0
1402048452
70 1 1 0 0 341884808
2 10 1 0
0
1402048452 182 1 1 0 0 341884808
3 6 0
0
1
1402048452 1478 1 1 0 0 341884808
4 6 0
1
1
1402048452 498 1 1 0 0 341884808
5 6 1
2
1 [CheckSum
1402048452
70 1 1 0 0 341884808
6 10 1
0
1
1402048452 182 1 1 0 0 341884808
7 6 0
0
2
1402048452 1478 1 1 0 0 341884808
8 6 0
1
2
1402048452 106 1 1 0 0 341884808
9 6 1
2
2 [CheckSum
1402048452
70 1 1 0 0 341884808
10 10 1
0
2
1402048452 182 1 1 0 0 341884808
11 6 0
0
3
1402048452 1454 1 1 0 0 341884808
12 6 1
1
3 [CheckSum
1402048452
70 1 1 0 0 341884808
13 10 1
0
3
1402048452 182 1 1 0 0 341884808
14 6 0
0
4
1402048452 1478 1 1 0 0 341884808
15 6 0
1
4
1402048452 1386 1 1 0 0 341884808
16 6 1
2
4 [CheckSum
1402048452
70 1 1 0 0 341884808
17 10 1
0
4
1402048452 182 1 1 0 0 341884808
18 6 0
0
5
1402048452 1306 1 1 0 0 341884808
19 6 1
1
5 [CheckSum
1402048452
70 1 1 0 0 341884808
20 10 1
0
5
OK 0000]
OK 0000]
OK 0000]
OK 0000]
OK 0000]
QLSummary修正
• ボタンを追加+見栄えの修正
CALET ISS軌道データ作成 (EPICS)
•
/nfs/RAID/home/asaoka/calet/TelemetrySim にて環境変数をセット
–
•
•
$source setenv.sh [Data set]
/nfs/RAID/home/asaoka/calet/TelemetrySim/CALET_ISS にてISS軌道CALET
入力データを生成
–
$./telesim [-d MJD Date] [-s Start Sec] [-p Proc Sec] [-n Sec Div]
–
データ生成ディレクトリ
~/work/TelemetrySim/data/CRSample/[Data Set]/M30/
→ CR_MJD[Date]_[Sec]_[Div].dat
–
入力データとして、データ・セットに対応するATMNC3データが必要。
→ ~work/TelemetrySim/data/CRMap参照
/nfs/RAID/home/asaoka/calet/TelemetrySim/CALET_Ana/trunk にてEPICS
データを生成
–
$./epicsSGE.py [-d Data set] [-j MJD Date] [-s Start Sec] [-p Proc Sec]
[-f Sec Div] [-r Retry]
–
データ生成ディレクトリ
~/work/TelemetrySim/data/EPICS/[Data Set]/M30/
→ CR_MJD[Date]_[Sec]_[Div].root
ToDo
• QLの作成案を練る
• Level0データの検証
END
ソケット/QL プログラム修正
• ソケットプログラムのオプション追加
– “-c”:パケットに記述された時間を付け替えない
• QLEvDisp、QLSummary、QLSumTextのルーチンの
改善
– 問題点:実行時に激しいメモリリーク
原因 :UniqueKey3が1,6以外のデータで、MDCSimulator
のインスタンスをdeleteしてなかった
– 修正後:激しいメモリリークは解消
ただし、微妙に残っているので今後の課題。
MDC Simulator 修正
• Writeルーチンの変更の必要性
– MSSのサンプルデータの解析によりシミュレーションデータに以
下の相違点が判明
• イベントデータ2ワード目以降の13ワード目:ユーザシーケンスカウン
タの削除
• CRCを削除
• フラグメントの最大、最小がNASA/ICS経由で違う
=> 最小以下の場合、0埋めする必要あり
– NASA : Max Packet Size = 8(CCSDS Header) + 742 (内Event Data 730 words),
Min Packet Size = 8(CCSDS Header) + 42 (内Event Data 30 words)
– ICS : Max Packet Size = 748
Min Packet Size = 24
• Readルーチンの修正 (140517)
– Eventデータ ラストフレームのWord数
• 先頭フレームのTotal Word Lengthを使い導出
(内Event Data 736 words),
(内Event Data 12 words)
MDC Simulator 修正
• テスト
NASA/ICS経由のそれぞれについて10秒分データを
作成
– QLで確認
=> データは問題なく読めた
過去のデータとの整合性は要検証
– TcpClientQLMainのReadオプション
• “r”= 0 : 修正済みシミュレーションデータ
“r”= 1 : MSSのサンプルデータ
“r”= 2 : 過去のシミュレーションデータ
QL追加
• QLSummary, QLSumText
定時データ、イベントデータのサマリを表示
定時データのサマリはMPCでのパルステスト用ソ
フトウェアのルーチンを流用
– 使用方法
• TcpClientQLMainのオプションで、
“-S” : QLSummaryを起動
QTのWindowにサマリを表示
“-Q” : QLSumTextを起動
コマンドラインにサマリを表示
キーボードによる入力受付
QLSummary 使用例
Very preliminary!
EPICS CADモデルの使用
• 現状
– 現在使用中のEPICSのGeometryもCADモデルである
– ただし、EPICSユーザ部に以下のアップデートがある
ので、現在導入中
-Bug
-"EDepAll(_prim, Eff, Eff_prim)" were NOT initialized in each event.
This is fixed.
-Add
-calculate the component number of first interaction point, and ouput it.
-Update-1
-use "epq1stIntTrack" function(Epicsv9.161~) to find 1st interaction point
-Update-2
-unify the numbering method of component number.
the start number is "0", not "1"
(ex.) SciFi number: (0~447)
PWO-log number: (0~15)
課題リスト(140411)
•
•
•
•
•
•
•
QLのHit情報バグ(途中まで調査)
100TeV問題
CRCの取り扱い
MDC Simulatorのメモリ管理(OK)
データ生成 =>6周分で停止
広平面入射のHEトリガーレートが合わない
トリガー効率の確認
QL Hit情報調査
• Localで調査
– git clone
• 最新の状態でテスト環境構築
– test.sh実行でエラー発生(新環境)
→バージョンを戻して確認
$ git checkout ‘ハッシュ’
(Date: Tue Jan 7 21:55:41 2014 +0900)
DeadTimeの取り扱い変更が原因、ソースに追記
→もう一度test.shを実行し、現行verの結果とdiffにて確認
• 最新のテストデータにアップデートする必要あり
– IEEE, GSE(ICS,NASA)ヘッダについてそれぞれ調査
• HEでトリガーされた全イベントに対し、LD TASC HE Hit情報
が0になっていないか確認
50秒分のデータをそれぞれ作成
→どちらもなっていなかった
• WCOCのマシンでも確認、ok
→QLではおかしいので、QLのアルゴリズムの確認
QL Hit情報調査
•
QLのアルゴリズムの理解
– MDC Simulator 内部でパケットを読むルーチンが発見できなかった
→解決済み(140419)
•
内容
– ICS,NASA経由のデータを50秒分それぞれ生成
•
EPICS all 55501
psingle
– QL実行
•
CHDのSingle,IMCY4のSingleがおかしい
–
–
QLのインスタンス内でHit情報を確認
→上記バグが発生した
MDCのインスタンス内でHit情報を確認
→上記バグが発生しない
やった位置
» ThreadClientRelay.cpp
• ReadGSE()の直下◯
• CloneInstance()後のmdcQueue☓
» MDCSimulator.cc
• CloneInstance()中☓
• CopyValuables()中◯
» QLEvDisp.cpp
TQLDispDet.cc
• InitDraw()中☓
MDCSimulator::CloneInstance()で上手くインスタンスがコピーできてない
以上を踏まえ、原因としてmdcのインスタンスを渡す際にメモリを誤開放していることが考えられる。
»
–
–
•
使うネットワークによって、GSEヘッダが上手く読み込まれないときがある
→帯域が問題
–
–
自前のMobile Wifi経由で発生
研究室内ネットワークでは動く
PWO 平均Energy Deposit
PWO一本一本のΔEのレートを求める(軌道1周)
• 方法
– 使用データ:MJD55501、EPICS all particles
– teleout.ccを改造し、各PWO毎に1秒毎のΔEのsumを
出力
• getPwoEnergyDeposit.cc
出力を確認. (140411 15:06)
– 100TeVの粒子の影響により、甚大なΔEがちらほら確認できる
→1TeV以上のイベントを一旦cut
5406秒分のデータを作成
– レートの絵を描く
• GetPwoEDepRate.C
– MIPの値は2GeVのミューオンのΔEより(赤池さん)
0.0204673 GeV / 1PWO
– 192本まとめてDraw
QL Hit情報調査
• 今日の目標:QLのアルゴリズムの理解
• 内容
– まずICS経由のデータを50秒生成
• EPICS all 55501 psingle
Hit情報バグ
• QLでイベントビューアを呼び出す際に、トリガー
情報と、LDHit情報が一致しない
• 原因調査
– 使用データ:EPICS all particle, 55501 1周分のデータ,
Header:IEEE
– telereadによりイベント情報を目で確認
=>特に異常なイベントはなし
– HEでトリガーされた全イベントに対し、LD TASC HE Hit
情報が0になっていないか確認
=>全て1になっていた。
ここで確認した変数をQLで読み込んでい
るので、バグの原因ではなさそうです。