17 for (
unsigned int iTow = 0; iTow < pacMuonsVec2.size(); iTow++) {
18 gbPhiMuonsVec2.push_back(gBPhi(pacMuonsVec2[iTow]));
21 return gBEta(gbPhiMuonsVec2);
52 if (pacMuonsVec.empty())
58 if (pacMuonsVec[iMu].getCode() == 0)
60 else if (pacMuonsVec[iMu].getCode() < pacMuonsVec[iMu + 1].getCode())
61 pacMuonsVec[iMu].kill();
62 else if (pacMuonsVec[iMu].getCode() == pacMuonsVec[iMu + 1].getCode()) {
63 if (pacMuonsVec[iMu].wasKilled())
64 pacMuonsVec[iMu + 1].kill();
66 pacMuonsVec[iMu].kill();
68 pacMuonsVec[iMu + 1].kill();
71 pacMuonsVec.pop_back();
74 if (pacMuonsVec[0].isLive())
75 pacMuonsVec[0].setGBDataKilledFirst();
76 else if (pacMuonsVec[0].wasKilled())
78 if (pacMuonsVec[iMu].isLive()) {
79 pacMuonsVec[iMu].setGBDataKilledFirst();
84 if (pacMuonsVec[RPCConst::m_SEGMENTS_IN_SECTOR_CNT - 1].isLive())
85 pacMuonsVec[RPCConst::m_SEGMENTS_IN_SECTOR_CNT - 1].setGBDataKilledLast();
86 else if (pacMuonsVec[RPCConst::m_SEGMENTS_IN_SECTOR_CNT - 1].wasKilled())
87 for (
int iMu = RPCConst::m_SEGMENTS_IN_SECTOR_CNT - 1; iMu >= 0; iMu--) {
88 if (pacMuonsVec[iMu].isLive()) {
89 pacMuonsVec[iMu].setGBDataKilledLast();
106 if (pacMuonsVec[iMu].isLive()) {
107 pacMuonsVec[iMu].setPhiAddr(iMu);
108 outputMuons.push_back(pacMuonsVec[iMu]);
117 outputMuons.pop_back();
126 for (
unsigned int iMuVec = 0; iMuVec < gbPhiMuonsVec2.size() - 1; iMuVec++) {
127 for (
unsigned int iMu = 0; iMu < gbPhiMuonsVec2[iMuVec].size(); iMu++) {
128 if (gbPhiMuonsVec2[iMuVec][iMu].getCode() == 0)
131 for (
unsigned int iMuNext = 0; iMuNext < gbPhiMuonsVec2[iMuVec + 1].size(); iMuNext++) {
132 if (
abs(gbPhiMuonsVec2[iMuVec][iMu].getPhiAddr() - gbPhiMuonsVec2[iMuVec + 1][iMuNext].getPhiAddr()) <= 1) {
134 if (gbPhiMuonsVec2[iMuVec][iMu].getCode() < gbPhiMuonsVec2[iMuVec + 1][iMuNext].getCode()) {
135 gbPhiMuonsVec2[iMuVec][iMu].kill();
137 gbPhiMuonsVec2[iMuVec + 1][iMuNext].kill();
155 for (
unsigned int iMuVec = 0; iMuVec < gbPhiMuonsVec2.size(); iMuVec++)
156 for (
unsigned int iMu = 0; iMu < gbPhiMuonsVec2[iMuVec].size(); iMu++)
157 if (gbPhiMuonsVec2[iMuVec][iMu].isLive()) {
158 gbPhiMuonsVec2[iMuVec][iMu].setEtaAddr(iMuVec);
159 outputMuons.push_back(gbPhiMuonsVec2[iMuVec][iMu]);
167 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