File indexing completed on 2024-07-16 02:43:03
0001 #ifndef L1Trigger_Phase2L1GMT_TPS_h
0002 #define L1Trigger_Phase2L1GMT_TPS_h
0003 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0004 #include "DataFormats/L1TMuonPhase2/interface/TrackerMuon.h"
0005 #include "L1Trigger/Phase2L1GMT/interface/TrackConverter.h"
0006 #include "L1Trigger/Phase2L1GMT/interface/TPSAlgorithm.h"
0007 #include "L1Trigger/Phase2L1GMT/interface/Isolation.h"
0008
0009 namespace Phase2L1GMT {
0010
0011 class TPS {
0012 public:
0013 TPS(const edm::ParameterSet& iConfig);
0014 ~TPS() = default;
0015 std::vector<l1t::TrackerMuon> processEvent(const std::vector<edm::Ptr<l1t::TrackerMuon::L1TTTrackType> >&,
0016 const l1t::MuonStubRefVector&);
0017
0018 private:
0019 int verbose_;
0020 std::unique_ptr<TrackConverter> tt_track_converter_;
0021 std::unique_ptr<TPSAlgorithm> tps_;
0022 std::unique_ptr<Isolation> isolation_;
0023 std::vector<edm::Ptr<l1t::TrackerMuon::L1TTTrackType> > associateTracksWithNonant(
0024 const std::vector<edm::Ptr<l1t::TrackerMuon::L1TTTrackType> >& tracks, uint processor);
0025 l1t::SAMuonRefVector associateMuonsWithNonant(const l1t::SAMuonRefVector&, uint);
0026 l1t::MuonStubRefVector associateStubsWithNonant(const l1t::MuonStubRefVector&, uint);
0027 };
0028 }
0029
0030 #endif