20 m_idHelperSvc{idHelperSvc}, m_detMgr{detMgr}, m_dbData{dbData} {
21 m_geometry.resize(m_idHelperSvc->mdtIdHelper().detectorElement_hash_max());
22 for (
unsigned int n = 0;
n < m_geometry.size(); ++
n) {
27 m_geometry[id_hash] = std::make_unique<Muon::MdtIntersectGeometry>(
log, mdt_ele->
identify(), idHelperSvc, detMgr, dbData);
36 std::vector<std::shared_ptr<const Muon::MdtIntersectGeometry>> stations;
37 stations.reserve(chambers.size());
41 std::shared_ptr<const MdtIntersectGeometry> chamb =
getChamber(chId);
42 if (chamb) stations.push_back(std::move(chamb));
49 if (idHelper.get_detectorElement_hash(idHelper.multilayerID(chId),
hash))
return nullptr;
55 std::vector<std::shared_ptr<const Muon::MdtIntersectGeometry>> stations =
getStationGeometry(
id);
58 for (std::shared_ptr<const Muon::MdtIntersectGeometry>&
it : stations) {
60 tubeIntersects.insert(tubeIntersects.end(),
intersect.tubeIntersects().begin(),
intersect.tubeIntersects().end());
68 std::vector<Identifier> chIds;
75 int chEtaLeft = stEta - 1;
76 int chEtaRight = stEta + 1;
79 if (chEtaLeft < stEtaMin) chEtaLeft = -999;
82 if (chEtaRight > stEtaMax) chEtaRight = -999;
94 if (chEtaLeft == 0) chEtaLeft -= 1;
95 if (chEtaRight == 0) chEtaRight += 1;
98 if (chEtaLeft == 0) chEtaLeft = -999;
99 if (chEtaRight == 0) chEtaRight = -999;
110 if (std::abs(chEtaLeft) == 8) chEtaLeft = -999;
111 if (std::abs(chEtaRight) == 8) chEtaRight = -999;
117 if (chEtaLeft != -999 &&
121 if (chEtaRight != -999 &&