00001 #ifndef TkDetLayers_GeometricSearchTracker_h 00002 #define TkDetLayers_GeometricSearchTracker_h 00003 00004 #include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" 00005 #include "TrackingTools/DetLayers/interface/ForwardDetLayer.h" 00006 #include "TrackingTools/DetLayers/interface/DetLayerGeometry.h" 00007 00008 00013 class GeometricSearchTracker: public DetLayerGeometry { 00014 public: 00015 00016 GeometricSearchTracker(const std::vector<BarrelDetLayer*>& pxlBar, 00017 const std::vector<BarrelDetLayer*>& tib, 00018 const std::vector<BarrelDetLayer*>& tob, 00019 const std::vector<ForwardDetLayer*>& negPxlFwd, 00020 const std::vector<ForwardDetLayer*>& negTid, 00021 const std::vector<ForwardDetLayer*>& negTec, 00022 const std::vector<ForwardDetLayer*>& posPxlFwd, 00023 const std::vector<ForwardDetLayer*>& posTid, 00024 const std::vector<ForwardDetLayer*>& posTec); 00025 00026 virtual ~GeometricSearchTracker(); 00027 00028 std::vector<DetLayer*> const & allLayers() const {return theAllLayers;} 00029 00030 std::vector<BarrelDetLayer*> const & barrelLayers() const {return theBarrelLayers;} 00031 00032 std::vector<ForwardDetLayer*> const & forwardLayers() const {return theForwardLayers;} 00033 std::vector<ForwardDetLayer*> const & negForwardLayers() const {return theNegForwardLayers;} 00034 std::vector<ForwardDetLayer*> const & posForwardLayers() const {return thePosForwardLayers;} 00035 00036 std::vector<BarrelDetLayer*> const & pixelBarrelLayers() const {return thePixelBarrelLayers;} 00037 std::vector<BarrelDetLayer*> const & tibLayers() const {return theTibLayers;} 00038 std::vector<BarrelDetLayer*> const & tobLayers() const {return theTobLayers;} 00039 00040 std::vector<ForwardDetLayer*> const & negPixelForwardLayers() const {return theNegPixelForwardLayers;} 00041 std::vector<ForwardDetLayer*> const & negTidLayers() const {return theNegTidLayers;} 00042 std::vector<ForwardDetLayer*> const & negTecLayers() const {return theNegTecLayers;} 00043 00044 std::vector<ForwardDetLayer*> const & posPixelForwardLayers() const {return thePosPixelForwardLayers;} 00045 std::vector<ForwardDetLayer*> const & posTidLayers() const {return thePosTidLayers;} 00046 std::vector<ForwardDetLayer*> const & posTecLayers() const {return thePosTecLayers;} 00047 00048 00050 virtual const DetLayer* idToLayer(const DetId& detId) const; 00051 00053 const DetLayer* detLayer( const DetId& id) const {return idToLayer(id);}; 00054 00055 private: 00056 std::vector<DetLayer*> theAllLayers; 00057 std::vector<BarrelDetLayer*> theBarrelLayers; 00058 std::vector<ForwardDetLayer*> theForwardLayers; 00059 std::vector<ForwardDetLayer*> theNegForwardLayers; 00060 std::vector<ForwardDetLayer*> thePosForwardLayers; 00061 00062 std::vector<BarrelDetLayer*> thePixelBarrelLayers; 00063 std::vector<BarrelDetLayer*> theTibLayers; 00064 std::vector<BarrelDetLayer*> theTobLayers; 00065 00066 std::vector<ForwardDetLayer*> theNegPixelForwardLayers; 00067 std::vector<ForwardDetLayer*> theNegTidLayers; 00068 std::vector<ForwardDetLayer*> theNegTecLayers; 00069 std::vector<ForwardDetLayer*> thePosPixelForwardLayers; 00070 std::vector<ForwardDetLayer*> thePosTidLayers; 00071 std::vector<ForwardDetLayer*> thePosTecLayers; 00072 }; 00073 00074 00075 #endif