17 for(
unsigned int iTow = 0; iTow < pacMuonsVec2.size(); iTow++) {
18 gbPhiMuonsVec2.push_back(gBPhi(pacMuonsVec2[iTow]));
21 return gBEta(gbPhiMuonsVec2);
53 if(pacMuonsVec.empty())
59 if(pacMuonsVec[iMu].getCode() == 0)
61 else if(pacMuonsVec[iMu].getCode() < pacMuonsVec[iMu + 1].getCode())
62 pacMuonsVec[iMu].kill();
63 else if(pacMuonsVec[iMu].getCode() == pacMuonsVec[iMu + 1].getCode()) {
64 if(pacMuonsVec[iMu].wasKilled())
65 pacMuonsVec[iMu+1].kill();
67 pacMuonsVec[iMu].kill();
70 pacMuonsVec[iMu+1].kill();
73 pacMuonsVec.pop_back();
76 if(pacMuonsVec[0].isLive())
77 pacMuonsVec[0].setGBDataKilledFirst();
78 else if(pacMuonsVec[0].wasKilled())
80 if(pacMuonsVec[iMu].isLive()) {
81 pacMuonsVec[iMu].setGBDataKilledFirst();
86 if(pacMuonsVec[RPCConst::m_SEGMENTS_IN_SECTOR_CNT-1].isLive())
87 pacMuonsVec[RPCConst::m_SEGMENTS_IN_SECTOR_CNT-1].setGBDataKilledLast();
88 else if(pacMuonsVec[RPCConst::m_SEGMENTS_IN_SECTOR_CNT-1].wasKilled())
89 for(
int iMu = RPCConst::m_SEGMENTS_IN_SECTOR_CNT -1; iMu >= 0 ; iMu--) {
90 if(pacMuonsVec[iMu].isLive()) {
91 pacMuonsVec[iMu].setGBDataKilledLast();
108 if(pacMuonsVec[iMu].isLive()) {
109 pacMuonsVec[iMu].setPhiAddr(iMu);
110 outputMuons.push_back(pacMuonsVec[iMu]);
119 outputMuons.pop_back();
128 for(
unsigned int iMuVec = 0; iMuVec < gbPhiMuonsVec2.size() -1; iMuVec++) {
129 for(
unsigned int iMu = 0; iMu < gbPhiMuonsVec2[iMuVec].size(); iMu++) {
130 if(gbPhiMuonsVec2[iMuVec][iMu].getCode() == 0)
133 for(
unsigned int iMuNext = 0; iMuNext < gbPhiMuonsVec2[iMuVec+1].size(); iMuNext++) {
134 if(
abs(gbPhiMuonsVec2[iMuVec][iMu].getPhiAddr()-gbPhiMuonsVec2[iMuVec+1][iMuNext].getPhiAddr())<=1)
137 if(gbPhiMuonsVec2[iMuVec][iMu].getCode() < gbPhiMuonsVec2[iMuVec+1][iMuNext].getCode())
139 gbPhiMuonsVec2[iMuVec][iMu].kill();
143 gbPhiMuonsVec2[iMuVec+1][iMuNext].kill();
161 for(
unsigned int iMuVec = 0; iMuVec < gbPhiMuonsVec2.size(); iMuVec++)
162 for(
unsigned int iMu = 0; iMu < gbPhiMuonsVec2[iMuVec].size(); iMu++)
163 if(gbPhiMuonsVec2[iMuVec][iMu].isLive()) {
164 gbPhiMuonsVec2[iMuVec][iMu].setEtaAddr(iMuVec);
165 outputMuons.push_back(gbPhiMuonsVec2[iMuVec][iMu]);
173 outputMuons.pop_back();
static const unsigned int m_GBETA_OUT_MUONS_CNT
m_Number of muon candidates return by Trigger Board's eta Ghost Buster
L1RpcTBMuonsVec gBEta(L1RpcTBMuonsVec2 &gbPhiMuonsVec2) const
static const unsigned int m_SEGMENTS_IN_SECTOR_CNT
m_Number of Logic Segments in one Logic Sector, defines also the number of Logic Cones for one Logic ...
static const unsigned int m_GBPHI_OUT_MUONS_CNT
m_Number of muon candidates return by Trigger Board's phi Ghost Buster
std::vector< RPCTBMuon > L1RpcTBMuonsVec
std::vector< L1RpcTBMuonsVec > L1RpcTBMuonsVec2
Abs< T >::type abs(const T &t)
L1RpcTBMuonsVec run(L1RpcTBMuonsVec2 &pacMuonsVec2) const
L1RpcTBMuonsVec gBPhi(L1RpcTBMuonsVec &pacMuonsVec) const