00001 #ifndef DTSegment_DTSegmentCleaner_h 00002 #define DTSegment_DTSegmentCleaner_h 00003 00020 /* Base Class Headers */ 00021 00022 /* Collaborating Class Declarations */ 00023 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00024 #include "RecoLocalMuon/DTSegment/src/DTSegmentCand.h" 00025 00026 /* C++ Headers */ 00027 #include <vector> 00028 00029 /* ====================================================================== */ 00030 00031 /* Class DTSegmentCleaner Interface */ 00032 00033 class DTSegmentCleaner{ 00034 00035 public: 00036 00037 typedef std::pair<DTHitPairForFit*, DTEnums::DTCellSide> AssPoint; 00038 typedef std::set<AssPoint, DTSegmentCand::AssPointLessZ> AssPointCont; 00039 00040 /* Constructor */ 00041 DTSegmentCleaner(const edm::ParameterSet& pset) ; 00042 00043 /* Destructor */ 00044 ~DTSegmentCleaner() ; 00045 00046 /* Operations */ 00048 std::vector<DTSegmentCand*> clean(std::vector<DTSegmentCand*> inputCands) const ; 00049 00050 private: 00052 std::vector<DTSegmentCand*> solveConflict(std::vector<DTSegmentCand*> inputCands) const ; 00053 00055 std::vector<DTSegmentCand*> ghostBuster(std::vector<DTSegmentCand*> inputCands) const ; 00056 00057 int nSharedHitsMax; 00058 int nUnSharedHitsMin; 00062 int segmCleanerMode; 00063 00064 }; 00065 #endif // DTSegment_DTSegmentCleaner_h