Telesim

進捗報告
M2 下村
140531 地上系会議
内容
•
•
•
•
MDC Simulator修正
イベントビューア修正
ソケット/QLプログラム修正
ToDo
MDC Simulator 修正
•
Writeオプションに、データのNo SuppressとFull Suppressを追加
– 使い方
• teleoutのオプションで、”-z”を指定
-z 0 : 通常データ
-z 1 : No Suppress
-z 2 : Full Suppress
•
CheckSum計算ルーチンの変更
– 計算方法
1st frame :UniqueKeyとEventデータワード数以外のSum
2nd 以降〜:UniqueKeyとCheckSum以外、Assign+ADCデータのSum
– チェックサムの定義
• 上記Sumの2の補数(プログラム上:~checksum+1)
• 最終フレームの最後のADCデータの次に格納
※一番最後のワードではない
…
フレーム長は必ず偶数なので、
Nullになることがある。
イベントビューア修正
• ビューアの見た目を改善
– ModeのOn/Offを表すboxを追加
• 飛跡を引けるようにした
EventIDが重ならない
ように変更
緑色がマスクOn
緑:真の飛跡
赤:求めた飛跡
ソケット/QL プログラム修正
• ソケットプログラムのオプション追加
– “-c”:パケットに記述された時間を付け替えない
• QLEvDisp、QLSummary、QLSumTextのルーチンの
改善
– 問題点:実行時に激しいメモリリーク
原因 :UniqueKey3が1,6以外のデータで、MDCSimulator
のインスタンスをdeleteしてなかった
– 修正後:激しいメモリリークは解消
ただし、微妙に残っているので今後の課題。
ToDo
• Socketプログラム内部でチェックサムの再計
算
• テストデータのアップデート
• メモリリークの解消
END
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で読み込んでい
るので、バグの原因ではなさそうです。