14 #include "../MdtVsTgcRawDataValAlg.h"
35 std::vector<const Muon::MuonSegment*> (&disqualifiedSegments)[2][4]){
38 const int nMeasCutMdt[4] = { 4, 2, 4, 5};
39 const int nMeasCutTgcStrip[4] = { 0, 0, 1, 0};
41 const float dPhiCutPosDir[4] = {0.05,0.05,0.08,0.1 };
42 const float dTheCutPosDir[4] = { 0.2, 0.4, 0.6,0.5 };
46 bool skipSegm;
int nDisqualifiedSegm;
50 for(
int jMDT=0;jMDT<4;jMDT++){
52 int nSegm=sortedSegments[
i][jMDT].size();
55 for(
int n=0;
n<nSegm;
n++){
59 if(segm==
nullptr)
continue;
63 nDisqualifiedSegm=disqualifiedSegments[
i][jMDT].size();
64 for(
int ndis=0;ndis<nDisqualifiedSegm;ndis++)
if(segm==disqualifiedSegments[
i][jMDT].at(ndis))skipSegm=
true;
72 int nTgcMeas[2] = {0,0};
97 if(nMdtMeas<nMeasCutMdt[jMDT]||nTgcMeas[1]<nMeasCutTgcStrip[jMDT]){
108 float segmPosPhi = segmGlobalPos.phi();
109 float segmPosThe = segmGlobalPos.theta();
110 if(segmPosPhi<0) segmPosPhi+=2*
M_PI;
111 if(segmPosThe>
M_PI/2) segmPosThe=
M_PI-segmPosThe;
115 float segmDirPhi = segmGlobalDir.phi();
116 float segmDirThe = segmGlobalDir.theta();
117 if(segmDirPhi<0) segmDirPhi+=2*
M_PI;
118 if(segmDirThe>
M_PI/2) segmDirThe=
M_PI-segmDirThe;
121 float dPhi_Pos_Dir = segmPosPhi-segmDirPhi;
122 float dThe_Pos_Dir = segmPosThe-segmDirThe;
123 if(dPhi_Pos_Dir<-
M_PI)dPhi_Pos_Dir+=2*
M_PI;
124 if(dPhi_Pos_Dir>
M_PI)dPhi_Pos_Dir-=2*
M_PI;
132 if(std::abs(dPhi_Pos_Dir)>dPhiCutPosDir[jMDT]||std::abs(dThe_Pos_Dir)>dTheCutPosDir[jMDT]){
140 disqualifiedSegments[
i][jMDT].push_back(segm);