2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
4 #ifndef MUONREADOUTGEOMETRYR4_STRIPLAYER_ICC
5 #define MUONREADOUTGEOMETRYR4_STRIPLAYER_ICC
8 inline const Amg::Transform3D& StripLayer::toOrigin() const { return m_transform; }
9 inline const StripDesign& StripLayer::design() const { return *m_design;}
10 inline const IdentifierHash StripLayer::hash() const { return m_hash;}
12 inline Amg::Vector3D StripLayer::localStripPos(unsigned int stripNum) const {
13 Amg::Vector3D stripPos{Amg::Vector3D::Zero()};
14 std::optional<Amg::Vector2D> planePos = m_design->center(stripNum);
18 stripPos.block<2,1>(0,0) = std::move(*planePos);
21 /// Returns the position of the left strip edge (positive local y) expressed in the local frame
22 inline Amg::Vector3D StripLayer::localStripLeftEdge(unsigned int stripNum) const {
23 Amg::Vector3D edgePos{Amg::Vector3D::Zero()};
24 std::optional<Amg::Vector2D> planePos = m_design->leftEdge(stripNum);
28 edgePos.block<2,1>(0,0) = std::move(*planePos);
31 /// Returns the position of the right strip edge (negative local y) exoressed in the local frame
32 inline Amg::Vector3D StripLayer::localStripRightEdge(unsigned int stripNum) const {
33 Amg::Vector3D edgePos{Amg::Vector3D::Zero()};
34 std::optional<Amg::Vector2D> planePos = m_design->rightEdge(stripNum);
38 edgePos.block<2,1>(0,0) = std::move(*planePos);
43 inline Amg::Vector3D StripLayer::stripPosition(unsigned int stripNum) const {
44 return toOrigin() * localStripPos(stripNum);