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 RodBarrelLayer TIBLayer PixelForwardLayer RingedForwardLayer TECLayer MuRodBarrelLayer PixelBarrelLayer TOBLayer MuRingForwardDoubleLayer MuRingForwardLayer TIDLayer

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

std::vector< const DetLayer * > compatibleLayers (NavigationDirection direction) const
 
std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
 
std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const
 
 DetLayer ()
 
virtual Location location () const =0
 Which part of the detector (barrel, endcap) More...
 
NavigableLayernavigableLayer () const
 Return the NavigableLayer associated with this DetLayer. More...
 
virtual std::vector< const
DetLayer * > 
nextLayers (NavigationDirection direction) const
 
virtual std::vector< const
DetLayer * > 
nextLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
 
virtual void setNavigableLayer (NavigableLayer *nlp)
 Set the NavigableLayer associated with this DetLayer. More...
 
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

NavigableLayertheNavigableLayer
 

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.

Date:
2009/07/07 14:57:32
Revision:
1.12

Definition at line 26 of file DetLayer.h.

Member Typedef Documentation

typedef GeomDetEnumerators::Location DetLayer::Location

Definition at line 30 of file DetLayer.h.

typedef GeomDetEnumerators::SubDetector DetLayer::SubDetector

Definition at line 29 of file DetLayer.h.

Constructor & Destructor Documentation

DetLayer::DetLayer ( )
inline

Definition at line 32 of file DetLayer.h.

32 : theNavigableLayer(0){};
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:83
DetLayer::~DetLayer ( )
virtual

Definition at line 7 of file DetLayer.cc.

7 { delete theNavigableLayer;}
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:83

Member Function Documentation

vector< const DetLayer * > DetLayer::compatibleLayers ( NavigationDirection  direction) const

Return all layers that can be reached from this one along the specified PropagationDirection

Definition at line 60 of file DetLayer.cc.

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

60  {
61  return theNavigableLayer
62  ? theNavigableLayer->compatibleLayers( direction)
63  : vector<const DetLayer*>();
64 }
virtual std::vector< const DetLayer * > compatibleLayers(NavigationDirection direction) const =0
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:83
vector< const DetLayer * > DetLayer::compatibleLayers ( const FreeTrajectoryState fts,
PropagationDirection  timeDirection 
) const

Returns all layers compatible with the specified FreeTrajectoryState and PropagationDirection

Definition at line 42 of file DetLayer.cc.

43  {
44  return theNavigableLayer
45  ? theNavigableLayer->compatibleLayers( fts, timeDirection)
46  : vector<const DetLayer*>();
47 }
virtual std::vector< const DetLayer * > compatibleLayers(NavigationDirection direction) const =0
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:83
vector< const DetLayer * > DetLayer::compatibleLayers ( const FreeTrajectoryState fts,
PropagationDirection  timeDirection,
int &  counter 
) const

Returns all layers compatible with the specified FreeTrajectoryState and PropagationDirection. the counter is used to count how many levels the recursive call was depth; counter = -1 is returned in case of error.

Definition at line 51 of file DetLayer.cc.

53  {
54  return theNavigableLayer
55  ? theNavigableLayer->compatibleLayers( fts, timeDirection,counter)
56  : vector<const DetLayer*>();
57 }
virtual std::vector< const DetLayer * > compatibleLayers(NavigationDirection direction) const =0
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:83
virtual Location DetLayer::location ( ) const
pure virtual

Which part of the detector (barrel, endcap)

Implemented in BarrelDetLayer, and ForwardDetLayer.

Referenced by CfgNavigationSchool::addLayer(), GroupedCkfTrajectoryBuilder::advanceOneLayer(), HitPairGeneratorFromLayerPairForPhotonConversion::checkBoundaries(), GlobalTrackingRegion::checkRZ(), HitPairGeneratorFromLayerPairForPhotonConversion::checkRZCompatibilityWithSeedTrack(), RectangularEtaPhiTrackingRegion::checkRZOld(), OutInConversionSeedFinder::completeSeed(), InOutConversionSeedFinder::completeSeed(), HitQuadrupletGeneratorFromLayerPairForPhotonConversion::failCheckRZCompatibility(), HICTrajectoryBuilder::findCompatibleMeasurements(), InOutConversionSeedFinder::findSeeds(), OutInConversionSeedFinder::fixPointRadius(), HICMeasurementEstimator::getDetectorCode(), HitPairGeneratorFromLayerPairForPhotonConversion::getLayerRadius(), HitPairGeneratorFromLayerPairForPhotonConversion::getLayerZ(), HitPairGeneratorFromLayerPairForPhotonConversion::getPhiRange(), HitPairGeneratorFromLayerPair::hitPairs(), HitPairGeneratorFromLayerPairForPhotonConversion::hitPairs(), RectangularEtaPhiTrackingRegion::hits(), PixelTripletNoTipGenerator::hitTriplets(), PixelTripletLargeTipGenerator::hitTriplets(), PixelTripletHLTGenerator::hitTriplets(), PixelTripletLowPtGenerator::hitTriplets(), ThirdHitCorrection::init(), ThirdHitRZPredictionBase::initLayer(), ThirdHitPrediction::initLayer(), InnerDeltaPhi::InnerDeltaPhi(), OutInConversionSeedFinder::makeEstimator(), CfgNavigationSchool::makeFwdLinks(), PixelMatchNextLayers::PixelMatchNextLayers(), MuonNavigationPrinter::printLayer(), ConversionSeedFinder::printLayer(), HICMeasurementEstimator::setCuts(), StartingLayerFinder::startingLayers(), and HICMuonUpdator::update().

NavigableLayer* DetLayer::navigableLayer ( ) const
inline

Return the NavigableLayer associated with this DetLayer.

Definition at line 45 of file DetLayer.h.

References theNavigableLayer.

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

45 { return theNavigableLayer;}
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:83
vector< const DetLayer * > DetLayer::nextLayers ( NavigationDirection  direction) const
virtual

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

Definition at line 35 of file DetLayer.cc.

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

35  {
36  return theNavigableLayer
37  ? theNavigableLayer->nextLayers( direction)
38  : vector<const DetLayer*>();
39 }
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:83
virtual std::vector< const DetLayer * > nextLayers(NavigationDirection direction) const =0
vector< const DetLayer * > DetLayer::nextLayers ( const FreeTrajectoryState fts,
PropagationDirection  timeDirection 
) const
virtual

Return the next (closest) layer(s) compatible with the specified FreeTrajectoryState and PropagationDirection

Definition at line 27 of file DetLayer.cc.

28  {
29  return theNavigableLayer
30  ? theNavigableLayer->nextLayers( fts, timeDirection)
31  : vector<const DetLayer*>();
32 }
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:83
virtual std::vector< const DetLayer * > nextLayers(NavigationDirection direction) const =0
void DetLayer::setNavigableLayer ( NavigableLayer nlp)
virtual

Set the NavigableLayer associated with this DetLayer.

delete theNavigableLayer; // bad idea!

Definition at line 10 of file DetLayer.cc.

References NavigableLayer::detLayer().

10  {
12  theNavigableLayer = nlp;
13 
14  //nlp=0 amount to cleaning the link. do nothing further
15  if (nlp){
16  if (nlp->detLayer() != this) {
17  if (nlp->detLayer() != 0) {
18  edm::LogWarning("DetLayers") << "DetLayer Warning: my navigable layer does not point to me. "
19  << " Correcting..." ;
20  }
22  }
23  }//nlp!=0
24 }
virtual DetLayer * detLayer() const =0
NavigableLayer * theNavigableLayer
Definition: DetLayer.h:83
virtual void setDetLayer(DetLayer *dl)=0
virtual SubDetector DetLayer::subDetector ( ) const
pure virtual

Member Data Documentation

NavigableLayer* DetLayer::theNavigableLayer
private

Definition at line 83 of file DetLayer.h.

Referenced by navigableLayer().