CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

DetLayer Class Reference

#include <DetLayer.h>

Inheritance diagram for DetLayer:
GeometricSearchDet BarrelDetLayer ForwardDetLayer GCC11_FINAL< T, TOPO > RodBarrelLayer GCC11_FINAL< T, TOPO > GCC11_FINAL< T, TOPO > RingedForwardLayer TECLayer GCC11_FINAL< T, TOPO > GCC11_FINAL< T, TOPO > MuRodBarrelLayer GCC11_FINAL< T, TOPO > MuRingForwardDoubleLayer MuRingForwardLayer

List of all members.

Public Types

typedef
GeomDetEnumerators::Location 
Location
typedef
GeomDetEnumerators::SubDetector 
SubDetector

Public Member Functions

template<typename... Args>
std::vector< const DetLayer * > compatibleLayers (Args &&...args) const
 Returns all layers compatible.
 DetLayer (bool ibar)
bool isBarrel () const
bool isForward () const
virtual Location location () const =0
 Which part of the detector (barrel, endcap)
NavigableLayernavigableLayer () const
 Return the NavigableLayer associated with this DetLayer.
template<typename... Args>
std::vector< const DetLayer * > nextLayers (Args &&...args) const
int seqNum () const
void setNavigableLayer (NavigableLayer *nlp)
 Set the NavigableLayer associated with this DetLayer.
void setSeqNum (int sq)
virtual SubDetector subDetector () const =0
 The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
virtual ~DetLayer ()

Private Attributes

bool iAmBarrel
NavigableLayertheNavigableLayer
int theSeqNum

Detailed Description

The DetLayer is the detector abstraction used for track reconstruction. It inherits from GeometricSearchDet the interface for accessing components and compatible components. It extends the interface by providing navigation capability from one layer to another. The Navigation links must be created in a NavigationSchool and activated with a NavigationSetter before they can be used.

Definition at line 24 of file DetLayer.h.


Member Typedef Documentation

Definition at line 28 of file DetLayer.h.

Definition at line 27 of file DetLayer.h.


Constructor & Destructor Documentation

DetLayer::DetLayer ( bool  ibar) [inline]

Definition at line 30 of file DetLayer.h.

DetLayer::~DetLayer ( ) [virtual]

Definition at line 4 of file DetLayer.cc.

References theNavigableLayer.

{ delete theNavigableLayer;}

Member Function Documentation

template<typename... Args>
std::vector<const DetLayer*> DetLayer::compatibleLayers ( Args &&...  args) const [inline]
bool DetLayer::isBarrel ( ) const [inline]
bool DetLayer::isForward ( ) const [inline]

Definition at line 36 of file DetLayer.h.

References isBarrel().

{ return !isBarrel();}
virtual Location DetLayer::location ( ) const [pure virtual]
NavigableLayer* DetLayer::navigableLayer ( ) const [inline]

Return the NavigableLayer associated with this DetLayer.

Definition at line 51 of file DetLayer.h.

References theNavigableLayer.

Referenced by CosmicNavigationSchool::buildAdditionalForwardLinks(), and CfgNavigationSchool::makeBwdLinks().

{ return theNavigableLayer;}
template<typename... Args>
std::vector<const DetLayer*> DetLayer::nextLayers ( Args &&...  args) const [inline]

Return the next (closest) layer(s) that can be reached in the specified NavigationDirection

Definition at line 60 of file DetLayer.h.

References harvestRelVal::args, NavigableLayer::nextLayers(), and theNavigableLayer.

Referenced by CkfDebugger::analyseRecHitNotFound(), TrackEfficiencyMonitor::compatibleLayers(), MuonCkfTrajectoryBuilder::findCompatibleMeasurements(), BaseCkfTrajectoryBuilder::findStateAndLayers(), PixelMatchNextLayers::PixelMatchNextLayers(), and MuonNavigationPrinter::printLayer().

                                    {
    return theNavigableLayer
      ? theNavigableLayer->nextLayers(std::forward<Args>(args)...)
      : std::vector<const DetLayer*>();
  }
int DetLayer::seqNum ( ) const [inline]
void DetLayer::setNavigableLayer ( NavigableLayer nlp)

Set the NavigableLayer associated with this DetLayer.

delete theNavigableLayer; // bad idea!

Definition at line 7 of file DetLayer.cc.

References NavigableLayer::detLayer(), NavigableLayer::setDetLayer(), and theNavigableLayer.

                                                     {
  theNavigableLayer = nlp;

  //nlp=0 amount to cleaning the link. do nothing further
  if (nlp){
  if (nlp->detLayer() != this) {
    if (nlp->detLayer() != 0) {
      edm::LogWarning("DetLayers") << "DetLayer Warning: my navigable layer does not point to me. "
                                   << " Correcting..." ;
    }
    theNavigableLayer->setDetLayer( this);
  }
  }//nlp!=0
}
void DetLayer::setSeqNum ( int  sq) [inline]

Definition at line 40 of file DetLayer.h.

References theSeqNum.

{ theSeqNum=sq;}
virtual SubDetector DetLayer::subDetector ( ) const [pure virtual]

Member Data Documentation

bool DetLayer::iAmBarrel [private]

Definition at line 79 of file DetLayer.h.

Referenced by isBarrel().

Definition at line 77 of file DetLayer.h.

Referenced by compatibleLayers(), navigableLayer(), nextLayers(), setNavigableLayer(), and ~DetLayer().

int DetLayer::theSeqNum [private]

Definition at line 78 of file DetLayer.h.

Referenced by seqNum(), and setSeqNum().