00001 #ifndef _TrackCleaner_h_ 00002 #define _TrackCleaner_h_ 00003 00004 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00005 00006 #include "RecoPixelVertexing/PixelTrackFitting/interface/TracksWithHits.h" 00007 #include "RecoPixelVertexing/PixelTrackFitting/interface/PixelTrackCleaner.h" 00008 00009 #include <utility> 00010 #include <vector> 00011 00012 class TrackerGeometry; 00013 00014 class TrackCleaner : public PixelTrackCleaner 00015 { 00016 public: 00017 TrackCleaner (const edm::ParameterSet& ps); 00018 virtual ~TrackCleaner(); 00019 00020 virtual TracksWithRecHits cleanTracks 00021 (const TracksWithRecHits & tracksWithRecHits); 00022 00023 private: 00024 bool areSame(const TrackingRecHit * a, 00025 const TrackingRecHit * b); 00026 bool isCompatible(const DetId & i1, 00027 const DetId & i2); 00028 bool canBeMerged(std::vector<const TrackingRecHit *> recHitsA, 00029 std::vector<const TrackingRecHit *> recHitsB); 00030 00031 std::vector<const TrackingRecHit*> ttrhs(const SeedingHitSet & h) const; 00032 }; 00033 00034 #endif 00035