CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Attributes
DetLayer Class Referenceabstract

#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

Public Types

typedef
GeomDetEnumerators::Location 
Location
 
typedef
GeomDetEnumerators::SubDetector 
SubDetector
 
- Public Types inherited from GeometricSearchDet
typedef std::pair< const
GeomDet
*, TrajectoryStateOnSurface
DetWithState
 
typedef BoundSurface::PositionType PositionType
 
typedef BoundSurface::RotationType RotationType
 
typedef TrajectoryStateOnSurface TrajectoryState
 

Public Member Functions

template<typename... Args>
std::vector< const DetLayer * > compatibleLayers (Args &&...args) const
 Returns all layers compatible. More...
 
 DetLayer (bool ibar)
 
bool isBarrel () const
 
bool isForward () const
 
virtual Location location () const =0
 Which part of the detector (barrel, endcap) More...
 
NavigableLayernavigableLayer () const
 Return the NavigableLayer associated with this DetLayer. More...
 
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. More...
 
void setSeqNum (int sq)
 
virtual SubDetector subDetector () const =0
 The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap) More...
 
virtual ~DetLayer ()
 
- Public Member Functions inherited from GeometricSearchDet
virtual const std::vector
< const GeomDet * > & 
basicComponents () const =0
 
virtual std::pair< bool,
TrajectoryStateOnSurface
compatible (const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const =0
 
virtual std::vector< DetWithStatecompatibleDets (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
 
virtual void compatibleDetsV (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const
 
virtual const std::vector
< const GeometricSearchDet * > & 
components () const =0
 Returns basic components, if any. More...
 
 GeometricSearchDet ()
 
virtual std::vector< DetGroupgroupedCompatibleDets (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
 
virtual void groupedCompatibleDetsV (const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetGroup > &result) const
 
virtual bool hasGroups () const =0
 
virtual const
Surface::PositionType
position () const
 Returns position of the surface. More...
 
virtual const BoundSurfacesurface () const =0
 The surface of the GeometricSearchDet. More...
 
virtual ~GeometricSearchDet ()
 

Private Attributes

bool iAmBarrel
 
NavigableLayertheNavigableLayer
 
int theSeqNum
 

Additional Inherited Members

- Protected Attributes inherited from GeometricSearchDet
GeomDetCompatibilityChecker theCompatibilityChecker
 

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

typedef GeomDetEnumerators::Location DetLayer::Location

Definition at line 28 of file DetLayer.h.

typedef GeomDetEnumerators::SubDetector DetLayer::SubDetector

Definition at line 27 of file DetLayer.h.

Constructor & Destructor Documentation

DetLayer::DetLayer ( bool  ibar)
inline

Definition at line 30 of file DetLayer.h.

30 : theNavigableLayer(0), theSeqNum(-1), iAmBarrel(ibar) {}
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:77
bool iAmBarrel
Definition: DetLayer.h:79
int theSeqNum
Definition: DetLayer.h:78
DetLayer::~DetLayer ( )
virtual

Definition at line 4 of file DetLayer.cc.

References theNavigableLayer.

4 { delete theNavigableLayer;}
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:77

Member Function Documentation

template<typename... Args>
std::vector<const DetLayer*> DetLayer::compatibleLayers ( Args &&...  args) const
inline

Returns all layers compatible.

Definition at line 69 of file DetLayer.h.

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

Referenced by FixTrackHitPattern::analyze(), DTChamberEfficiency::compatibleLayers(), StandAloneMuonFilter::compatibleLayers(), MuonNavigationPrinter::printLayer(), and StandAloneMuonTrajectoryBuilder::propagateTheSeedTSOS().

69  {
70  return theNavigableLayer
71  ? theNavigableLayer->compatibleLayers(std::forward<Args>(args)...)
72  : std::vector<const DetLayer*>();
73  }
virtual std::vector< const DetLayer * > compatibleLayers(NavigationDirection direction) const =0
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:77
bool DetLayer::isBarrel ( ) const
inline
bool DetLayer::isForward ( ) const
inline

Definition at line 36 of file DetLayer.h.

References isBarrel().

36 { return !isBarrel();}
bool isBarrel() const
Definition: DetLayer.h:35
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().

51 { return theNavigableLayer;}
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:77
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(), NuclearInteractionFinder::findMeasurementsFromTSOS(), BaseCkfTrajectoryBuilder::findStateAndLayers(), PixelMatchNextLayers::PixelMatchNextLayers(), and MuonNavigationPrinter::printLayer().

60  {
61  return theNavigableLayer
62  ? theNavigableLayer->nextLayers(std::forward<Args>(args)...)
63  : std::vector<const DetLayer*>();
64  }
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:77
virtual std::vector< const DetLayer * > nextLayers(NavigationDirection direction) const =0
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.

7  {
9  theNavigableLayer = nlp;
10 
11  //nlp=0 amount to cleaning the link. do nothing further
12  if (nlp){
13  if (nlp->detLayer() != this) {
14  if (nlp->detLayer() != 0) {
15  edm::LogWarning("DetLayers") << "DetLayer Warning: my navigable layer does not point to me. "
16  << " Correcting..." ;
17  }
19  }
20  }//nlp!=0
21 }
virtual DetLayer * detLayer() const =0
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:77
virtual void setDetLayer(DetLayer *dl)=0
void DetLayer::setSeqNum ( int  sq)
inline

Definition at line 40 of file DetLayer.h.

References theSeqNum.

40 { theSeqNum=sq;}
int theSeqNum
Definition: DetLayer.h:78
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().

NavigableLayer* DetLayer::theNavigableLayer
private

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().