#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 61 of file L1MuGMTMerger.h.
L1MuGMTMerger::L1MuGMTMerger | ( | const L1MuGlobalMuonTrigger & | gmt, |
int | id | ||
) |
constructor
Definition at line 71 of file L1MuGMTMerger.cc.
References dtcsc_mu, and rpc_mu.
|
virtual |
|
inline |
return std::vector with all muon candidates
Definition at line 84 of file L1MuGMTMerger.h.
References m_MuonCands.
Referenced by L1MuGMTSorter::run().
|
private |
Definition at line 319 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 240 of file L1MuGMTMerger.cc.
References convertedEta(), dtcsc_mu, L1MuGMTSortRankUnit::getVeryLowQualityLevel(), L1MuGMTMipIsoAU::ISO(), m_gmt, m_id, m_MuonCands, L1MuGMTMipIsoAU::MIP(), L1MuGlobalMuonTrigger::MipIsoAU(), projectedPhi(), HLT_25ns10e33_v2_cff::quality, 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 357 of file L1MuGMTMerger.cc.
References funct::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(), EnergyCorrector::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 273 of file L1MuGMTMerger.cc.
References convertedEta(), L1MuGMTSortRankUnit::getVeryLowQualityLevel(), L1MuGMTMipIsoAU::ISO(), m_gmt, m_id, m_MuonCands, L1MuGMTMipIsoAU::MIP(), L1MuGlobalMuonTrigger::MipIsoAU(), projectedPhi(), HLT_25ns10e33_v2_cff::quality, 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 315 of file L1MuGMTMerger.cc.
Referenced by createMergedCand().
|
private |
Definition at line 311 of file L1MuGMTMerger.cc.
Referenced by createMergedCand().
|
inline |
|
private |
Definition at line 140 of file L1MuGMTMerger.cc.
References L1MuGMTPSB::CSCMuon(), L1MuGlobalMuonTrigger::Data(), L1MuGMTPSB::DTBXMuon(), dtcsc_mu, irpc, m_gmt, m_id, L1MuGMTConfig::MAXCSC, L1MuGMTConfig::MAXDTBX, L1MuGMTConfig::MAXRPCbarrel, L1MuGMTConfig::MAXRPCendcap, rpc_mu, and L1MuGMTPSB::RPCMuon().
Referenced by run().
|
private |
Definition at line 165 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(), EnergyCorrector::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 123 of file L1MuGMTMerger.cc.
References m_MuonCands.
Referenced by L1MuGlobalMuonTrigger::produce().
|
private |
Definition at line 324 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 102 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 93 of file L1MuGMTMerger.cc.
References load(), and merge().
Referenced by L1MuGlobalMuonTrigger::produce().
|
private |
Definition at line 302 of file L1MuGMTMerger.cc.
Referenced by createMergedCand().
|
private |
Definition at line 347 of file L1MuGMTMerger.cc.
References L1MuRegionalCand::charge_packed(), and L1MuRegionalCand::charge_valid_packed().
Referenced by createDTCSCCand(), createMergedCand(), and createRPCCand().
|
private |
Definition at line 111 of file L1MuGMTMerger.h.
Referenced by createDTCSCCand(), createMergedCand(), L1MuGMTMerger(), load(), merge(), and reset().
|
private |
Definition at line 108 of file L1MuGMTMerger.h.
Referenced by createDTCSCCand(), createMergedCand(), createRPCCand(), load(), and merge().
|
private |
Definition at line 109 of file L1MuGMTMerger.h.
Referenced by createDTCSCCand(), createMergedCand(), createRPCCand(), id(), load(), and merge().
|
private |
Definition at line 114 of file L1MuGMTMerger.h.
Referenced by Cands(), createDTCSCCand(), createMergedCand(), createRPCCand(), merge(), print(), and reset().
|
private |
Definition at line 112 of file L1MuGMTMerger.h.
Referenced by createMergedCand(), createRPCCand(), L1MuGMTMerger(), load(), merge(), and reset().
|
private |
Definition at line 116 of file L1MuGMTMerger.h.