44 std::vector<RPCLogHit> logHits;
45 std::vector<RPCLogHit> logHitsFromUncomp;
50 short int digiIndex = 0;
52 for (detUnitIt = rpcDigis->begin(); detUnitIt != rpcDigis->end(); ++detUnitIt) {
53 const RPCDetId&
id = (*detUnitIt).first;
55 uint32_t rawId =
id.
rawId();
59 std::pair<L1RPCConeBuilder::TCompressedConVec::const_iterator, L1RPCConeBuilder::TCompressedConVec::const_iterator>
72 std::pair<L1RPCConeBuilder::TStripConVec::const_iterator, L1RPCConeBuilder::TStripConVec::const_iterator> itPair =
73 coneBuilder->
getConVec(rawId, digiIt->strip());
75 L1RPCConeBuilder::TStripConVec::const_iterator it = itPair.first;
77 for (; it != itPair.second; ++it) {
79 if (hwConfig->
isActive(it->m_tower, it->m_PAC)) {
80 RPCLogHit lh(it->m_tower, it->m_PAC, it->m_logplane, it->m_logstrip);
81 lh.setDigiIdx(digiIndex);
82 logHitsFromUncomp.push_back(
lh);
94 L1RPCConeBuilder::TCompressedConVec::const_iterator itComp = compressedConnPair.first;
95 for (; itComp != compressedConnPair.second; ++itComp) {
96 if (hwConfig->
isActive(itComp->m_tower, itComp->m_PAC)) {
97 int logstrip = itComp->getLogStrip(digiIt->strip(), coneDef->
getLPSizeVec());
99 RPCLogHit lh(itComp->m_tower, itComp->m_PAC, itComp->m_logplane, logstrip);
100 lh.setDigiIdx(digiIndex);
101 logHits.push_back(
lh);
117 std::vector<RPCLogHit>::iterator itLHitUncomp = logHitsFromUncomp.begin();
118 std::vector<RPCLogHit>::iterator itLHitComp;
121 for (; itLHitUncomp != logHitsFromUncomp.end(); ++itLHitUncomp) {
122 for (itLHitComp = logHits.begin(); itLHitComp != logHits.end(); ++itLHitComp) {
123 if (itLHitComp->getTower() == itLHitUncomp->getTower() &&
124 itLHitComp->getLogSector() == itLHitUncomp->getLogSector() &&
125 itLHitComp->getLogSegment() == itLHitUncomp->getLogSegment() &&
126 itLHitComp->getlogPlaneNumber() == itLHitUncomp->getlogPlaneNumber()) {
129 *itLHitUncomp = *itLHitComp;
135 for (; itLHitUncomp != logHitsFromUncomp.end(); ++itLHitUncomp) {
136 bool present =
false;
137 for (
unsigned int i = 0;
i < logHits.size(); ++
i) {
138 if (logHits[
i].getTower() == itLHitUncomp->getTower() &&
139 logHits[
i].getLogSector() == itLHitUncomp->getLogSector() &&
140 logHits[
i].getLogSegment() == itLHitUncomp->getLogSegment() &&
141 logHits[
i].getlogPlaneNumber() == itLHitUncomp->getlogPlaneNumber()) {
149 logHits.push_back(*itLHitUncomp);
156 std::vector<RPCLogHit>::iterator p_lhit;
157 for (p_lhit = logHits.begin(); p_lhit != logHits.end(); ++p_lhit) {
158 bool hitTaken =
false;
159 L1RpcLogConesVec::iterator p_cone;
160 for (p_cone = ActiveCones.begin(); p_cone != ActiveCones.end(); p_cone++) {
161 hitTaken = p_cone->addLogHit(*p_lhit);
168 newcone.
setIdx(ActiveCones.size());
169 ActiveCones.push_back(newcone);
L1RpcLogConesVec getConesFromES(edm::Handle< RPCDigiCollection > rpcDigis, edm::ESHandle< L1RPCConeBuilder > coneBuilder, edm::ESHandle< L1RPCConeDefinition > coneDef, edm::ESHandle< L1RPCBxOrConfig > bxOrDef, edm::ESHandle< L1RPCHwConfig > hwConfig, int bx)
std::pair< TCompressedConVec::const_iterator, TCompressedConVec::const_iterator > getCompConVec(uint32_t det) const
bool isActive(int tower, int sector, int segment) const
const TLPSizeVec & getLPSizeVec() const
constexpr uint32_t rawId() const
get the raw id
std::pair< const_iterator, const_iterator > Range
std::vector< RPCDigi >::const_iterator const_iterator
std::pair< TStripConVec::const_iterator, TStripConVec::const_iterator > getConVec(uint32_t det, unsigned char strip) const
std::vector< RPCLogCone > L1RpcLogConesVec
virtual ~RPCConeBuilderFromES()