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));
56 std::vector<std::shared_ptr<const Muon::MdtIntersectGeometry>> stations =
getStationGeometry(
id);
59 for (std::shared_ptr<const Muon::MdtIntersectGeometry>& it : stations) {
61 tubeIntersects.insert(tubeIntersects.end(), intersect.tubeIntersects().begin(), intersect.tubeIntersects().end());
69 std::vector<Identifier> chIds;
74 auto [stEtaMin, stEtaMax] =
m_idHelperSvc->mdtIdHelper().stationEtaMinMax(
id);
76 int chEtaLeft = stEta - 1;
77 int chEtaRight = stEta + 1;
82 if (chEtaLeft < stEtaMin) chEtaLeft = -999;
85 if (chEtaRight > stEtaMax) chEtaRight = -999;
98 if (chEtaLeft == 0) chEtaLeft -= 1;
99 if (chEtaRight == 0) chEtaRight += 1;
102 if (chEtaLeft == 0) chEtaLeft = -999;
103 if (chEtaRight == 0) chEtaRight = -999;
107 if (
chIndex == ChIndex::BIS && std::abs(stEta) == 8) {
114 if (std::abs(chEtaLeft) == 8) chEtaLeft = -999;
115 if (std::abs(chEtaRight) == 8) chEtaRight = -999;
120 if( std::abs(chEtaLeft) != 5 && std::abs(chEtaLeft) != 4 ) chEtaLeft = -999;
121 if( std::abs(chEtaRight) != 5 && std::abs(chEtaRight) != 4 ) chEtaRight = -999;
124 if (chEtaLeft != -999 &&
128 if (chEtaRight != -999 &&
This is a "hash" representation of an Identifier.
Identifier multilayerID(const Identifier &channeldID) const
virtual int get_detectorElement_hash(const Identifier &id, IdentifierHash &hash_id) const override
int getMultilayer() const
Returns the multilayer represented by the readout element.
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Identifier identify() const override final
Returns the ATLAS Identifier of the MuonReadOutElement.
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
std::vector< std::shared_ptr< MdtIntersectGeometry > > m_geometry
std::vector< std::shared_ptr< const MdtIntersectGeometry > > getStationGeometry(const Identifier &id) const
get geometry description of the given chamber + neighbouring chambers
const IMuonIdHelperSvc * m_idHelperSvc
const MdtCondDbData * m_dbData
Muon::MuonStationIntersect tubesCrossedByTrack(const MuonGM::MuonDetectorManager *detMgr, const Identifier &id, const Amg::Vector3D &pos, const Amg::Vector3D &dir) const
std::shared_ptr< const MdtIntersectGeometry > getChamber(const Identifier &id) const
get a pointer to the cached chamber
std::vector< Identifier > binPlusneighbours(const Identifier &id) const
std::vector< MuonTubeIntersect > TubeIntersects
std::vector< std::string > intersection(std::vector< std::string > &v1, std::vector< std::string > &v2)
Eigen::Matrix< double, 3, 1 > Vector3D
ChIndex chIndex(const std::string &index)
convert ChIndex name string to enum
bool isBarrel(const ChIndex index)
Returns true if the chamber index points to a barrel chamber.
const std::string & stName(StIndex index)
convert StIndex into a string
ChIndex
enum to classify the different chamber layers in the muon spectrometer
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.