#include <L1MuGMTMerger.h>
Public Member Functions | |
const std::vector < L1MuGMTExtendedCand * > & | Cands () const |
return std::vector with all muon candidates More... | |
int | id () const |
return identifier More... | |
L1MuGMTMerger (const L1MuGlobalMuonTrigger &gmt, int id) | |
constructor More... | |
void | print () const |
print results after selection More... | |
void | reset () |
clear Merger More... | |
void | run () |
run GMT Merger More... | |
virtual | ~L1MuGMTMerger () |
destructor More... | |
Private Member Functions | |
unsigned | convertedEta (const L1MuRegionalCand *mu) const |
void | createDTCSCCand (int idx_dtcsc) |
void | createMergedCand (int idx_dtcsc, int idx_rpc) |
void | createRPCCand (int idx_rpc) |
int | doANDMerge (unsigned MMconfig) const |
int | doSpecialMerge (unsigned MMconfig) const |
void | load () |
void | merge () |
int | merge_rank (const L1MuRegionalCand *) const |
Merge Rank Table. More... | |
unsigned | projectedPhi (const L1MuRegionalCand *mu) const |
int | selectDTCSC (unsigned MMconfig, int by_rank, int by_pt, int by_combi) const |
unsigned | sysign (const L1MuRegionalCand *mu) const |
Private Attributes | |
std::vector< const L1MuRegionalCand * > | dtcsc_mu |
const L1MuGlobalMuonTrigger & | m_gmt |
int | m_id |
std::vector < L1MuGMTExtendedCand * > | m_MuonCands |
std::vector< const L1MuRegionalCand * > | rpc_mu |
std::vector< int > | singleRank |
L1 Global Muon Trigger Merger.
There are two GMT Mergers. One for the barrel (id=0) and one for the forward (id=1) part.
The merger receives four DT(CSC) muons and four RPC muons. Each DT(CSC) muon is either merged with an RPC one or passed through.
To simplify the C++ model, the merger conatians also the conversion units and sort rank units as well as the MergeMethodSelection unit which are separate units in the hardware.
Definition at line 63 of file L1MuGMTMerger.h.
L1MuGMTMerger::L1MuGMTMerger | ( | const L1MuGlobalMuonTrigger & | gmt, |
int | id | ||
) |
constructor
Definition at line 73 of file L1MuGMTMerger.cc.
References dtcsc_mu, and rpc_mu.
|
virtual |
|
inline |
return std::vector with all muon candidates
Definition at line 86 of file L1MuGMTMerger.h.
References m_MuonCands.
Referenced by L1MuGMTSorter::run().
|
private |
Definition at line 321 of file L1MuGMTMerger.cc.
References L1MuRegionalCand::eta_packed(), L1MuGMTConfig::getLFEtaConvLUT(), L1MuGMTLFEtaConvLUT::SpecificLookup_eta_gmt(), and L1MuRegionalCand::type_idx().
Referenced by createDTCSCCand(), createMergedCand(), and createRPCCand().
|
private |
Definition at line 242 of file L1MuGMTMerger.cc.
References convertedEta(), dtcsc_mu, L1MuGMTSortRankUnit::getVeryLowQualityLevel(), L1MuGMTMipIsoAU::ISO(), m_gmt, m_id, m_MuonCands, L1MuGMTMipIsoAU::MIP(), L1MuGlobalMuonTrigger::MipIsoAU(), projectedPhi(), L1MuGMTCand::setBx(), L1MuGMTCand::setChargePacked(), L1MuGMTExtendedCand::setDTCSCIndex(), L1MuGMTCand::setEtaPacked(), L1MuGMTExtendedCand::setFwdBit(), L1MuGMTCand::setIsolation(), L1MuGMTCand::setMIP(), L1MuGMTCand::setPhiPacked(), L1MuGMTCand::setPtPacked(), L1MuGMTCand::setQuality(), L1MuGMTExtendedCand::setRank(), L1MuGMTExtendedCand::setRPCBit(), L1MuGMTExtendedCand::setRPCIndex(), L1MuGMTSortRankUnit::sort_rank(), and sysign().
Referenced by merge().
|
private |
Definition at line 359 of file L1MuGMTMerger.cc.
References abs, convertedEta(), doANDMerge(), doSpecialMerge(), dtcsc_mu, eta(), L1MuGMTConfig::getLFPtMixLUT(), L1MuGMTConfig::getRegMMConfigCharge(), L1MuGMTConfig::getRegMMConfigEta(), L1MuGMTConfig::getRegMMConfigISO(), L1MuGMTConfig::getRegMMConfigMIP(), L1MuGMTConfig::getRegMMConfigPhi(), L1MuGMTConfig::getRegMMConfigPt(), L1MuGMTConfig::getRegMMConfigSRK(), L1MuGMTConfig::getRegSortRankOffset(), L1MuGMTReg::getValue(), L1MuGMTMipIsoAU::ISO(), m_gmt, m_id, m_MuonCands, merge_rank(), L1MuGMTMipIsoAU::MIP(), L1MuGlobalMuonTrigger::MipIsoAU(), phi, projectedPhi(), ExpressReco_HICollisions_FallBack::pt, rpc_mu, selectDTCSC(), L1MuGMTCand::setBx(), L1MuGMTCand::setChargePacked(), L1MuGMTExtendedCand::setDTCSCIndex(), L1MuGMTCand::setEtaPacked(), L1MuGMTExtendedCand::setFwdBit(), L1MuGMTCand::setIsolation(), L1MuGMTCand::setMIP(), L1MuGMTCand::setPhiPacked(), L1MuGMTCand::setPtPacked(), L1MuGMTCand::setQuality(), L1MuGMTExtendedCand::setRank(), L1MuGMTExtendedCand::setRPCBit(), L1MuGMTExtendedCand::setRPCIndex(), L1MuGMTSortRankUnit::sort_rank(), L1MuGMTLFPtMixLUT::SpecificLookup_pt_mixed(), and sysign().
Referenced by merge().
|
private |
Definition at line 275 of file L1MuGMTMerger.cc.
References convertedEta(), L1MuGMTSortRankUnit::getVeryLowQualityLevel(), L1MuGMTMipIsoAU::ISO(), m_gmt, m_id, m_MuonCands, L1MuGMTMipIsoAU::MIP(), L1MuGlobalMuonTrigger::MipIsoAU(), projectedPhi(), rpc_mu, L1MuGMTCand::setBx(), L1MuGMTCand::setChargePacked(), L1MuGMTExtendedCand::setDTCSCIndex(), L1MuGMTCand::setEtaPacked(), L1MuGMTExtendedCand::setFwdBit(), L1MuGMTCand::setIsolation(), L1MuGMTCand::setMIP(), L1MuGMTCand::setPhiPacked(), L1MuGMTCand::setPtPacked(), L1MuGMTCand::setQuality(), L1MuGMTExtendedCand::setRank(), L1MuGMTExtendedCand::setRPCBit(), L1MuGMTExtendedCand::setRPCIndex(), L1MuGMTSortRankUnit::sort_rank(), and sysign().
Referenced by merge().
|
private |
Definition at line 317 of file L1MuGMTMerger.cc.
Referenced by createMergedCand().
|
private |
Definition at line 313 of file L1MuGMTMerger.cc.
Referenced by createMergedCand().
|
inline |
|
private |
Definition at line 142 of file L1MuGMTMerger.cc.
References L1MuGMTPSB::CSCMuon(), L1MuGlobalMuonTrigger::Data(), L1MuGMTPSB::DTBXMuon(), dtcsc_mu, m_gmt, m_id, L1MuGMTConfig::MAXCSC, L1MuGMTConfig::MAXDTBX, L1MuGMTConfig::MAXRPCbarrel, L1MuGMTConfig::MAXRPCendcap, rpc_mu, and L1MuGMTPSB::RPCMuon().
Referenced by run().
|
private |
Definition at line 167 of file L1MuGMTMerger.cc.
References L1MuGMTCancelOutUnit::cancelMyChipMuon(), L1MuGMTCancelOutUnit::cancelOtherChipMuon(), L1MuGlobalMuonTrigger::CancelOutUnit(), L1MuGMTMatrix< T >::colAny(), createDTCSCCand(), createMergedCand(), createRPCCand(), dtcsc_mu, L1MuGMTCand::etaIndex(), L1MuScale::getCenter(), L1MuTriggerScales::getGMTEtaScale(), L1MuScale::getLowEdge(), L1MuTriggerScales::getPhiScale(), L1MuTriggerPtScale::getPtScale(), L1MuGMTConfig::getTriggerPtScale(), L1MuGMTConfig::getTriggerScales(), i, L1MuGMTSortRankUnit::isDisabled(), j, m_gmt, m_id, m_MuonCands, L1MuGlobalMuonTrigger::Matcher(), L1MuGMTMatcher::pairM(), L1MuGMTCand::phiIndex(), L1MuGMTCand::ptIndex(), L1MuGMTMatrix< T >::rowAny(), rpc_mu, L1MuGMTCand::setEtaValue(), L1MuGMTCand::setPhiValue(), and L1MuGMTCand::setPtValue().
Referenced by run().
|
private |
Merge Rank Table.
Definition at line 530 of file L1MuGMTMerger.cc.
References L1MuRegionalCand::empty(), eta(), L1MuRegionalCand::eta_packed(), L1MuGMTConfig::getLFMergeRankCombineLUT(), L1MuGMTConfig::getLFMergeRankEtaPhiLUT(), L1MuGMTConfig::getLFMergeRankEtaQLUT(), L1MuGMTConfig::getLFMergeRankPtQLUT(), phi, L1MuRegionalCand::phi_packed(), ExpressReco_HICollisions_FallBack::pt, L1MuRegionalCand::pt_packed(), lumiQueryAPI::q, L1MuRegionalCand::quality_packed(), L1MuGMTLFMergeRankEtaQLUT::SpecificLookup_flag(), L1MuGMTLFMergeRankCombineLUT::SpecificLookup_merge_rank(), L1MuGMTLFMergeRankEtaPhiLUT::SpecificLookup_rank_etaphi(), L1MuGMTLFMergeRankEtaQLUT::SpecificLookup_rank_etaq(), L1MuGMTLFMergeRankPtQLUT::SpecificLookup_rank_ptq(), and L1MuRegionalCand::type_idx().
Referenced by createMergedCand().
void L1MuGMTMerger::print | ( | void | ) | const |
print results after selection
Definition at line 125 of file L1MuGMTMerger.cc.
References m_MuonCands.
Referenced by L1MuGlobalMuonTrigger::produce().
|
private |
Definition at line 326 of file L1MuGMTMerger.cc.
References L1MuRegionalCand::charge_packed(), L1MuRegionalCand::eta_packed(), L1MuGMTConfig::getLFPhiProEtaConvLUT(), L1MuGMTConfig::getLFPhiProLUT(), L1MuSignedPacking< Bits >::idxFromPacked(), L1MuRegionalCand::phi_packed(), L1MuRegionalCand::pt_packed(), L1MuGMTLFPhiProLUT::SpecificLookup_dphi(), L1MuGMTLFPhiProEtaConvLUT::SpecificLookup_eta_out(), and L1MuRegionalCand::type_idx().
Referenced by createDTCSCCand(), createMergedCand(), and createRPCCand().
void L1MuGMTMerger::reset | ( | void | ) |
clear Merger
Definition at line 104 of file L1MuGMTMerger.cc.
References dtcsc_mu, i, m_MuonCands, and rpc_mu.
Referenced by L1MuGlobalMuonTrigger::reset(), and ~L1MuGMTMerger().
void L1MuGMTMerger::run | ( | void | ) |
run GMT Merger
Definition at line 95 of file L1MuGMTMerger.cc.
References load(), and merge().
Referenced by L1MuGlobalMuonTrigger::produce().
|
private |
Definition at line 304 of file L1MuGMTMerger.cc.
Referenced by createMergedCand().
|
private |
Definition at line 349 of file L1MuGMTMerger.cc.
References L1MuRegionalCand::charge_packed(), and L1MuRegionalCand::charge_valid_packed().
Referenced by createDTCSCCand(), createMergedCand(), and createRPCCand().
|
private |
Definition at line 113 of file L1MuGMTMerger.h.
Referenced by createDTCSCCand(), createMergedCand(), L1MuGMTMerger(), load(), merge(), and reset().
|
private |
Definition at line 110 of file L1MuGMTMerger.h.
Referenced by createDTCSCCand(), createMergedCand(), createRPCCand(), load(), and merge().
|
private |
Definition at line 111 of file L1MuGMTMerger.h.
Referenced by createDTCSCCand(), createMergedCand(), createRPCCand(), id(), load(), and merge().
|
private |
Definition at line 116 of file L1MuGMTMerger.h.
Referenced by Cands(), createDTCSCCand(), createMergedCand(), createRPCCand(), merge(), print(), and reset().
|
private |
Definition at line 114 of file L1MuGMTMerger.h.
Referenced by createMergedCand(), createRPCCand(), L1MuGMTMerger(), load(), merge(), and reset().
|
private |
Definition at line 118 of file L1MuGMTMerger.h.