29 float roi_eta = p_roi->
eta();
30 float roi_phi = p_roi->
phi();
31 if (roi_phi < 0) roi_phi += 2.0 *
M_PI;
41 const double mid_eta_test = (isLowPt) ?
m_options.roadParameters().deltaEtaAtMiddleForLowPt()
42 :
m_options.roadParameters().deltaEtaAtMiddleForHighPt();
43 const double inn_eta_test = (isLowPt) ?
m_options.roadParameters().deltaEtaAtInnerForLowPt()
44 :
m_options.roadParameters().deltaEtaAtInnerForHighPt();
45 const double mid_phi_test =
m_options.roadParameters().deltaPhiAtMiddle();
46 const double inn_phi_test =
m_options.roadParameters().deltaPhiAtInner();
49 tgcPrepContainer = tgcContainerHandle.cptr();
50 if (!tgcContainerHandle.isValid()) {
52 return StatusCode::FAILURE;
58 float min_dphi_wire=1000.;
59 float second_dphi_wire=1000.;
60 std::vector<float> ov_dphi;
69 if (stationNumWi==-1) stationNumWi=3;
70 if (stationNumWi<3 && std::abs(prepDataWi.
globalPosition().eta() - roi_eta) < mid_eta_test ) {
71 const float dphi = std::acos(std::cos(prepDataWi.
globalPosition().phi()-roi_phi));
73 for (
unsigned int ov=0;ov<ov_dphi.size();ov++)
74 if (std::abs(dphi-ov_dphi[ov])<1e-5) overlap=
true;
75 if (overlap)
continue;
76 ov_dphi.push_back(dphi);
77 if (dphi<second_dphi_wire){
78 second_dphi_wire=dphi;
80 if (dphi<min_dphi_wire) {
81 second_dphi_wire=min_dphi_wire;
91 int num_second_hits=0;
99 if (stationNumHit==-1) stationNumHit=3;
100 if (stationNumHit<3 && std::abs(prepDataHit.
globalPosition().eta() - roi_eta) < mid_eta_test ) {
101 const float dphi = std::acos(std::cos(prepDataHit.
globalPosition().phi()-roi_phi));
102 if (std::abs(dphi-min_dphi_wire)<1e-5) num_min_hits++;
103 if (std::abs(dphi-second_dphi_wire)<1e-5) num_second_hits++;
109 float dphi_wire=min_dphi_wire;
110 bool useDefault=
false;
111 if (num_min_hits<5) {
112 if (num_second_hits>5) dphi_wire=second_dphi_wire;
113 else useDefault=
true;
122 bool isInRoad =
false;
124 if (stationNum==-1) stationNum=3;
126 double dphi = std::abs(prepData.
globalPosition().phi() - roi_phi);
127 if( dphi >
M_PI*2 ) dphi = dphi -
M_PI*2;
128 if( dphi >
M_PI ) dphi =
M_PI*2 - dphi;
130 if ( stationNum < 3 && dphi < mid_phi_test ) { isInRoad =
true; }
131 else if( stationNum == 3 && dphi < inn_phi_test ) { isInRoad =
true; }
135 const float dphi = std::acos(std::cos(prepData.
globalPosition().phi()-roi_phi));
136 if ( stationNum < 3 && std::abs(prepData.
globalPosition().eta() - roi_eta) < mid_eta_test ) {
137 if (useDefault) isInRoad =
true;
138 else if (std::abs(dphi-dphi_wire)<1e-5) isInRoad =
true;
140 else if( stationNum == 3 && std::abs(prepData.
globalPosition().eta() - roi_eta) < inn_eta_test ) { isInRoad =
true; }
142 if( ! isInRoad )
continue;
154 lutDigit.
sta = stationNum;
166 tgcHits.push_back(lutDigit);
171 return StatusCode::SUCCESS;