44 ,m_sumTool(
"TRT_StrawStatusSummaryTool", this)
45 ,m_TRTStrawNeighbourSvc(
"TRT_StrawNeighbourSvc",
name)
46 ,m_TRTCalDbTool(
"TRT_CalDbTool", this)
47 ,m_drifttool(
"TRT_DriftFunctionTool")
48 ,m_pTRTHelper(nullptr)
54 ,m_trackSelTool(
"InDet::InDetTrackSelectionTool/TrackSelectionTool", this)
143 for (
int ibe = 0; ibe < 2; ibe++) {
145 IdentifierHash idHash =
index;
157 idSide = idBarrelEndcap ? 1 : -1;
159 if (
isBarrel && (idBarrelEndcap == -1)) {
163 }
else if (ibe == 1) {
164 idSide = idBarrelEndcap ? 1 : 0;
166 if (!
isBarrel && ((idBarrelEndcap == -2) || (idBarrelEndcap == 2))) {
172 if (sectorflag == 1) {
173 if (!element)
continue;
175 for (
unsigned int istraw = 0; istraw < element->
nStraws(); istraw++) {
176 std::vector<Identifier> neighbourIDs;
183 if (idLayerWheel == 1) i_chip += 21;
185 if (idLayerWheel == 2) i_chip += 54;
187 int tempStrawNumber =
strawNumber(istraw, idStrawLayer, idLayerWheel);
189 if (tempStrawNumber < 0 || tempStrawNumber > (
s_Straw_max[ibe] - 1)) {
190 ATH_MSG_WARNING(
"Found tempStrawNumber = " << tempStrawNumber <<
" out of range.");
192 m_mat_chip_B.at(idPhiModule).at(tempStrawNumber) = i_chip;
193 m_mat_chip_B.at(idPhiModule + 32).at(tempStrawNumber) = i_chip;
195 }
else if (ibe == 1) {
197 int tempStrawNumber =
strawNumberEndCap(istraw, idStrawLayer, idLayerWheel, idPhiModule, idSide);
199 if (tempStrawNumber < 0 || tempStrawNumber > (
s_Straw_max[ibe] - 1)) {
200 ATH_MSG_WARNING(
"Found tempStrawNumber = " << tempStrawNumber <<
" out of range.");
202 m_mat_chip_E.at(idPhiModule).at(tempStrawNumber) = i_chip;
203 m_mat_chip_E.at(idPhiModule + 32).at(tempStrawNumber) = i_chip;
219 return StatusCode::SUCCESS;
226 switch (LayerNumber) {
244 int addToStrawNumber = 0;
245 int addToStrawNumberNext = 0;
247 const int numberOfStraws[75] = {
274 addToStrawNumber += numberOfStraws[
i - 1];
275 addToStrawNumberNext = addToStrawNumber + numberOfStraws[
i];
280 if (strawNumber < 0 || strawNumber >
s_Straw_max[0] - 1) {
295 static const int TripletOrientation[2][32] = {
297 1, 1, 1, 1, 1, 1, 1, 1,
298 0, 0, 0, 0, 0, 0, 0, 0,
299 1, 1, 1, 1, 1, 1, 1, 1,
300 0, 0, 0, 0, 0, 0, 0, 0
303 1, 1, 1, 1, 1, 1, 1, 1,
304 0, 0, 0, 0, 0, 0, 0, 0,
305 1, 1, 1, 1, 1, 1, 1, 1,
306 0, 0, 0, 0, 0, 0, 0, 0
311 if (
side == 2) phi1 = phi_stack,
side = 1;
312 else if (
side == -2) phi1 = 31 - phi_stack,
side = 0;
315 if (TripletOrientation[
side][phi1]) {
341 int strawNumberNew = 0;
343 if (LayerNumber < 6 && strawLayerNumber > 7) {
344 strawNumberNew = strawNumberNew + (384 * LayerNumber);
347 strawNumberNew = strawNumberNew + (384 * LayerNumber);
350 strawNumberNew = strawNumberNew + 2304 + 192 * (LayerNumber - 6);
353 strawNumberNew = strawNumberNew + 2304 + 192 * (LayerNumber - 6);
359 if (strawNumber < 0 || strawNumber >
s_Straw_max[1] - 1) {
370 float degreeValue = radValue /
M_PI * 180;
372 if (degreeValue < 0) degreeValue += 360;
389 for (; RDO_CollectionBegin != RDO_CollectionEnd; ++RDO_CollectionBegin) {
392 if (!TRT_Collection)
continue;
396 for (; p_rdo != TRT_Collection->
end(); ++p_rdo) {
399 if (!p_lolum)
continue;
509 const float timeCor = comTimeObject ? comTimeObject->
getTime() : 0;
511 auto p_trk = trackCollection.
begin();
517 int ntrackstack[2][64];
518 int nTotalTracks = 0;
519 int nTracksB[2] = {0, 0};
520 int nTracksEC[2] = {0, 0};
521 int nTracksEC_B[2] = {0, 0};
522 int nTrksperLB_B = 0;
523 int nTrksperLB_E[2] = {0, 0};
525 for (
int ibe = 0; ibe < 2; ibe++) {
526 std::fill(ntrackstack[ibe], ntrackstack[ibe] + 64, 0);
529 for (; p_trk != trackCollection.
end(); ++p_trk) {
533 int nTRTHits =
unsigned(tempHitsVariable);
538 AllTrkPar = ((*p_trk)->track())->trackParameters();
544 for (p_trkpariter = AllTrkPar->
begin(); p_trkpariter != AllTrkPar->
end(); ++p_trkpariter) {
546 if ((mPer =
dynamic_cast<const Trk::Perigee *
>(*p_trkpariter)))
break;
558 const Trk::TrackStates *trackStates = ((*p_trk)->track())->trackStateOnSurfaces();
560 if (trackStates ==
nullptr)
continue;
568 int n_trt_hits =
unsigned(tempHitsVariable);
570 bool is_pT_over_20GeV =
false;
573 is_pT_over_20GeV =
true;
575 is_pT_over_20GeV =
false;
578 const bool cnst_is_pT_over_20GeV = is_pT_over_20GeV;
583 if (!passed_track_preselection)
continue;
586 int checkB[2] = {0, 0};
587 int checkEC[2] = {0, 0};
588 int checkEC_B[2] = {0, 0};
590 int nTRTHits_side[2][2];
591 int nTRTHitsW_perwheel[2][18];
592 int hitontrack[2] = {0, 0};
593 int hitontrack_E_side[2] = {0, 0};
595 for (
int ibe = 0; ibe < 2; ibe++) {
596 for (
int iside = 0; iside < 2; iside++) {
597 nTRTHits_side[ibe][iside] = -1;
598 nTRTHitsW[ibe][iside] = 0;
600 std::fill(nTRTHitsW_perwheel[ibe], nTRTHitsW_perwheel[ibe] + 18, 0);
604 int layer_or_wheel = 0;
608 int nearest_straw_layer[2] = {100, 100};
609 int nearest_straw[2] = {0, 0};
610 int testLayer[2] = {100, 100};
611 float phi2D[2] = {-100, -100};
613 for (TSOSItBeginTemp = TSOSItBegin0; TSOSItBeginTemp != TSOSItEnd; ++TSOSItBeginTemp) {
614 if ((*TSOSItBeginTemp) ==
nullptr)
continue;
619 if (!trtCircle)
continue;
622 if (!aTrackParam)
continue;
623 Identifier DCoTId = trtCircle->
identify();
625 int ibe = std::abs(barrel_ec) - 1;
631 if (layer_or_wheel >= testLayer[ibe])
continue;
632 testLayer[ibe] = layer_or_wheel;
634 if (straw_layer < nearest_straw_layer[ibe]) {
635 nearest_straw_layer[ibe] = straw_layer;
636 nearest_straw[ibe] =
straw;
640 circleElement =
nullptr;
644 if (phi2D[0] == -999) {
645 ATH_MSG_DEBUG(
"Track did not go through inner layer of Barrel.");
648 testLayer[0] <<
" m_straw_layer: " <<
649 nearest_straw_layer[0] <<
" (in the Barrel).");
652 if (phi2D[1] == -999) {
653 ATH_MSG_DEBUG(
"Track did not go through any inner layer of EndCap A or C.");
656 testLayer[1] <<
" m_straw_layer: " <<
657 nearest_straw_layer[1] <<
" (in the EndCaps).");
660 bool trackfound[2][64];
662 for (
int i = 0;
i < 2;
i++) {
663 std::fill(trackfound[
i], trackfound[
i] + 64,
false);
666 for (TSOSItBegin = TSOSItBegin0; TSOSItBegin != TSOSItEnd; ++TSOSItBegin) {
668 if ((*TSOSItBegin) ==
nullptr)
continue;
674 if (!trtCircle)
continue;
678 if (!aTrackParam)
continue;
680 Identifier DCoTId = trtCircle->
identify();
686 int ibe = std::abs(barrel_ec) - 1;
687 int iside = barrel_ec > 0 ? 0 : 1;
688 int thisStrawNumber[2] = {-1, -1};
689 int chip[2] = {0, 0};
694 if (thisStrawNumber[ibe] >= 0 && thisStrawNumber[ibe] <
s_Straw_max[ibe]) {
695 chip[ibe] =
m_mat_chip_B.at(phi_module).at(thisStrawNumber[ibe]);
697 }
else if (ibe == 1) {
700 if (thisStrawNumber[ibe] >= 0 && thisStrawNumber[ibe] <
s_Straw_max[ibe]) {
701 chip[ibe] =
m_mat_chip_E.at(phi_module).at(thisStrawNumber[ibe]);
704 thisStrawNumber[ibe] = -1;
707 if (thisStrawNumber[ibe] < 0 || thisStrawNumber[ibe] >=
s_Straw_max[ibe])
continue;
709 if (checkB[iside] == 0 && ibe == 0) {
714 if (checkEC[iside] == 0 && ibe == 1) {
719 if (checkEC_B[iside] == 0 && checkB[iside] == 1 && ibe == 1 ) {
720 nTracksEC_B[iside]++;
721 checkEC_B[iside] = 1;
724 Identifier surfaceID;
731 int iphi_module = -9999;
733 if (iside == 0) iphi_module = phi_module;
734 else if (iside == 1) iphi_module = phi_module + 32;
736 if (iphi_module >= 0 && iphi_module < 64) trackfound[ibe][iphi_module] =
true;
747 }
else if (ibe == 1) {
749 hitontrack_E_side[iside]++;
755 if (RawDriftCircle) {
756 nTRTHits_side[ibe][iside]++;
761 if (driftTimeValid) {
762 const float validRawDriftTime = RawDriftCircle->
rawDriftTime();
765 ValidRawDriftTimeonTrkS_x = thisStrawNumber[ibe];
766 ValidRawDriftTimeonTrkS_y = validRawDriftTime;
771 ValidRawDriftTimeonTrkC_x = chip[ibe] - 1;
772 ValidRawDriftTimeonTrkC_y = validRawDriftTime;
780 DriftTimeonTrkDist_B_Ar = RawDriftCircle->
rawDriftTime();
787 }
else if (ibe == 1) {
789 DriftTimeonTrkDist_E_Ar = RawDriftCircle->
rawDriftTime();
799 float locR_err = 0.0;
800 const AmgSymMatrix(5)* b_err = aTrackParam->covariance();
804 ATH_MSG_WARNING(
"Some diagonal element(s) of the covariance matrix is (are) infinite or smaller than / too close to zero or above the covariance cutoff");
810 ATH_MSG_ERROR(
"Track parameters have no covariance attached.");
821 if ((loc *
locR) < 0) loc = -loc;
827 double pull_b = -999.;
828 const double diff_loc_err = (loc_err * loc_err * loc_err * loc_err) - (locR_err * locR_err * locR_err * locR_err);
829 if ( diff_loc_err > 0 ) {
830 pull_b = (loc -
locR) / sqrt(diff_loc_err);
833 else pull_b_fill =
false;
835 const double trkdrifttime = (!rtr) ? 0 : rtr->
drifttime(std::abs(
locR));
836 const double timeresidual = RawDriftCircle->
rawDriftTime() - thist0 - trkdrifttime;
841 Pull_Biased_Barrel = pull_b;
847 Residual_B_Ar = loc -
locR;
849 Residual_noTubeHits_B_Ar = loc -
locR;
850 if (!isTubeHit)
fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), Residual_noTubeHits_B_Ar);
852 if (cnst_is_pT_over_20GeV) {
853 Residual_B_Ar_20GeV = loc -
locR;
855 Residual_noTubeHits_B_Ar_20GeV = loc -
locR;
856 if (!isTubeHit)
fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), Residual_noTubeHits_B_Ar_20GeV);
858 TimeResidual_B_Ar = timeresidual;
860 TimeResidual_noTubeHits_B_Ar = timeresidual;
861 if (!isTubeHit)
fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), TimeResidual_noTubeHits_B_Ar);
863 Residual_B = loc -
locR;
865 Residual_noTubeHits_B = loc -
locR;
866 if (!isTubeHit)
fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), Residual_noTubeHits_B);
867 TimeResidual_B = timeresidual;
869 TimeResidual_noTubeHits_B = timeresidual;
870 if (!isTubeHit)
fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), TimeResidual_noTubeHits_B);
872 if (cnst_is_pT_over_20GeV) {
873 Residual_B_20GeV = loc -
locR;
875 Residual_noTubeHits_B_20GeV = loc -
locR;
876 if (!isTubeHit)
fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), Residual_noTubeHits_B_20GeV);
879 }
else if (ibe == 1) {
882 Pull_Biased_EndCap = pull_b;
888 Residual_E_Ar = loc -
locR;
890 Residual_noTubeHits_E_Ar = loc -
locR;
892 TimeResidual_E_Ar = timeresidual;
894 TimeResidual_noTubeHits_E_Ar = timeresidual;
897 if (cnst_is_pT_over_20GeV) {
898 Residual_E_Ar_20GeV = loc -
locR;
900 Residual_noTubeHits_E_Ar_20GeV = loc -
locR;
904 Residual_E = loc -
locR;
906 Residual_noTubeHits_E = loc -
locR;
908 TimeResidual_E = timeresidual;
910 TimeResidual_noTubeHits_E = timeresidual;
913 if (cnst_is_pT_over_20GeV) {
914 Residual_E_20GeV = loc -
locR;
916 Residual_noTubeHits_E_20GeV = loc -
locR;
926 WireToTrkPosition_B_Ar =
locR;
929 WireToTrkPosition_B =
locR;
932 }
else if (ibe == 1) {
934 WireToTrkPosition_E_Ar =
locR;
937 WireToTrkPosition_E =
locR;
944 const float EP = timeCor;
950 RtRelation_B_Ar_x =
LE - EP -
t0;
951 RtRelation_B_Ar_y = std::abs(
locR);
952 fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), RtRelation_B_Ar_x, RtRelation_B_Ar_y);
954 RtRelation_B_Ar_x =
LE -
t0;
955 RtRelation_B_Ar_y = std::abs(
locR);
956 fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), RtRelation_B_Ar_x, RtRelation_B_Ar_y);
960 RtRelation_B_x =
LE - EP -
t0;
961 RtRelation_B_y = std::abs(
locR);
964 RtRelation_B_x =
LE -
t0;
965 RtRelation_B_y = std::abs(
locR);
969 }
else if (ibe == 1) {
972 RtRelation_E_Ar_x =
LE - EP -
t0;
973 RtRelation_E_Ar_y = std::abs(
locR);
976 RtRelation_E_Ar_x =
LE -
t0;
977 RtRelation_E_Ar_y = std::abs(
locR);
982 RtRelation_E_x =
LE - EP -
t0;
983 RtRelation_E_y = std::abs(
locR);
986 RtRelation_E_x =
LE -
t0;
987 RtRelation_E_y = std::abs(
locR);
1007 HitTronTMapC_x = chip[ibe] - 1;
1008 HitTronTMapC_y = trailingEdgeScaled;
1013 HitTronTwEPCMapS_x = thisStrawNumber[ibe];
1014 HitTronTwEPCMapS_y = trailingEdgeScaled - timeCor;
1019 HitTronTwEPCMapC_x = chip[ibe] - 1;
1020 HitTronTwEPCMapC_y = trailingEdgeScaled - timeCor;
1028 TronTDist_B_Ar = trailingEdgeScaled;
1030 AvgTroTDetPhi_B_Ar_x = phi2D[ibe];
1031 AvgTroTDetPhi_B_Ar_y = trailingEdgeScaled;
1032 fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), AvgTroTDetPhi_B_Ar_x, AvgTroTDetPhi_B_Ar_y);
1034 TronTDist_B = trailingEdgeScaled;
1036 AvgTroTDetPhi_B_x = phi2D[ibe];
1037 AvgTroTDetPhi_B_y = trailingEdgeScaled;
1038 fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), AvgTroTDetPhi_B_x, AvgTroTDetPhi_B_y);
1040 }
else if (ibe == 1) {
1042 TronTDist_E_Ar = trailingEdgeScaled;
1044 AvgTroTDetPhi_E_Ar_x = phi2D[ibe];
1045 AvgTroTDetPhi_E_Ar_y = trailingEdgeScaled;
1048 TronTDist_E = trailingEdgeScaled;
1050 AvgTroTDetPhi_E_x = phi2D[ibe];
1051 AvgTroTDetPhi_E_y = trailingEdgeScaled;
1062 for (
int ibe = 0; ibe < 2; ibe++) {
1063 for (
int i = 0;
i < 64;
i++)
1064 if (trackfound[ibe][
i])
1065 ntrackstack[ibe][
i]++;
1070 NumHoTDetPhi_B_x = phi2D[ibe];
1071 NumHoTDetPhi_B_y = hitontrack[ibe];
1072 fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), NumHoTDetPhi_B_x, NumHoTDetPhi_B_y);
1078 NumHoTDetPhi_E_x = phi2D[ibe];
1079 NumHoTDetPhi_E_y = hitontrack_E_side[0];
1080 fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe)+
"0", NumHoTDetPhi_E_x, NumHoTDetPhi_E_y);
1084 NumHoTDetPhi_E_x = phi2D[ibe];
1085 NumHoTDetPhi_E_y = hitontrack_E_side[1];
1086 fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe)+
"1", NumHoTDetPhi_E_x, NumHoTDetPhi_E_y);
1091 if (phi2D[ibe] < 0)
continue;
1095 if (nTRTHitsW[ibe][0] + nTRTHitsW[ibe][1] > 0) {
1096 NumTrksDetPhi_B = phi2D[ibe];
1099 }
else if (ibe == 1) {
1100 if (nTRTHitsW[ibe][0] > 0) {
1101 NumTrksDetPhi_E = phi2D[ibe];
1105 if (nTRTHitsW[ibe][1] > 0) {
1106 NumTrksDetPhi_E = phi2D[ibe];
1113 if ((nTRTHitsW[ibe][0] + nTRTHitsW[ibe][1]) > 0) {
1116 if (comTimeObject) {
1117 if (
m_doShift && (phi2D[ibe] > 0) && (std::abs(timeCor) > 1
e-8)) {
1118 EvtPhaseDetPhi_B_x = phi2D[ibe];
1119 EvtPhaseDetPhi_B_y = timeCor;
1120 fill(
"ShiftTRTTrackHistograms"+
std::to_string(ibe), EvtPhaseDetPhi_B_x, EvtPhaseDetPhi_B_y);
1123 }
else if (ibe == 1) {
1124 for (
int iside = 0; iside < 2; iside++) {
1125 if (nTRTHitsW[ibe][iside] > 0) nTrksperLB_E[iside]++;
1126 if (comTimeObject) {
1127 if (nTRTHits_side[ibe][iside] > 5 && (std::abs(timeCor)
1130 EvtPhaseDetPhi_E_x = phi2D[ibe];
1131 EvtPhaseDetPhi_E_y = timeCor;
1141 if (comTimeObject) {
1142 if (std::abs(timeCor) > 1
e-8) {
1145 fill(
"ShiftTRTTrackHistograms0", EvtPhase);
1149 std::vector<int> trigid;
1152 std::vector<unsigned int> level1TAV = trigDecision->
tav();
1154 for (
unsigned int j = 0; j < 8 && j < level1TAV.size(); ++j) {
1155 for (
unsigned int i = 0;
i < 32; ++
i) {
1156 if ((level1TAV[j] >>
i) & 0
x1) {
1157 trigid.push_back(
i + (j % 8) * 32);
1162 for (
unsigned int j = 0; j < trigid.size(); ++j) {
1163 EvtPhaseVsTrig_x = timeCor;
1164 EvtPhaseVsTrig_y = trigid[j];
1165 fill(
"ShiftTRTTrackHistograms0", EvtPhaseVsTrig_x, EvtPhaseVsTrig_y);
1178 SummaryWeight = nTotalTracks;
1181 SummaryWeight = nTracksB[0];
1184 SummaryWeight = nTracksB[1];
1187 SummaryWeight = nTracksEC[0];
1190 SummaryWeight = nTracksEC[1];
1193 SummaryWeight = nTracksEC_B[0];
1196 SummaryWeight = nTracksEC_B[1];
1202 int lastLumiBlock = -99;
1206 float evtLumiBlock = 1.;
1207 float lumiBlockScale = (evtLumiBlock > 0) ? (1. / evtLumiBlock) : 0;
1210 NTrksperLB_x = lastLumiBlock;
1211 NTrksperLB_y = (
float)nTrksperLB_B * lumiBlockScale;
1212 fill(
"ShiftTRTTrackHistograms0", NTrksperLB_x, NTrksperLB_y);
1214 for (
int iside = 0; iside < 2; iside++) {
1215 NTrksperLB_x = lastLumiBlock;
1216 NTrksperLB_y = (
float)nTrksperLB_E[iside] * lumiBlockScale;
1222 for (
int iside = 0; iside < 2; iside++) {
1223 nTrksperLB_E[iside] = 0;
1231 return StatusCode::SUCCESS;
1246 int lumiBlockNumber;
1248 lumiBlockNumber = eventInfo.
lumiBlock();
1256 IntLumWeight = intLum;
1257 fill(
"SmryHistograms", IntLumWeight, IntLum);
1258 LBvsLum = lumiBlockNumber;
1259 LBvsLumWeight = intLum;
1260 fill(
"SmryHistograms", LBvsLumWeight, LBvsLum);
1261 LBvsTime_x = lumiBlockNumber;
1263 fill(
"SmryHistograms", LBvsTime_x, LBvsTime_y);
1272 auto p_trk = trackCollection.
begin();
1277 for (; p_trk != trackCollection.
end(); ++p_trk) {
1278 AllTrkPar = ((*p_trk)->track())->trackParameters();
1280 for (p_trkpariter = AllTrkPar->
begin(); p_trkpariter != AllTrkPar->
end(); ++p_trkpariter) {
1281 if ((perigee =
dynamic_cast<const Trk::Perigee *
>(*p_trkpariter)))
break;
1288 ATH_MSG_DEBUG(
"No perigee mearsurement found for the track. This entry will not be propogated to aging histograms.");
1292 float track_eta = perigee->eta();
1293 float track_p = (perigee->parameters()[
Trk::qOverP] != 0.) ? std::abs(1. / (perigee->parameters()[
Trk::qOverP])) : 10e7;
1294 const Trk::TrackStates *trackStates = ((*p_trk)->track())->trackStateOnSurfaces();
1296 if (trackStates ==
nullptr)
continue;
1303 int trt_hits =
unsigned(tempHitsVariable);
1307 std::abs(track_p) >= 5000.;
1309 if (!passed_track_preselection)
continue;
1312 const Trk::TrackStates *track_states = ((*p_trk)->track())->trackStateOnSurfaces();
1315 ATH_MSG_DEBUG(
"This track has " << track_states->
size() <<
" track states on surface.");
1317 ATH_MSG_DEBUG(
"This track has null track states on surface.");
1321 int barrel_ec_side = 0;
1322 int layer_or_wheel = 0;
1324 int straw_layer = 0;
1326 for (; TSOSItBegin != TSOSItEnd; ++TSOSItBegin) {
1327 if ((*TSOSItBegin) ==
nullptr)
continue;
1333 if (!trtCircle)
continue;
1334 if (!aTrackParam)
continue;
1337 Identifier DCoTId = trtCircle->
identify();
1342 int Ba_Ec = abs(barrel_ec_side) - 1;
1343 int Side = barrel_ec_side > 0 ? 0 : 1;
1347 double RPos = sqrt(xPos * xPos + yPos * yPos);
1348 Identifier surfaceID;
1353 if (!RawDriftCircle) {
1359 int middleHTbit = RawDriftCircle->
getWord() & 0x00020000;
1361 bool is_middleHTbit_high = (middleHTbit != 0);
1363 bool isHighLevel = is_middleHTbit_high;
1364 bool shortStraw =
false;
1367 if (std::abs(track_eta) < 2. && Ba_Ec == 0.) {
1368 if ((layer_or_wheel == 0) && (phi_module < 4 || (phi_module > 7 && phi_module < 12) || (phi_module > 15 && phi_module < 20) || (phi_module > 23 && phi_module < 28))) InputBar = 1;
1369 else if ((
runNumber >= 296939) && (layer_or_wheel == 0) && (phi_module > 27)) InputBar = 1;
1370 else if (layer_or_wheel == 0)
1372 else if ((layer_or_wheel == 1) && ((phi_module > 1 && phi_module < 6) || (phi_module > 9 && phi_module < 14) || (phi_module > 17 && phi_module < 22) || (phi_module > 25 && phi_module < 30)))
1374 else if (layer_or_wheel == 1)
1376 else if (layer_or_wheel == 2 && phi_module % 2 != 0)
1378 else if (layer_or_wheel == 2)
1385 if ((layer_or_wheel == 0) && straw_layer < 9.)
1390 if ((!shortStraw) && (Ba_Ec == 0)) {
1421 if ((Ba_Ec == 1) && (layer_or_wheel < 6) &&
1422 ((straw_layer > 3 && straw_layer < 8) ||
1423 (straw_layer > 11))) {
1426 if ((Ba_Ec == 1) && (layer_or_wheel >= 6) &&
1427 (straw_layer > 3)) {
1430 if ((Ba_Ec == 1) && (layer_or_wheel < 6) &&
1431 ((straw_layer > -1 && straw_layer < 4) ||
1432 (straw_layer > 7 && straw_layer < 12))) {
1435 if ((Ba_Ec == 1) && (layer_or_wheel >= 6) &&
1436 ((straw_layer > -1 && straw_layer < 4))) {
1440 if (WType < 0 && Ba_Ec == 1) {
1456 return StatusCode::SUCCESS;
1462 bool passEventBurst =
true;
1474 if (!xAODEventInfo.
isValid()) {
1477 return StatusCode::FAILURE;
1481 if (!trackCollection.
isValid()) {
1484 return StatusCode::FAILURE;
1489 if (!trigDecision) {
1494 const ComTime *comTimeObject=
nullptr;
1497 if (!tmp_comTimeObject.
isValid()) {
1502 comTimeObject = tmp_comTimeObject.
cptr();
1509 if (!trackCollection.
isValid()) {
1512 return StatusCode::FAILURE;
1516 if (passEventBurst) {
1522 return StatusCode::SUCCESS;