10 m_TriggerConfig = triggerConfig;
14 for (
unsigned int iTB = 0; iTB < tbMuonsVec2.size()-1; iTB++) {
15 for(
unsigned int iMu = 0; iMu < tbMuonsVec2[iTB].size(); iMu++) {
16 if(tbMuonsVec2[iTB][iMu].getPtCode() == 0)
20 if(tbMuonsVec2[iTB][iMu].getEtaAddr() == (m_TriggerConfig->getTowsCntOnTB(iTB)-1)) {
21 for(
unsigned int iMuN = 0; iMuN < tbMuonsVec2[iTB + 1].size(); iMuN++) {
22 if(tbMuonsVec2[iTB + 1][iMuN].getPtCode() == 0)
26 if(tbMuonsVec2[iTB+1][iMuN].getEtaAddr() == 0) {
27 if(
abs(tbMuonsVec2[iTB][iMu].getPhiAddr() - tbMuonsVec2[iTB+1][iMuN].getPhiAddr()) <= 1)
29 if(tbMuonsVec2[iTB][iMu].getCode() < tbMuonsVec2[iTB+1][iMuN].getCode())
31 tbMuonsVec2[iTB][iMu].kill();
35 tbMuonsVec2[iTB+1][iMuN].kill();
60 for(
unsigned int iTB = 0; iTB < tbMuonsVec2.size(); iTB++)
61 for(
unsigned int iMu = 0; iMu < tbMuonsVec2[iTB].size(); iMu++)
62 if(tbMuonsVec2[iTB][iMu].isLive()) {
63 int etaAddr = tbMuonsVec2[iTB][iMu].getEtaAddr() | (iTB<<2);
64 etaAddr = m_TriggerConfig->towAddr2TowNum(etaAddr);
66 etaAddr = m_TriggerConfig->towNum2TowNum2Comp(etaAddr);
67 tbMuonsVec2[iTB][iMu].setEtaAddr(etaAddr);
69 outputMuons.push_back(tbMuonsVec2[iTB][iMu]);
78 outputMuons.pop_back();
static const unsigned int m_TCGB_OUT_MUONS_CNT
m_Number of muon candidates return by Trigger Crate's Ghost Buster
L1RpcTBMuonsVec run(L1RpcTBMuonsVec2 &tbMuonsVec)
std::vector< RPCTBMuon > L1RpcTBMuonsVec
std::vector< L1RpcTBMuonsVec > L1RpcTBMuonsVec2
Abs< T >::type abs(const T &t)
RPCTCGhostBusterSorter(RPCTriggerConfiguration *triggerConfig)