CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/RecoMuon/TrackerSeedGenerator/interface/L1MuonSeedsMerger.h

Go to the documentation of this file.
00001 #ifndef RecoMuon_TrackerSeedGenerator_L1MuonSeedsMerger_H
00002 #define RecoMuon_TrackerSeedGenerator_L1MuonSeedsMerger_H
00003 
00004 #include "RecoTracker/TkSeedingLayers/interface/SeedingHitSet.h"
00005 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00006 #include <vector>
00007 
00008 namespace edm {class ParameterSet;}
00009 
00010 class L1MuonSeedsMerger {
00011 public:
00012   typedef std::pair<const reco::Track*, SeedingHitSet > TrackAndHits; 
00013   typedef std::vector<TrackAndHits> TracksAndHits; 
00014   L1MuonSeedsMerger(const edm::ParameterSet& cfg);
00015   virtual ~L1MuonSeedsMerger(){}
00016   virtual void resolve(TracksAndHits &) const;
00017 private:
00018   enum Action { goAhead, killFirst, killSecond, mergeTwo };
00019   struct Less { bool operator()(const TrackAndHits&, const TrackAndHits&) const; };
00020   const TrackAndHits*  merge(const TrackAndHits*,const TrackAndHits*) const;
00021   Action compare(const TrackAndHits*, const TrackAndHits*) const;
00022 private:
00023   float theDeltaEtaCut;
00024   float theDiffRelPtCut;
00025 };
00026 #endif