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