00001 #ifndef DetLayers_MuRingForwardLayer_H 00002 #define DetLayers_MuRingForwardLayer_H 00003 00013 #include "TrackingTools/DetLayers/interface/RingedForwardLayer.h" 00014 #include "Utilities/BinningTools/interface/BaseBinFinder.h" 00015 00016 class ForwardDetRing; 00017 class ForwardDetRingBuilder; 00018 class GeomDet; 00019 00020 class MuRingForwardLayer : public RingedForwardLayer { 00021 00022 public: 00023 00025 MuRingForwardLayer(const std::vector<const ForwardDetRing*>& rings); 00026 00027 virtual ~MuRingForwardLayer(); 00028 00029 00030 // GeometricSearchDet interface 00031 00032 virtual const std::vector<const GeomDet*>& basicComponents() const {return theBasicComps;} 00033 00034 virtual const std::vector<const GeometricSearchDet*>& components() const; 00035 00036 virtual std::vector<DetWithState> 00037 compatibleDets( const TrajectoryStateOnSurface& startingState, 00038 const Propagator& prop, 00039 const MeasurementEstimator& est) const; 00040 00041 virtual std::vector<DetGroup> 00042 groupedCompatibleDets( const TrajectoryStateOnSurface& startingState, 00043 const Propagator& prop, 00044 const MeasurementEstimator& est) const; 00045 00046 00047 virtual bool hasGroups() const; 00048 00049 00050 // DetLayer interface 00051 virtual SubDetector subDetector() const; 00052 00053 00054 // Extension of the interface 00055 00057 virtual const std::vector<const ForwardDetRing*>& rings() const {return theRings;} 00058 00059 00060 private: 00061 std::vector<const ForwardDetRing*> theRings; 00062 std::vector <const GeometricSearchDet*> theComponents; // duplication of the above 00063 std::vector<const GeomDet*> theBasicComps; // All chambers 00064 BaseBinFinder<double> * theBinFinder; 00065 bool isOverlapping; 00066 00067 }; 00068 #endif 00069