--
TakuyaKumaoka - 2020-02-27
概要
findStgcSuperPoints2が本体。(1., 2.は現状seed decodingがデータに施されていないため。最終的には不要となる)
-
stgcRoiDefiner(const LVL1::RecMuonRoI* p_roi)
でまずRoIをglobal座標からlocal(セクター中心を横軸上に合わせた座標)に変換。
- seedDecord(StgcHits & roi_stgcHit, StgcHits& stgcHit)で1.のRoIに基づき, 指定した領域内のhitの情報を取ってくる。
- ひとまず、roi内にhitが3つ以下なら再構成が難しい(やろうと思えばできる)ため、その様なイベントはreturn。
- small sectorとlarge sectorのoverlapの領域があるため、一応それぞれで同じアルゴリズムを回す(overlap領域でない時無駄。かつ変なのを再構成する危険もあるがひとまずこうするしか無かった。)。
-
classifyDataEachLayer
はseed decodingされたデータをstirpとwireを分け、またlayerごと(配列)に必要なデータを入れる関数である。
-
combineTwoHit(addoptedSegDuet, sortStrChamComp, 0);
は上記の画像の操作1を行う関数である。
-
combineFourHit
は上記の画像の操作2を行う関数である。
- は上記の画像の操作3を行う関数である。outputは
double candCluSegPars[3] = {999., 0., 0.};//chi, slope, intercept,
とint candCluHitIdSet[8] = {-1,-1,-1,-1,-1,-1,-1,-1};
であり、前者は最終的に選ばれた各層のhitから最小二乗法で計算された3つのパラメータRMS, 傾き, 切片である。後者は選ばれた元のhitの番号(各層の何番目のhitデータか)である。
-
inputParameter
は8.で選び出したhitデータと求めたパラメータから部分飛跡に必要なパラメータを求め部分飛跡のコンテナに詰めることを行う関数。
- 9.の中でphiを計算するために
stgcWirePhiCalc
が走る。基本的にはstripの再構成法をwireで行う関数。ただし、
unsigned int wireHitSize = 0; //wire phi fix start 111111111111111111111111111111111111111111111111111111111111111111
for(unsigned int layLoop = 0; layLoop < 8; layLoop++){
double layerZ = sortWirChamComp[layLoop].z;
for(int hitLoop = 0; hitLoop < sortWirChamComp[layLoop].r.size(); hitLoop++){
double wireR = sortWirChamComp[layLoop].r.at(hitLoop);
double wirePhi = sortWirChamComp[layLoop].phi.at(hitLoop);
double stripX = stgcSegment->slope * fabs(layerZ) + stgcSegment->intercept;
sortWirChamComp[layLoop].phi.at(hitLoop) = atan(wireR * sin(wirePhi) / stripX); wireHitSize++; //
c.p2("layerId, phi",layLoop ,atan(wireR * sin(wirePhi) / stripX));
}//hit hitNum loop end
}//wire layer loop end
//wire phi fix end 111111111111111111111111111111111111111111111111111111111111111111
でwireの値の補正を行なったり、multiscatteringの際にwireが原因で処理しきれないイベントが多くあることがわかったため、特別な処理をするなどしている。ひとまずの処置としてもっとも内側の層のwireを元に、次の層の最もphiが近いwireを選び出していき、最終的にRMSが最も小さい組み合わせを採用するとしている。(phi方向にはmuonはほとんど曲がらないため). ただpadが使えることに最終的になったので、stripによる飛跡再構成で選び出したpadによってwireのhitを用いる領域を絞る方法が可能となるだろう。また、その領域にwireがなければpadで求めたphiを採用すれば良いと考える。padの分解能においては
リンクを参照してください。