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