Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:26

0001 #ifndef DetLayers_DetLayer_h
0002 #define DetLayers_DetLayer_h
0003 
0004 /** \class DetLayer
0005  *  The DetLayer is the detector abstraction used for track reconstruction.
0006  *  It inherits from GeometricSearchDet the interface for accessing 
0007  *  components and compatible components. 
0008  *  It extends the interface by providing navigation capability 
0009  *  from one layer to another. 
0010  *  The Navigation links are managed by the NavigationSchool
0011  *
0012  */
0013 
0014 #include "TrackingTools/DetLayers/interface/GeometricSearchDet.h"
0015 
0016 #include "TrackingTools/DetLayers/interface/NavigableLayer.h"
0017 #include "TrackingTools/DetLayers/interface/NavigationDirection.h"
0018 
0019 #include <vector>
0020 
0021 class DetLayer : public GeometricSearchDet {
0022 public:
0023   typedef GeomDetEnumerators::SubDetector SubDetector;
0024   typedef GeomDetEnumerators::Location Location;
0025 
0026   DetLayer(bool doHaveGroup, bool ibar) : GeometricSearchDet(doHaveGroup), theSeqNum(-1), iAmBarrel(ibar) {}
0027 
0028   ~DetLayer() override;
0029 
0030   // a detLayer can be either barrel or forward
0031   bool isBarrel() const { return iAmBarrel; }
0032   bool isForward() const { return !isBarrel(); }
0033 
0034   // sequential number to be used in "maps"
0035   int seqNum() const { return theSeqNum; }
0036   void setSeqNum(int sq) { theSeqNum = sq; }
0037 
0038   // Extension of the interface
0039 
0040   /// The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
0041   virtual SubDetector subDetector() const = 0;
0042 
0043   /// Which part of the detector (barrel, endcap)
0044   virtual Location location() const = 0;
0045 
0046 private:
0047   int theSeqNum;
0048   bool iAmBarrel;
0049 };
0050 
0051 #endif