#include <L1MuGMTMipIsoAU.h>
Public Member Functions | |
const L1MuGlobalMuonTrigger & | GMT () const |
int | id () const |
return identifier (0: barrel, 1: endcap) | |
bool | ISO (int idx) const |
return select matrix (idx 0..3: DT/CSC, idx 4..7: RPC) | |
L1MuGMTMipIsoAU (const L1MuGlobalMuonTrigger &gmt, int id) | |
constructor | |
bool | MIP (int idx) const |
return select matrix (idx 0..3: DT/CSC, idx 4..7: RPC) | |
const L1MuRegionalCand * | muon (int idx) const |
return input muon (idx: 0..3: DT/CSC, 4..7: RPC) | |
void | print () const |
print results after MIP & ISO bit assignment | |
void | reset () |
clear MIP & ISO bit assignment unit | |
void | run () |
run GMT MIP & ISO bit assignment unit | |
virtual | ~L1MuGMTMipIsoAU () |
destructor | |
Private Member Functions | |
void | assignISO () |
void | assignMIP () |
void | load () |
Private Attributes | |
const L1MuGlobalMuonTrigger & | m_gmt |
int | m_id |
std::vector< bool > | m_ISO |
std::vector < L1MuGMTEtaProjectionUnit * > | m_ISO_EPUs |
std::vector < L1MuGMTPhiProjectionUnit * > | m_ISO_PPUs |
std::vector< bool > | m_MIP |
std::vector < L1MuGMTEtaProjectionUnit * > | m_MIP_EPUs |
std::vector < L1MuGMTPhiProjectionUnit * > | m_MIP_PPUs |
std::vector< const L1MuRegionalCand * > | m_muons |
L1 Global Muon Trigger MIP and ISO bit Assignment Unit.
It projects muons form the muon system to the calorimeter or vertex in order to assign a MIP (minimum ionizing particle) and an ISO (isolation) bit to each muon candidate.
there is 1 barrel MIP & ISO bit Assignment unit and 1 endcap MIP & ISO bit Assignment unit
Definition at line 54 of file L1MuGMTMipIsoAU.h.
L1MuGMTMipIsoAU::L1MuGMTMipIsoAU | ( | const L1MuGlobalMuonTrigger & | gmt, |
int | id | ||
) |
constructor
Definition at line 55 of file L1MuGMTMipIsoAU.cc.
References i, m_id, m_ISO, m_ISO_EPUs, m_ISO_PPUs, m_MIP, m_MIP_EPUs, m_MIP_PPUs, and m_muons.
: m_gmt(gmt), m_id(id), m_muons(8), m_MIP(8), m_ISO(8), m_MIP_PPUs(8), m_MIP_EPUs(8), m_ISO_PPUs(8), m_ISO_EPUs(8) { m_muons.reserve(8); m_MIP.reserve(8); m_ISO.reserve(8); // reserve MIP and ISO phi and eta projection units m_MIP_PPUs.reserve(8); m_MIP_EPUs.reserve(8); m_ISO_PPUs.reserve(8); m_ISO_EPUs.reserve(8); for (int i=0; i<8; i++) { m_MIP_PPUs[i]=new L1MuGMTPhiProjectionUnit (*this, 16 * m_id + i) ; m_MIP_EPUs[i]=new L1MuGMTEtaProjectionUnit (*this, 16 * m_id + i) ; m_ISO_PPUs[i]=new L1MuGMTPhiProjectionUnit (*this, 16 * m_id + 8 + i) ; m_ISO_EPUs[i]=new L1MuGMTEtaProjectionUnit (*this, 16 * m_id + 8 + i) ; } }
L1MuGMTMipIsoAU::~L1MuGMTMipIsoAU | ( | ) | [virtual] |
destructor
Definition at line 82 of file L1MuGMTMipIsoAU.cc.
References m_ISO_EPUs, m_ISO_PPUs, m_MIP_EPUs, m_MIP_PPUs, and reset().
{ reset(); // delete MIP phi projection units std::vector<L1MuGMTPhiProjectionUnit*>::iterator p_iter; for ( p_iter = m_MIP_PPUs.begin(); p_iter != m_MIP_PPUs.end(); p_iter++ ) delete *p_iter; m_MIP_PPUs.clear(); // delete ISO phi projection units for ( p_iter = m_ISO_PPUs.begin(); p_iter != m_ISO_PPUs.end(); p_iter++ ) delete *p_iter; m_ISO_PPUs.clear(); // delete MIP eta projection units std::vector<L1MuGMTEtaProjectionUnit*>::iterator e_iter; for ( e_iter = m_MIP_EPUs.begin(); e_iter != m_MIP_EPUs.end(); e_iter++ ) delete *e_iter; m_MIP_EPUs.clear(); // delete ISO eta projection units for ( e_iter = m_ISO_EPUs.begin(); e_iter != m_ISO_EPUs.end(); e_iter++ ) delete *e_iter; m_ISO_EPUs.clear(); }
void L1MuGMTMipIsoAU::assignISO | ( | ) | [private] |
Definition at line 254 of file L1MuGMTMipIsoAU.cc.
References any, L1MuGlobalMuonTrigger::Data(), L1MuGMTConfig::Debug(), L1MuGlobalMuonTrigger::DebugBlockForFill(), relativeConstraints::empty, L1MuGMTPSB::isolBits(), m_gmt, m_ISO, m_ISO_EPUs, m_ISO_PPUs, m_muons, and L1MuGMTDebugBlock::SetIsMIPISO().
Referenced by run().
{ // get isolation bits from PSB const L1MuGMTMatrix<bool>& isol = m_gmt.Data()->isolBits(); for ( int imuon = 0; imuon < 8; imuon++ ) if (m_muons[imuon] && !m_muons[imuon]->empty() ) { bool tmpISO=true; bool any=false; for ( int iphi = 0; iphi < 18; iphi++ ) for ( int ieta = 0; ieta < 14; ieta++ ) { if (m_ISO_PPUs[imuon]->isSelected(iphi) && m_ISO_EPUs[imuon]->isSelected(ieta) ) { tmpISO &= isol(ieta, iphi); any = true; if ( L1MuGMTConfig::Debug(3) ) edm::LogVerbatim("GMT_MipIso_info") << "L1MuGMTMipIsoAU::assignISO() checking calo region phi=" << iphi << ", eta=" << ieta; } } if (any) m_ISO[imuon] = tmpISO; else edm::LogWarning("MipISOProblem") << "L1MuGMTMipIsoAU::assignISO(): no calo region was checked!!"; m_gmt.DebugBlockForFill()->SetIsMIPISO( m_ISO_PPUs[imuon]->id(), m_ISO[imuon]?1:0) ; } }
void L1MuGMTMipIsoAU::assignMIP | ( | ) | [private] |
Definition at line 227 of file L1MuGMTMipIsoAU.cc.
References L1MuGlobalMuonTrigger::Data(), L1MuGMTConfig::Debug(), L1MuGlobalMuonTrigger::DebugBlockForFill(), relativeConstraints::empty, m_gmt, m_MIP, m_MIP_EPUs, m_MIP_PPUs, m_muons, L1MuGMTPSB::mipBits(), and L1MuGMTDebugBlock::SetIsMIPISO().
Referenced by run().
{ // get MIP bits from PSB const L1MuGMTMatrix<bool>& mip = m_gmt.Data()->mipBits(); for ( int imuon = 0; imuon < 8; imuon++ ) if (m_muons[imuon] && !m_muons[imuon]->empty() ) { bool tmpMIP=false; for ( int iphi = 0; iphi < 18; iphi++ ) for ( int ieta = 0; ieta < 14; ieta++ ) { if (m_MIP_PPUs[imuon]->isSelected(iphi) && m_MIP_EPUs[imuon]->isSelected(ieta) ) { tmpMIP |= mip(ieta, iphi); if ( L1MuGMTConfig::Debug(3) ) edm::LogVerbatim("GMT_MipIso_info") << "L1MuGMTMipIsoAU::assignMIP() checking calo region phi=" << iphi << ", eta=" << ieta; } } m_MIP[imuon] = tmpMIP; m_gmt.DebugBlockForFill()->SetIsMIPISO( m_MIP_PPUs[imuon]->id(), tmpMIP?1:0) ; } }
const L1MuGlobalMuonTrigger& L1MuGMTMipIsoAU::GMT | ( | ) | const [inline] |
Definition at line 85 of file L1MuGMTMipIsoAU.h.
References m_gmt.
Referenced by L1MuGMTEtaProjectionUnit::run(), and L1MuGMTPhiProjectionUnit::run().
{ return m_gmt; };
int L1MuGMTMipIsoAU::id | ( | void | ) | const [inline] |
return identifier (0: barrel, 1: endcap)
Definition at line 74 of file L1MuGMTMipIsoAU.h.
References m_id.
{ return m_id; }
bool L1MuGMTMipIsoAU::ISO | ( | int | idx | ) | const [inline] |
return select matrix (idx 0..3: DT/CSC, idx 4..7: RPC)
Definition at line 83 of file L1MuGMTMipIsoAU.h.
References m_ISO.
Referenced by L1MuGMTMerger::createDTCSCCand(), L1MuGMTMerger::createMergedCand(), and L1MuGMTMerger::createRPCCand().
{ return m_ISO[idx]; }
void L1MuGMTMipIsoAU::load | ( | ) | [private] |
Definition at line 200 of file L1MuGMTMipIsoAU.cc.
References L1MuGMTPSB::CSCMuon(), L1MuGlobalMuonTrigger::Data(), L1MuGMTPSB::DTBXMuon(), m_gmt, m_id, m_muons, MAXCSC, MAXDTBX, L1MuGMTConfig::MAXRPCbarrel, L1MuGMTConfig::MAXRPCendcap, and L1MuGMTPSB::RPCMuon().
Referenced by run().
{ // barrel MIP & ISO assignment unit gets DTBX and barrel RPC muons if ( m_id == 0 ) { for ( unsigned idt = 0; idt < L1MuGMTConfig::MAXDTBX; idt++ ) { m_muons[idt] = m_gmt.Data()->DTBXMuon(idt); } for ( unsigned irpc = 0; irpc < L1MuGMTConfig::MAXRPCbarrel; irpc++ ) { m_muons[irpc+4] = m_gmt.Data()->RPCMuon(irpc); } } // endcap MIP & ISO assignment unit gets CSC and endcap RPC muons if ( m_id == 1 ) { for ( unsigned icsc = 0; icsc < L1MuGMTConfig::MAXCSC; icsc++ ) { m_muons[icsc] = m_gmt.Data()->CSCMuon(icsc); } for ( unsigned irpc = 0; irpc < L1MuGMTConfig::MAXRPCendcap; irpc++ ) { m_muons[irpc+4] = m_gmt.Data()->RPCMuon(irpc+4); } } }
bool L1MuGMTMipIsoAU::MIP | ( | int | idx | ) | const [inline] |
return select matrix (idx 0..3: DT/CSC, idx 4..7: RPC)
Definition at line 80 of file L1MuGMTMipIsoAU.h.
References m_MIP.
Referenced by L1MuGMTMerger::createDTCSCCand(), L1MuGMTMerger::createMergedCand(), and L1MuGMTMerger::createRPCCand().
{ return m_MIP[idx]; }
const L1MuRegionalCand* L1MuGMTMipIsoAU::muon | ( | int | idx | ) | const [inline] |
return input muon (idx: 0..3: DT/CSC, 4..7: RPC)
Definition at line 77 of file L1MuGMTMipIsoAU.h.
References m_muons.
Referenced by L1MuGMTPhiProjectionUnit::load(), and L1MuGMTEtaProjectionUnit::load().
{ return m_muons[idx]; }
void L1MuGMTMipIsoAU::print | ( | void | ) | const |
print results after MIP & ISO bit assignment
Definition at line 178 of file L1MuGMTMipIsoAU.cc.
Referenced by L1MuGlobalMuonTrigger::produce().
{ std::stringstream outmip; outmip << "Assigned MIP bits : "; std::vector<bool>::const_iterator iter; for ( iter = m_MIP.begin(); iter != m_MIP.end(); iter++ ) { outmip << (*iter) << " "; } edm::LogVerbatim("GMT_MipIso_info") << outmip.str(); std::stringstream outiso; outiso << "Assigned ISO bits : "; for ( iter = m_ISO.begin(); iter != m_ISO.end(); iter++ ) { outiso << (*iter) << " "; } edm::LogVerbatim("GMT_MipIso_info") << outiso.str(); }
void L1MuGMTMipIsoAU::reset | ( | void | ) |
clear MIP & ISO bit assignment unit
Definition at line 146 of file L1MuGMTMipIsoAU.cc.
References i, m_ISO, m_ISO_EPUs, m_ISO_PPUs, m_MIP, m_MIP_EPUs, m_MIP_PPUs, and m_muons.
Referenced by L1MuGlobalMuonTrigger::reset(), and ~L1MuGMTMipIsoAU().
{ for ( int i = 0; i < 8; i++ ) { m_muons[i] = 0; m_MIP[i] = false; m_ISO[i] = false; } // reset MIP phi projection units std::vector<L1MuGMTPhiProjectionUnit*>::iterator p_iter; for ( p_iter = m_MIP_PPUs.begin(); p_iter != m_MIP_PPUs.end(); p_iter++ ) { (*p_iter)->reset(); } // reset ISO phi projection units for ( p_iter = m_ISO_PPUs.begin(); p_iter != m_ISO_PPUs.end(); p_iter++ ) (*p_iter)->reset(); // reset MIP eta projection units std::vector<L1MuGMTEtaProjectionUnit*>::iterator e_iter; for ( e_iter = m_MIP_EPUs.begin(); e_iter != m_MIP_EPUs.end(); e_iter++ ) (*e_iter)->reset(); // reset ISO eta projection units for ( e_iter = m_ISO_EPUs.begin(); e_iter != m_ISO_EPUs.end(); e_iter++ ) (*e_iter)->reset(); }
void L1MuGMTMipIsoAU::run | ( | void | ) |
run GMT MIP & ISO bit assignment unit
Definition at line 116 of file L1MuGMTMipIsoAU.cc.
References assignISO(), assignMIP(), load(), m_ISO_EPUs, m_ISO_PPUs, m_MIP_EPUs, and m_MIP_PPUs.
Referenced by L1MuGlobalMuonTrigger::produce().
{ load(); // run MIP phi projection units std::vector<L1MuGMTPhiProjectionUnit*>::iterator p_iter; for ( p_iter = m_MIP_PPUs.begin(); p_iter != m_MIP_PPUs.end(); p_iter++ ) (*p_iter)->run(); // run ISO phi projection units for ( p_iter = m_ISO_PPUs.begin(); p_iter != m_ISO_PPUs.end(); p_iter++ ) (*p_iter)->run(); // run MIP eta projection units std::vector<L1MuGMTEtaProjectionUnit*>::iterator e_iter; for ( e_iter = m_MIP_EPUs.begin(); e_iter != m_MIP_EPUs.end(); e_iter++ ) (*e_iter)->run(); // run ISO eta projection units for ( e_iter = m_ISO_EPUs.begin(); e_iter != m_ISO_EPUs.end(); e_iter++ ) (*e_iter)->run(); assignMIP(); assignISO(); }
const L1MuGlobalMuonTrigger& L1MuGMTMipIsoAU::m_gmt [private] |
Definition at line 93 of file L1MuGMTMipIsoAU.h.
Referenced by assignISO(), assignMIP(), GMT(), and load().
int L1MuGMTMipIsoAU::m_id [private] |
Definition at line 94 of file L1MuGMTMipIsoAU.h.
Referenced by id(), L1MuGMTMipIsoAU(), and load().
std::vector<bool> L1MuGMTMipIsoAU::m_ISO [private] |
Definition at line 99 of file L1MuGMTMipIsoAU.h.
Referenced by assignISO(), ISO(), L1MuGMTMipIsoAU(), print(), and reset().
std::vector<L1MuGMTEtaProjectionUnit*> L1MuGMTMipIsoAU::m_ISO_EPUs [private] |
Definition at line 105 of file L1MuGMTMipIsoAU.h.
Referenced by assignISO(), L1MuGMTMipIsoAU(), reset(), run(), and ~L1MuGMTMipIsoAU().
std::vector<L1MuGMTPhiProjectionUnit*> L1MuGMTMipIsoAU::m_ISO_PPUs [private] |
Definition at line 104 of file L1MuGMTMipIsoAU.h.
Referenced by assignISO(), L1MuGMTMipIsoAU(), reset(), run(), and ~L1MuGMTMipIsoAU().
std::vector<bool> L1MuGMTMipIsoAU::m_MIP [private] |
Definition at line 98 of file L1MuGMTMipIsoAU.h.
Referenced by assignMIP(), L1MuGMTMipIsoAU(), MIP(), print(), and reset().
std::vector<L1MuGMTEtaProjectionUnit*> L1MuGMTMipIsoAU::m_MIP_EPUs [private] |
Definition at line 102 of file L1MuGMTMipIsoAU.h.
Referenced by assignMIP(), L1MuGMTMipIsoAU(), reset(), run(), and ~L1MuGMTMipIsoAU().
std::vector<L1MuGMTPhiProjectionUnit*> L1MuGMTMipIsoAU::m_MIP_PPUs [private] |
Definition at line 101 of file L1MuGMTMipIsoAU.h.
Referenced by assignMIP(), L1MuGMTMipIsoAU(), reset(), run(), and ~L1MuGMTMipIsoAU().
std::vector<const L1MuRegionalCand*> L1MuGMTMipIsoAU::m_muons [private] |
Definition at line 96 of file L1MuGMTMipIsoAU.h.
Referenced by assignISO(), assignMIP(), L1MuGMTMipIsoAU(), load(), muon(), and reset().