File indexing completed on 2023-03-17 11:12:28
0001 #ifndef __l1microgmtcanceloutunit_h
0002 #define __l1microgmtcanceloutunit_h
0003
0004 #include "MicroGMTConfiguration.h"
0005 #include "MicroGMTMatchQualLUT.h"
0006
0007 #include "L1Trigger/L1TMuon/interface/L1TMuonGlobalParamsHelper.h"
0008 #include "L1Trigger/L1TMuon/interface/MicroGMTLUTFactories.h"
0009
0010 namespace l1t {
0011 enum cancelmode { tracks, kftracks, coordinate };
0012
0013 class MicroGMTCancelOutUnit {
0014 public:
0015 MicroGMTCancelOutUnit();
0016 virtual ~MicroGMTCancelOutUnit();
0017
0018
0019 void initialise(L1TMuonGlobalParamsHelper*);
0020
0021 void setCancelOutBits(GMTInternalWedges&, tftype, cancelmode);
0022
0023 void setCancelOutBitsOverlapBarrel(GMTInternalWedges&, GMTInternalWedges&, cancelmode);
0024
0025 void setCancelOutBitsOverlapEndcap(GMTInternalWedges&, GMTInternalWedges&, cancelmode);
0026
0027 private:
0028
0029 void getCoordinateCancelBits(std::vector<std::shared_ptr<GMTInternalMuon>>&,
0030 std::vector<std::shared_ptr<GMTInternalMuon>>&);
0031
0032 void getTrackAddrCancelBits(cancelmode,
0033 std::vector<std::shared_ptr<GMTInternalMuon>>&,
0034 std::vector<std::shared_ptr<GMTInternalMuon>>&);
0035
0036
0037 void getTrackAddrCancelBitsOrigBMTF(std::vector<std::shared_ptr<GMTInternalMuon>>&,
0038 std::vector<std::shared_ptr<GMTInternalMuon>>&);
0039
0040
0041 void getTrackAddrCancelBitsKfBMTF(std::vector<std::shared_ptr<GMTInternalMuon>>&,
0042 std::vector<std::shared_ptr<GMTInternalMuon>>&);
0043
0044 std::shared_ptr<MicroGMTMatchQualLUT> m_boPosMatchQualLUT;
0045 std::shared_ptr<MicroGMTMatchQualLUT> m_boNegMatchQualLUT;
0046 std::shared_ptr<MicroGMTMatchQualLUT> m_foPosMatchQualLUT;
0047 std::shared_ptr<MicroGMTMatchQualLUT> m_foNegMatchQualLUT;
0048 std::shared_ptr<MicroGMTMatchQualLUT> m_brlSingleMatchQualLUT;
0049 std::shared_ptr<MicroGMTMatchQualLUT> m_ovlPosSingleMatchQualLUT;
0050 std::shared_ptr<MicroGMTMatchQualLUT> m_ovlNegSingleMatchQualLUT;
0051 std::shared_ptr<MicroGMTMatchQualLUT> m_fwdPosSingleMatchQualLUT;
0052 std::shared_ptr<MicroGMTMatchQualLUT> m_fwdNegSingleMatchQualLUT;
0053 std::map<int, std::shared_ptr<MicroGMTMatchQualLUT>> m_lutDict;
0054 };
0055 }
0056 #endif