00001 #ifndef DetLayers_MuDetRing_H 00002 #define DetLayers_MuDetRing_H 00003 00013 #include "TrackingTools/DetLayers/interface/ForwardDetRingOneZ.h" 00014 #include "Utilities/BinningTools/interface/PeriodicBinFinderInPhi.h" 00015 00016 class GeomDet; 00017 00018 class MuDetRing : public ForwardDetRingOneZ { 00019 public: 00020 00022 MuDetRing(std::vector<const GeomDet*>::const_iterator first, 00023 std::vector<const GeomDet*>::const_iterator last); 00024 00026 MuDetRing(const std::vector<const GeomDet*>& dets); 00027 00028 virtual ~MuDetRing(); 00029 00030 00031 // GeometricSearchDet interface 00032 00033 virtual const std::vector<const GeometricSearchDet*>& components() const; 00034 00035 virtual std::pair<bool, TrajectoryStateOnSurface> 00036 compatible( const TrajectoryStateOnSurface& ts, const Propagator& prop, 00037 const MeasurementEstimator& est) const; 00038 00039 virtual std::vector<DetWithState> 00040 compatibleDets( const TrajectoryStateOnSurface& startingState, 00041 const Propagator& prop, 00042 const MeasurementEstimator& est) const; 00043 00044 virtual std::vector<DetGroup> 00045 groupedCompatibleDets( const TrajectoryStateOnSurface& startingState, 00046 const Propagator& prop, 00047 const MeasurementEstimator& est) const; 00048 00049 00050 // FIXME: should be implemented (overlaps in forward CSC and RPC) 00051 virtual bool hasGroups() const {return false;} 00052 00053 private: 00054 typedef PeriodicBinFinderInPhi<float> BinFinderType; 00055 BinFinderType theBinFinder; 00056 00057 void init(); 00058 00059 }; 00060 #endif 00061