Go to the documentation of this file.
65 matchQuality(MaxMatch, MaxMatch, 0),
66 pairMatrix(MaxMatch, MaxMatch,
false) {
211 disableMatrix(
i,
j) = disableMatrix(
i,
j) || maxMatrix(
i1,
j);
213 for (
unsigned j1 = 0; j1 <
MaxMatch; j1++)
215 disableMatrix(
i,
j) = disableMatrix(
i,
j) || maxMatrix(
i, j1);
224 for (
unsigned i1 = 0;
i1 <
i;
i1++) {
232 for (
unsigned j1 = 0; j1 <
j; j1++) {
236 for (
unsigned j1 =
j + 1; j1 <
MaxMatch; j1++) {
254 if (empty1 || empty2)
260 unsigned phi1 =
first[
i]->phi_packed();
261 unsigned phi2 =
second[
j]->phi_packed();
263 int delta_phi = ((phi1 - phi2 + 3 * 72) % 144) - 72;
265 if (delta_phi < -3 || delta_phi > 3)
277 unsigned delta_eta_packed = 0;
286 if (disable1 || disable2)
293 int idx1 =
first[
i]->type_idx();
294 int idx1_dcrr = (idx1 == 1) ? 2 : (idx1 == 2) ? 1 : idx1;
296 int idx2 =
second[
j]->type_idx();
297 int idx2_dcrr = (idx2 == 1) ? 2 : (idx2 == 2) ? 1 : idx2;
305 if (disable1 || disable2)
unsigned SpecificLookup_disable_hot(int idx, unsigned eta, unsigned phi) const
specific lookup function for disable_hot
static const unsigned int MAXCSC
static const unsigned int MAXRPCendcap
unsigned SpecificLookup_eta_ovl(int idx, unsigned eta6) const
specific lookup function for eta_ovl
L1MuGMTMatrix< bool > pairMatrix
static const unsigned int MaxMatch
L1MuGMTDebugBlock * DebugBlockForFill() const
for debug: return the debug block (in order to fill it)
static const unsigned int MAXRPCbarrel
L1MuGMTMatcher(const L1MuGlobalMuonTrigger &gmt, int id)
constructor
virtual ~L1MuGMTMatcher()
destructor
U second(std::pair< T, U > const &p)
L1MuGMTMatrix< int > matchQuality
std::vector< const L1MuRegionalCand * > second
static const unsigned int MAXDTBX
static L1MuGMTLFDisableHotLUT * getLFDisableHotLUT()
const L1MuGlobalMuonTrigger & m_gmt
static L1MuGMTLFCOUDeltaEtaLUT * getLFCOUDeltaEtaLUT()
void SetPairMatrix(int idx, L1MuGMTMatrix< bool > pm)
Set pair matrices.
unsigned SpecificLookup_delta_eta(int idx, unsigned eta_dtcsc, unsigned eta_rpc) const
specific lookup function for delta_eta
unsigned SpecificLookup_mq(int idx, unsigned delta_eta, unsigned delta_phi) const
specific lookup function for mq
std::vector< const L1MuRegionalCand * > first
const L1MuGMTPSB * Data() const
return pointer to PSB
static L1MuGMTLFMatchQualLUT * getLFMatchQualLUT()
static bool isDisabled(const L1MuRegionalCand *)
Diable bit.
void SetMQMatrix(int idx, L1MuGMTMatrix< int > mqm)
Set match quality matrices.
void print()
print matching results
unsigned SpecificLookup_delta_eta(int idx, unsigned eta1, unsigned eta2) const
specific lookup function for delta_eta
void reset()
clear Matcher
const L1MuRegionalCand * RPCMuon(int index) const
get RPC muon
Log< level::Info, true > LogVerbatim
static L1MuGMTLFOvlEtaConvLUT * getLFOvlEtaConvLUT()
bool isMax(int r, int c) const
is the element (r,c) the max. entry in its row and column?
const L1MuRegionalCand * CSCMuon(int index) const
get CSC muon
void print() const
print matrix
void reset(T v)
reset all elements
static L1MuGMTLFDeltaEtaLUT * getLFDeltaEtaLUT()
int lookup_mq(int i, int j)
const L1MuRegionalCand * DTBXMuon(int index) const
get DTBX muon
unsigned packedFromIdx(int idx) const override
get the packed notation of a value, check range