Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:15

0001 #ifndef RecoMuon_TrackerSeedGenerator_L1MuonSeedsMerger_H
0002 #define RecoMuon_TrackerSeedGenerator_L1MuonSeedsMerger_H
0003 
0004 #include "RecoTracker/TkSeedingLayers/interface/SeedingHitSet.h"
0005 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0006 #include <vector>
0007 
0008 namespace edm {
0009   class ParameterSet;
0010 }
0011 
0012 class L1MuonSeedsMerger {
0013 public:
0014   typedef std::pair<const reco::Track*, SeedingHitSet> TrackAndHits;
0015   typedef std::vector<TrackAndHits> TracksAndHits;
0016   L1MuonSeedsMerger(const edm::ParameterSet& cfg);
0017   virtual ~L1MuonSeedsMerger() {}
0018   virtual void resolve(TracksAndHits&) const;
0019 
0020 private:
0021   enum Action { goAhead, killFirst, killSecond, mergeTwo };
0022   struct Less {
0023     bool operator()(const TrackAndHits&, const TrackAndHits&) const;
0024   };
0025   const TrackAndHits* merge(const TrackAndHits*, const TrackAndHits*) const;
0026   Action compare(const TrackAndHits*, const TrackAndHits*) const;
0027 
0028 private:
0029   float theDeltaEtaCut;
0030   float theDiffRelPtCut;
0031 };
0032 #endif