2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
6 * @file SiDetectorElement.icc
11 ///////////////////////////////////////////////////////////////////
13 ///////////////////////////////////////////////////////////////////
15 inline Trk::DetectorElemType SiDetectorElement::detectorType() const{
16 return Trk::DetectorElemType::Silicon;
18 inline void SiDetectorElement::setNextInEta(const SiDetectorElement* element)
20 m_nextInEta = element;
23 inline void SiDetectorElement::setPrevInEta(const SiDetectorElement* element)
25 m_prevInEta = element;
28 inline void SiDetectorElement::setNextInPhi(const SiDetectorElement* element)
30 m_nextInPhi = element;
33 inline void SiDetectorElement::setPrevInPhi(const SiDetectorElement* element)
35 m_prevInPhi = element;
38 inline void SiDetectorElement::setOtherSide(const SiDetectorElement* element) // For SCT only
40 m_otherSide = element;
43 inline const SiDetectorElement * SiDetectorElement::nextInEta() const
48 inline const SiDetectorElement * SiDetectorElement::prevInEta() const
53 inline const SiDetectorElement * SiDetectorElement::nextInPhi() const
58 inline const SiDetectorElement * SiDetectorElement::prevInPhi() const
63 inline const SiDetectorElement * SiDetectorElement::otherSide() const
68 inline bool SiDetectorElement::isPixel() const {
72 inline bool SiDetectorElement::isSCT() const {
76 inline bool SiDetectorElement::isPLR() const {
80 inline bool SiDetectorElement::isDBM() const {
84 inline bool SiDetectorElement::isBarrel() const {
88 inline bool SiDetectorElement::isEndcap() const
90 return (!isBarrel() && !isDBM());
93 inline const SiDetectorDesign& SiDetectorElement::design() const
98 inline double SiDetectorElement::phiPitch() const
100 return m_siDesign->phiPitch();
103 inline double SiDetectorElement::phiPitch(const Amg::Vector2D& localPosition) const
105 return m_siDesign->phiPitch(localPosition);
108 inline InDetDD::CarrierType SiDetectorElement::carrierType() const
110 return m_siDesign->carrierType();
113 inline bool SiDetectorElement::swapPhiReadoutDirection() const
115 // equivalent to (m_siDesign->swapHitPhiReadoutDirection() xor !m_phiDirection)
116 bool dir = this->phiDirection();
117 return ((!m_siDesign->swapHitPhiReadoutDirection() && !dir)
118 || (m_siDesign->swapHitPhiReadoutDirection() && dir));
121 inline bool SiDetectorElement::swapEtaReadoutDirection() const
123 bool dir = this->etaDirection();
124 // equivalent to (m_siDesign->swapHitEtaReadoutDirection() xor !m_etaDirection)
125 return ((!m_siDesign->swapHitEtaReadoutDirection() && !dir)
126 || (m_siDesign->swapHitEtaReadoutDirection() && dir));
129 inline SiCellId SiDetectorElement::gangedCell(const SiCellId& cellId) const
131 return m_siDesign->gangedCell(cellId);
134 inline MsgStream& SiDetectorElement::msg(MSG::Level lvl) const
136 return m_commonItems->msg(lvl);
139 inline bool SiDetectorElement::msgLvl(MSG::Level lvl) const
141 return m_commonItems->msgLvl(lvl);
146 } // namespace InDetDD