220 likes | 299 Views
進捗報告. M2 下村 140614 地上系会議. 内容. MDCSimulator の Merge ( Auxiliary ) QLOrbISS の作成 ToDo. MDCSimulator の Merge ( Auxiliary ). MDCSimulator をマージし、補助データの読み書きに対応した 動作テスト sock_if でのデータ受け渡し: ok 力石ルーチンから取り出した Lat,Lon と入力した値を比較 → 小数第 6 位の精度で一致 (alt は第 3 位 ). 入力 Lat Lon Alt. 出力 Lat Lon Alt.
E N D
進捗報告 M2 下村 140614 地上系会議
内容 • MDCSimulatorのMerge(Auxiliary) • QLOrbISSの作成 • ToDo
MDCSimulatorのMerge(Auxiliary) • MDCSimulatorをマージし、補助データの読み書きに対応した • 動作テスト • sock_ifでのデータ受け渡し:ok • 力石ルーチンから取り出したLat,Lonと入力した値を比較→ 小数第6位の精度で一致 (altは第3位) 入力 LatLonAlt 出力 LatLonAlt < 167.9340000 -40.4380000 6740.1800000 < 168.0000000 -40.4000000 6740.1800000 < 168.0650000 -40.3620000 6740.1900000 < 168.1310000 -40.3240000 6740.1900000 < 168.1970000 -40.2860000 6740.1900000 < 168.2620000 -40.2480000 6740.1900000 < 168.3270000 -40.2100000 6740.1900000 < 168.3930000 -40.1720000 6740.1900000 < 168.4580000 -40.1340000 6740.1900000 < 168.5230000 -40.0960000 6740.1900000 < 168.5880000 -40.0580000 6740.1900000 < 168.6530000 -40.0200000 6740.1900000 < 168.7180000 -39.9810000 6740.1900000 < 168.7830000 -39.9430000 6740.2000000 < 168.8480000 -39.9050000 6740.2000000 < 168.9120000 -39.8660000 6740.2000000 < 168.9770000 -39.8280000 6740.2000000 < 169.0410000 -39.7890000 6740.2000000 < 169.1060000 -39.7510000 6740.2000000 < 169.1700000 -39.7120000 6740.2000000 > 167.9339977 -40.4379984 6740.1798865 > 168.0000047 -40.4000014 6740.1799633 > 168.0650008 -40.3620008 6740.1897508 > 168.1309940 -40.3240005 6740.1901210 > 168.1970010 -40.2859996 6740.1903577 > 168.2619971 -40.2479995 6740.1900683 > 168.3270068 -40.2099995 6740.1894309 > 168.3930001 -40.1720002 6740.1897869 > 168.4579962 -40.1340002 6740.1900155 > 168.5230059 -40.0960001 6740.1899643 > 168.5880020 -40.0579997 6740.1896313 > 168.6529981 -40.0199996 6740.1904130 > 168.7179942 -39.9809986 6740.1902104 > 168.7830039 -39.9430008 6740.2004488 > 168.8480000 -39.9050020 6740.1999889 > 168.9119989 -39.8659978 6740.2002023 > 168.9769949 -39.8280013 6740.2000590 > 169.0409938 -39.7890005 6740.2005899 > 169.1060035 -39.7509994 6740.1995777 > 169.1700024 -39.7119984 6740.1999020
QLOrbISSの作成 • QLTrendを流用して、高度400kmでのCALETの位置のモニターを作成した • 機能:CALETの位置 通過した軌跡(default:1000sec) 通過したGridのRateをプロット(画像はSingle)
Todo • QLOrbISSの改善 • 軌道予測の追加(SGP4)→探したが上手く行かず • カウントレートの選択 • カラースケールの追加 • QLの全天モニターを作る
ToDo • QLの作成案を練る • Level0データの検証
Validate Level0 • TcpServerEXMainを流用してLevel0データの検証用プログラムを作成した • 目的:Level0データのチェック • UKey2/EventIDの連続性、チェックサムの確認等 実行例 Level0データ エラーがあるとここ にコメントが出る 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 OK 0000] 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 OK 0000] 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 OK 0000] 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 OK 0000] 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 OK 0000] 1402048452 70 1 1 0 0 341884808 20 10 1 0 5 GSEヘッダ データ部 GSEヘッダ データ部 GSEヘッダ データ部 ・ ・ ・
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 30words) • ICS : Max Packet Size = 748 (内Event Data 736words), Min Packet Size = 24 (内Event Data 12words) • Readルーチンの修正 (140517) • EventデータラストフレームのWord数 • 先頭フレームのTotal Word Lengthを使い導出
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: TueJan 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秒分それぞれ生成 • EPICSall55501psingle • 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以上のイベントを一旦cut5406秒分のデータを作成 • レートの絵を描く • GetPwoEDepRate.C • MIPの値は2GeVのミューオンのΔEより(赤池さん)0.0204673 GeV / 1PWO • 192本まとめてDraw
QL Hit情報調査 • 今日の目標:QLのアルゴリズムの理解 • 内容 • まずICS経由のデータを50秒生成 • EPICSall55501psingle
Hit情報バグ • QLでイベントビューアを呼び出す際に、トリガー情報と、LDHit情報が一致しない • 原因調査 • 使用データ:EPICS all particle, 55501 1周分のデータ, Header:IEEE • telereadによりイベント情報を目で確認 =>特に異常なイベントはなし • HEでトリガーされた全イベントに対し、LD TASC HE Hit情報が0になっていないか確認 =>全て1になっていた。 ここで確認した変数をQLで読み込んでいるので、バグの原因ではなさそうです。