File indexing completed on 2024-07-16 02:43:03
0001 #ifndef L1Trigger_Phase2L1GMT_SAMuonCleaner_h
0002 #define L1Trigger_Phase2L1GMT_SAMuonCleaner_h
0003
0004 #include "DataFormats/L1TMuonPhase2/interface/SAMuon.h"
0005
0006 class SAMuonCleaner {
0007 public:
0008 SAMuonCleaner() = default;
0009 ~SAMuonCleaner() = default;
0010
0011 std::vector<l1t::SAMuon> cleanTFMuons(const std::vector<l1t::SAMuon>& muons);
0012
0013 private:
0014 std::vector<l1t::SAMuon> cleanTF(const std::vector<l1t::SAMuon>& tfMuons);
0015 void overlapCleanTrack(l1t::SAMuon& source, const l1t::SAMuon& other, bool eq);
0016 void overlapCleanTrackInter(l1t::SAMuon& source, const l1t::SAMuon& other);
0017 std::vector<l1t::SAMuon> interTFClean(const std::vector<l1t::SAMuon>& bmtf,
0018 const std::vector<l1t::SAMuon>& omtf,
0019 const std::vector<l1t::SAMuon>& emtf);
0020 void swap(std::vector<l1t::SAMuon>&, int i, int j);
0021 void sort(std::vector<l1t::SAMuon>& in);
0022 };
0023
0024 #endif