Telesim

進捗報告
M2 下村
140614 地上系会議
内容
• MDCSimulatorのMerge(Auxiliary)
• QLOrbISSの作成
• ToDo
MDCSimulatorのMerge(Auxiliary)
• MDCSimulatorをマージし、補助データの読み書きに対応
した
– 動作テスト
• sock_ifでのデータ受け渡し:ok
• 力石ルーチンから取り出したLat,Lonと入力した値を比較
→ 小数第6位の精度で一致 (altは第3位)
入力 Lat
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
167.9340000
168.0000000
168.0650000
168.1310000
168.1970000
168.2620000
168.3270000
168.3930000
168.4580000
168.5230000
168.5880000
168.6530000
168.7180000
168.7830000
168.8480000
168.9120000
168.9770000
169.0410000
169.1060000
169.1700000
Lon
Alt
-40.4380000
-40.4000000
-40.3620000
-40.3240000
-40.2860000
-40.2480000
-40.2100000
-40.1720000
-40.1340000
-40.0960000
-40.0580000
-40.0200000
-39.9810000
-39.9430000
-39.9050000
-39.8660000
-39.8280000
-39.7890000
-39.7510000
-39.7120000
6740.1800000
6740.1800000
6740.1900000
6740.1900000
6740.1900000
6740.1900000
6740.1900000
6740.1900000
6740.1900000
6740.1900000
6740.1900000
6740.1900000
6740.1900000
6740.2000000
6740.2000000
6740.2000000
6740.2000000
6740.2000000
6740.2000000
6740.2000000
出力 Lat
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
167.9339977
168.0000047
168.0650008
168.1309940
168.1970010
168.2619971
168.3270068
168.3930001
168.4579962
168.5230059
168.5880020
168.6529981
168.7179942
168.7830039
168.8480000
168.9119989
168.9769949
169.0409938
169.1060035
169.1700024
Lon
-40.4379984
-40.4000014
-40.3620008
-40.3240005
-40.2859996
-40.2479995
-40.2099995
-40.1720002
-40.1340002
-40.0960001
-40.0579997
-40.0199996
-39.9809986
-39.9430008
-39.9050020
-39.8659978
-39.8280013
-39.7890005
-39.7509994
-39.7119984
Alt
6740.1798865
6740.1799633
6740.1897508
6740.1901210
6740.1903577
6740.1900683
6740.1894309
6740.1897869
6740.1900155
6740.1899643
6740.1896313
6740.1904130
6740.1902104
6740.2004488
6740.1999889
6740.2002023
6740.2000590
6740.2005899
6740.1995777
6740.1999020
QLOrbISSの作成
• QLTrendを流用して、高度400kmでのCALETの位置のモニ
ターを作成した
– 機能:CALETの位置
通過した軌跡(default:1000sec)
通過したGridのRateをプロット(画像はSingle)
Todo
• QLOrbISSの改善
– 軌道予測の追加(SGP4)→探したが上手く行かず
– カウントレートの選択
– カラースケールの追加
• QLの全天モニターを作る
END
ToDo
• QLの作成案を練る
• Level0データの検証
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
ソケット/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で読み込んでい
るので、バグの原因ではなさそうです。