93 {
95
96 int maxType = 0;
99 std::vector<unsigned short int> feedPadThresholds;
100 std::map<std::string, std::string> trigroads;
102
103
104
105
107 const coral::AttributeList& atr_map = readCdoMap->
attributeList(1);
109
110
111
112
114 const coral::AttributeList& atr_map_corr = readCdoCorr->
attributeList(1);
116
117
118
119
121 std::string etaCM_File;
122 std::string etaTh0;
124 for (itr_eta = readCdoEta->
begin(); itr_eta != readCdoEta->
end(); ++itr_eta) {
125 const coral::AttributeList& atr = itr_eta->second;
126 etaCM_File = *(static_cast<const std::string*>((atr["CM_File"]).addressOfData()));
127 etaTh0 = *(static_cast<const std::string*>((atr["Th0"]).addressOfData()));
128 trigroads[etaCM_File] = etaTh0;
129 }
130
131
132
133
135 std::string phiCM_File;
136 std::string phiTh0;
138 for (itr = readCdoPhi->
begin(); itr != readCdoPhi->
end(); ++itr) {
139 const coral::AttributeList& atr = itr->second;
140 phiCM_File = *(static_cast<const std::string*>((atr["CM_File"]).addressOfData()));
141 phiTh0 = *(static_cast<const std::string*>((atr["Th0"]).addressOfData()));
142 trigroads[phiCM_File] = phiTh0;
143 }
144
145
147
149
150
151 unsigned int nlines = 0;
152
154
155
157 ATH_MSG_DEBUG(
"setup() - Reading routine. nlines = " << nlines);
158 ++nlines;
160
161
164 if (
data(
"SECTOR TYPES (") >> start >>
"-" >> stop >>
"):") {
165 for (
int i = start;
i <=
stop; ++
i) {
data >> sectorMap[
i]; }
166 }
167
168
169 if (stop == 63 || stop == 8) {
170 for (
int i = 0;
i < 64; ++
i) { maxType = std::max(sectorMap[i], maxType); }
171 sectorType.clear();
172
173 ATH_MSG_DEBUG(
"setup() - Loop over " << maxType <<
" sector-types");
174
175 for (
int i = 1;
i <= maxType; ++
i) {
177 RPC_CondCabling::SectorLogicSetup& sec = sectorType[
i - 1];
179 for (int j = 0; j < 64; ++j) {
180 if (sectorMap[j] == i) {
181 sec << j;
182 sectorLogic.insert(SLmap_t::value_type(j, &sec));
183 ATH_MSG_DEBUG(
"setup() - filling sectorLogicSetup Map for type " << i <<
" sector " << j);
184 }
185 }
186 }
187 }
188
189
190 for (
int i = 1;
i <= maxType; ++
i) {
191
192 if (
data(
"RPC GEOM # :", i)) {
193 RPC_CondCabling::RPCchamberdata RPCdata(
data, i);
194 if (!(sectorType[i - 1] += RPCdata)) return StatusCode::FAILURE;
195 }
196
197 if (
data(
"WIRED OR # :", i)) {
198 RPC_CondCabling::WiredORdata WORdata(
data, i);
199 if (!(sectorType[i - 1] += WORdata)) return StatusCode::FAILURE;
200 }
201
202 if (
data(
"CMAs # : pivot segmentation", i)) {
203 RPC_CondCabling::CMApivotdata CMAdata(
data, i, layout);
204 if (!(sectorType[i - 1] += CMAdata)) return StatusCode::FAILURE;
205 }
206
207 if (
data(
"CMAs # : eta cabling", i)) {
208 RPC_CondCabling::CMAcablingdata CMAdata(
data, i);
209 if (!(sectorType[i - 1] += CMAdata)) return StatusCode::FAILURE;
210 }
211 }
212 }
213 ATH_MSG_DEBUG(
"setup() - map n. of lines read is " << nlines);
215
216 for (
int i = 1;
i <= maxType; ++
i) {
217 if (!sectorType[i - 1].
setup(
msg()))
return StatusCode::FAILURE;
218 if (!sectorType[i - 1].
check())
return StatusCode::FAILURE;
222 for (const auto& cma : CMAs) {
223 unsigned int cabling = UINT_MAX;
226 } else {
228 }
229 }
230 }
231 }
232
234
235 for (int sector = 0; sector < 64; ++sector) {
236 unsigned int nRDOentries = 0;
237 int side = (sector < 32) ? 0 : 1;
238 int logic_sector = sector % 32;
239
240 if (sectorMap[sector]) {
241
242 const RPC_CondCabling::SectorLogicSetup& Sector = sectorType[sectorMap[sector] - 1];
243
244
246 RPC_CondCabling::SectorLogicSetup::EtaCMAmap::const_iterator
it = CMAs.begin();
247
248 bool isFirst = false;
249
250
251 while (it != CMAs.end()) {
252
253 unsigned int ID = (*it).second.id().Ixx_index();
254 bool inversion = (*it).second.inversion();
255 isFirst = (
ID == 1 && inversion) || (
ID == 0 && !inversion);
256 unsigned int PADid = (*it).first.PAD_index();
257 unsigned int cabling = UINT_MAX;
259 unsigned int RPC_strip =
cabling % 100;
260 unsigned int RPC_chamber = (
cabling / 100) % 100;
261 unsigned int RPC_layer = 0;
262 unsigned int RPC_station = (*it).second.whichCMAstation(
CMAinput::Pivot);
263 unsigned int lvl1_sector = sector;
264
265 const RPC_CondCabling::RPCchamber* rpc = Sector.
find_chamber(RPC_station, RPC_chamber);
268 int sPhi = (logic_sector == 31) ? 1 : (logic_sector + 1) / 4 + 1;
272
273
274 RPCdecoder
decode(
Eta, lvl1_sector, RPC_station, RPC_layer, RPC_chamber, RPC_strip);
275
276
277 RDOindex rdo(PADid,
decode.code(), name, sEta, sPhi, dR, dZ, dP,
m_idHelperSvc->rpcIdHelper());
278
279
280 int key =
side * 10000 + logic_sector * 100 + PADid;
281
282 std::pair<RpcCablingCondData::RDOmap::iterator, bool> ins =
283 writeCdo->
m_RDOs.insert(RpcCablingCondData::RDOmap::value_type(key, rdo));
284
285 if (!ins.second) {
286 ATH_MSG_ERROR(
"RpcCablingCondData::RDOmap is false for stationName="
287 << name << ", stationEta=" << sEta << ", stationPhi=" << sPhi << ", doubletR=" << dR
288 << ", doubletZ=" << dZ << ", doubletPhi=" << dP);
289 return StatusCode::FAILURE;
290 }
291
292 ++nRDOentries;
293 }
294
295 else if (!(*it).second.get_cabling(
CMAinput::Pivot, 0, 0, 0, cabling) && isFirst) {
296
297 bool existLow = false;
298 bool existHigh = false;
299
300 if (!(existLow = (*it).second.get_cabling(
CMAinput::LowPt, 0, 0, 0, cabling)))
302
303 if (!existLow && !existHigh) {
305 return StatusCode::FAILURE;
306 }
307
308 unsigned int RPC_strip =
cabling % 100;
309 unsigned int RPC_chamber = (
cabling / 100) % 100;
310 unsigned int RPC_layer = 0;
311 unsigned int RPC_station = 0;
312 if (existLow)
314 else
316 unsigned int lvl1_sector = sector;
317
318 const RPC_CondCabling::RPCchamber* rpc = Sector.
find_chamber(RPC_station, RPC_chamber);
321 int sPhi = (logic_sector == 31) ? 1 : (logic_sector + 1) / 4 + 1;
325
326
327 RPCdecoder
decode(
Eta, lvl1_sector, RPC_station, RPC_layer, RPC_chamber, RPC_strip);
328
329
330 RDOindex rdo(PADid,
decode.code(), name, sEta, sPhi, dR, dZ, dP,
m_idHelperSvc->rpcIdHelper());
331
332
333 int key =
side * 10000 + logic_sector * 100 + PADid;
334
335
336 std::pair<RpcCablingCondData::RDOmap::iterator, bool> ins =
337 writeCdo->
m_RDOs.insert(RpcCablingCondData::RDOmap::value_type(key, rdo));
338
339 if (!ins.second) {
340 ATH_MSG_ERROR(
"RpcCablingCondData::RDOmap is false for stationName="
341 << name << ", stationEta=" << sEta << ", stationPhi=" << sPhi << ", doubletR=" << dR
342 << ", doubletZ=" << dZ << ", doubletPhi=" << dP);
343 return StatusCode::FAILURE;
344 }
345
346 ++nRDOentries;
347 }
348
349
350 while (it != CMAs.end() && (
unsigned int)(*it).first.PAD_index() == PADid) { ++
it; }
351 }
352 }
353 ATH_MSG_DEBUG(
"setup() - sector " << sector <<
", number of associated RDO (i.e. Pads) = " << nRDOentries);
354 }
355
356 DBline data_corr(MAP_corr);
357 nlines = 0;
358 while (++data_corr) {
359 ++nlines;
360 unsigned short int SubId;
361 unsigned short int SecId;
362 unsigned short int PADId;
363 unsigned short int CMAId;
364 unsigned short int ijk;
368 unsigned short int Channel1;
369 unsigned short int Channel2;
370 int Number;
371
372 if (data_corr("CABLE") >> data_corr.dbhex() >> SubId >> SecId >> PADId >> CMAId >> ijk >> data_corr.dbdec() >> type >> Channel1 >>
373 Channel2 >> Number) {
374 bool ok =
CableParamCheck(SubId, SecId, PADId, CMAId, ijk, type, Channel1, Channel2, Number);
375
376 layer = (ijk == 0 || ijk == 2 || ijk == 3) ? 0 : 1;
377
378 if (ijk > 1) {
379 Channel1 += 32 * (ijk % 2);
380 Channel2 += 32 * (ijk % 2);
381 }
382
383 unsigned short int lh = (CMAId >> 2) & 1;
384
385 if (ijk == 0 || ijk == 1)
387 else
389
391 if (type > 3)
type = 4;
392
393 if (ok && !
correct(SubId, SecId, PADId, CMAId,
static_cast<CMAinput>(inputType), layer, Channel1, Channel2, Number,
396 << std::hex << std::setw(4) << std::showbase << SubId << " " << std::setw(4) << std::showbase << SecId
397 << " " << std::setw(3) << std::showbase << PADId << " " << std::setw(3) << std::showbase << CMAId << " "
398 << std::setw(3) << std::showbase << ijk << " " << std::dec << std::setw(1) << std::showbase << type << " "
399 << std::setw(2) << std::showbase << Channel1 << " " << std::setw(2) << std::showbase << Channel2 << " "
400 << std::setw(2) << std::showbase << Number);
401 }
402 }
403 if (data_corr("BOARD") >> data_corr.dbhex() >> SubId >> SecId >> PADId >> CMAId >> data_corr.dbdec() >> inputType >> layer >>
404 type >> Channel1 >> Channel2 >> Number) {
405 bool ok =
BoardParamCheck(SubId, SecId, PADId, CMAId, inputType, layer, type, Channel1, Channel2, Number);
406
408 if (type > 3)
type = 4;
409
410 if (ok && !
correct(SubId, SecId, PADId, CMAId,
static_cast<CMAinput>(inputType), layer, Channel1, Channel2, Number,
413 << std::hex << std::setw(4) << std::showbase << SubId << " " << std::setw(4) << std::showbase << SecId
414 << " " << std::setw(3) << std::showbase << PADId << " " << std::setw(3) << std::showbase << CMAId << " "
415 << std::dec << std::setw(1) << inputType << " " << std::setw(1) << layer << " " << std::dec << std::setw(1)
416 << std::showbase << type << " " << std::setw(2) << std::showbase << Channel1 << " " << std::setw(2)
417 << std::showbase << Channel2 << " " << std::setw(2) << std::showbase << Number);
418 }
419 }
420 }
421 ATH_MSG_DEBUG(
"setup() - corrected map n. of lines read is " << nlines);
423
424 for (
int side = 0;
side < 2; ++
side) {
426 }
427
428 int hashID = 0;
429 std::set<uint32_t> ROBid;
430 IdContext rpcModuleContext =
m_idHelperSvc->rpcIdHelper().module_context();
431
432
434
435 ATH_MSG_INFO(
"setup() - start building OfflineOnlineMap for " << writeCdo->
m_RDOs.size() <<
" RDOs");
436
437 RpcCablingCondData::RDOmap::iterator pad_beg = writeCdo->
m_RDOs.begin();
438 RpcCablingCondData::RDOmap::iterator pad_end = writeCdo->
m_RDOs.end();
439 for (; pad_beg != pad_end; ++pad_beg) {
440 const RDOindex* pRDOindex = &((*pad_beg).second);
441 (*pad_beg).second.set_hash(hashID);
442
443
444 writeCdo->
m_HashVec.push_back(pRDOindex);
445
447 ATH_MSG_ERROR(
"Size of hash vector and RDO hash does not match");
448 return StatusCode::FAILURE;
449 }
450
451
452 const unsigned short int rob_id = pRDOindex->
ROBid();
453 const unsigned short int rod_id = pRDOindex->
RODid();
454 const unsigned short int sub_id = pRDOindex->
side();
455 const unsigned short int sec_id = pRDOindex->
SLid();
456 const unsigned short int pad_id = pRDOindex->
PADid();
457
458 uint32_t ROD_ID = (sub_id << 16) | rod_id;
459 uint32_t ROB_ID = (sub_id << 16) | rob_id;
460
461 ROBid.insert(ROB_ID);
462 unsigned short int sub_id_index = ((sub_id == 0x65) ? 1 : 0);
463
466
467 ATH_MSG_DEBUG(hashID <<
"-th entry has sub_id_index=" << sub_id_index <<
", ROBid=" << rob_id <<
", RODid=" << rod_id <<
", side="
468 << sub_id << ", SLid=" << sec_id << ", PADid=" << pad_id << ", pad_identifier=" << id.get_compact());
469
470
472
473
474 std::pair<RpcCablingCondData::OfflineOnlineMap::iterator, bool> ins =
475 writeCdo->
m_RDOmap.insert(RpcCablingCondData::OfflineOnlineMap::value_type(
id, pRDOindex));
476 ATH_MSG_DEBUG(
"OfflineOnlineMap new entry: Identifier with technology="
478 <<
", stationEta=" <<
m_idHelperSvc->rpcIdHelper().stationEta(
id) <<
", stationPhi="
480 <<
", doubletZ=" <<
m_idHelperSvc->rpcIdHelper().doubletZ(
id) <<
", doubletPhi="
481 <<
m_idHelperSvc->rpcIdHelper().doubletPhi(
id) <<
" and hash of the RDOindex(key)= " << pRDOindex->
hash());
482 if (!ins.second) {
483 ATH_MSG_ERROR(
"RpcCablingCondData::OfflineOnlineMap is false for technology="
485 <<
", stationEta=" <<
m_idHelperSvc->rpcIdHelper().stationEta(
id) <<
", stationPhi="
487 <<
", doubletZ=" <<
m_idHelperSvc->rpcIdHelper().doubletZ(
id) <<
", doubletPhi="
488 <<
m_idHelperSvc->rpcIdHelper().doubletPhi(
id) <<
" and hash of the RDOindex(key)= " << pRDOindex->
hash());
489 return StatusCode::FAILURE;
490 }
491
492
493 std::pair<std::set<IdentifierHash>::iterator, bool> insert_ROB_RDO_returnVal =
495 if (insert_ROB_RDO_returnVal.second)
496 ATH_MSG_DEBUG(
"A new RDO HashId = " << pRDOindex->
hash() <<
" registered for ROB Id = " << ROB_ID);
497 else
498 ATH_MSG_VERBOSE(
"The RDO HashId = " << pRDOindex->
hash() <<
" was already registered for ROB Id = " << ROB_ID);
499
500
502 std::list<Identifier> strip_id_list;
504 ATH_MSG_DEBUG(
"RDO HashId = " << (
int)rdoHashId <<
" RDO Id = " <<
id.get_compact() <<
" ROB Id = " << MSG::hex << ROB_ID
505 << MSG::dec << " ROD Id = " << MSG::hex << ROD_ID << MSG::dec);
506
507 for (unsigned short int CMAId : {2, 3, 6, 7}) {
508 for (unsigned short int ijk : {1, 2, 3}) {
509 strip_id_list.clear();
510 for (unsigned short int channel : {0, 31}) {
511 strip_id_list.splice(strip_id_list.end(),
512 give_strip_id(sub_id_index, sec_id, pad_id, CMAId, ijk, channel, sectorMap, sectorType));
513 }
514 for (Identifier strip_id : strip_id_list) {
515 Identifier idp =
m_idHelperSvc->rpcIdHelper().parentID(strip_id);
516 IdentifierHash prdHashId;
517 int gethash_code =
m_idHelperSvc->rpcIdHelper().get_hash(idp, prdHashId, &rpcModuleContext);
518 if (gethash_code != 0) {
520 continue;
521 }
522
523
524 std::pair<std::set<IdentifierHash>::iterator, bool> insertRDO_returnVal =
526 if (insertRDO_returnVal.second) {
527 ATH_MSG_DEBUG(
"A new RDO HashId = " << (
int)rdoHashId <<
" registered for PRD HashId = " << (
int)prdHashId);
528 } else {
530 << " was already registered for PRD HashId = " << (int)prdHashId);
531 }
532
533
534 std::pair<std::set<uint32_t>::iterator,
bool> insertROB_returnVal = writeCdo->
m_PRD_ROB_map[prdHashId].insert(ROB_ID);
535 if (insertROB_returnVal.second) {
536 ATH_MSG_DEBUG(
"A new ROB Id = " << MSG::hex << ROB_ID << MSG::dec
537 << " registered for PRD HashId = " << (int)prdHashId);
538 } else {
540 << " was already registered for PRD HashId = " << (int)prdHashId);
541 }
542 }
543 }
544 }
545
546
547 std::map<std::string, std::string>::const_iterator
it;
548 it = trigroads.find(
"infos.txt");
549 if (it == trigroads.end()) {
551 } else {
552 ATH_MSG_VERBOSE(
"======== RPC Trigger Roads from COOL - Header infos ========");
554
556 std::stringstream
ss;
558 std::string word;
560 if (word == "FeetPadThresholds") {
561 feedPadThresholds.assign(3, 0);
562 ss >> feedPadThresholds.at(0);
563 ss >> feedPadThresholds.at(1);
564 ss >> feedPadThresholds.at(2);
565 ATH_MSG_VERBOSE(
"FeetPadThresholds set from COOL to: " << feedPadThresholds.at(0) <<
"," << feedPadThresholds.at(1)
566 << "," << feedPadThresholds.at(2));
567 }
568 }
569 }
570 }
571
572
573 RDOindex
index = (*pad_beg).second;
574 index.pad_identifier(
id);
575
577
579 ATH_MSG_ERROR(
"Inconsistence between PAD hash and RpcPadIdHash");
582 return StatusCode::FAILURE;
583 }
584
586 unsigned short int rod =
index.RODid();
587
588 if (rod > 15) {
590 return StatusCode::FAILURE;
591 }
592
594
596
598
600 ++hashID;
601 }
602 ATH_MSG_DEBUG(
"setup() - start recording RpcCablingCondData");
603
604
605
607 if (feedPadThresholds.size() != 3) {
608
609 feedPadThresholds.assign(3, 0);
610 feedPadThresholds.at(0) = 0;
611 feedPadThresholds.at(1) = 2;
612 feedPadThresholds.at(2) = 5;
613 }
614 ATH_MSG_INFO(
"Applying FeetPadThresholds : " << feedPadThresholds.at(0) <<
"," << feedPadThresholds.at(1) <<
","
615 << feedPadThresholds.at(2));
616
617 const unsigned int NumFeetSectors = 8;
618 unsigned int FeetSectors[NumFeetSectors] = {21, 22, 25, 26, 53, 54, 57, 58};
619 const unsigned int NumSpecialFeetPads = 4;
620 unsigned int SpecialFeetPads[NumSpecialFeetPads] = {2, 4, 5, 7};
621
622 for (unsigned int is = 0; is < NumFeetSectors; is++) {
623 for (
unsigned int it = 0;
it < NumSpecialFeetPads;
it++) {
625 for (
unsigned int th = 0;
th < 3;
th++) {
627 feedPadThresholds.at(th));
628 }
629 }
630 }
631 }
632
633
636
638
639 for (
int i = 0;
i < 64;
i++) writeCdo->
m_SectorMap[i] = sectorMap[i];
642
644 std::stringstream ss1;
645 ss1 << "Level-1 configuration database " << std::endl;
646 ss1 << "Contains " << maxType << " Trigger Sector Types:" << std::endl;
647 ss1 << "negative sectors 0 - 15 ==> ";
648 for (
int i = 0;
i < 16;
i++) ss1 << std::setw(2) << sectorMap[
i] <<
" ";
649 ss1 << std::endl << "negative sectors 16 - 31 ==> ";
650 for (
int i = 16;
i < 32;
i++) ss1 << std::setw(2) << sectorMap[
i] <<
" ";
651 ss1 << std::endl << "positive sectors 32 - 47 ==> ";
652 for (
int i = 32;
i < 48;
i++) ss1 << std::setw(2) << sectorMap[
i] <<
" ";
653 ss1 << std::endl << "positive sectors 48 - 63 ==> ";
654 for (
int i = 48;
i < 64;
i++) ss1 << std::setw(2) << sectorMap[
i] <<
" ";
655 ss1 << std::endl;
657 }
658
659
660 if (writeCdo->
m_RDOs.empty()) {
662 return StatusCode::FAILURE;
663 }
666 return StatusCode::FAILURE;
667 }
670 return StatusCode::FAILURE;
671 }
674 return StatusCode::FAILURE;
675 }
678 return StatusCode::FAILURE;
679 }
682 return StatusCode::FAILURE;
683 }
685 return StatusCode::SUCCESS;
686}
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
std::vector< Identifier > ID
char data[hepevt_bytes_allocation_ATLAS]
bool msgLvl(const MSG::Level lvl) const
const AttributeList & attributeList(ChanNum chanNum) const
attribute list for a given channel number
const_iterator end() const
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
ChanAttrListMap::const_iterator const_iterator
std::string getString() const
Provide a string form of the identifier - hexadecimal.
static std::string find_directory(const std::string &logical_file_name, const std::string &search_path)
unsigned short int SLid(void) const
unsigned int hash(void) const
unsigned short int ROBid(void) const
unsigned short int RODid(void) const
unsigned short int side(void) const
void pad_identifier(Identifier &id) const
unsigned short int PADid(void) const
bool set_feet_threshold(unsigned short int it, unsigned short int th)
void set_feet_on(bool feet_on)
const EtaCMAmap & giveEtaCMA() const
void SetPtoTrigRoads(const std::map< std::string, std::string > *)
std::map< CMAidentity, EtaCMA, std::less< CMAidentity > > EtaCMAmap
const RPCchamber * find_chamber(int, int) const
std::array< int, 64 > sectorMap_t
Gaudi::Property< bool > m_cosmic_configuration
Gaudi::Property< bool > m_ApplyFeetPadThresholds
Gaudi::Property< bool > m_ForceFeetPadThresholdsFromJO
std::list< Identifier > give_strip_id(const unsigned short int SubsystemId, const unsigned short int SectorId, const unsigned short int PADId, const unsigned short int CMAId, const unsigned short ijk, const unsigned short int Channel, const sectorMap_t &smap, const RpcCablingCondData::STvec &sType) const
bool BoardParamCheck(const unsigned short int SubId, const unsigned short int SecId, const unsigned short int PADId, const unsigned short int CMAId, const unsigned short int inputType, const unsigned int layer, const unsigned int type, const unsigned short int Channel1, const unsigned short int Channel2, const short int Number) const
std::map< int, RPC_CondCabling::SectorLogicSetup *, std::less< int > > SLmap_t
static bool correct(const unsigned short int SubsystemId, const unsigned short int SectorId, const unsigned short int PADId, const unsigned short int CMAId, const CMAinput it, const unsigned int layer, const unsigned short int Channel1, const unsigned short int Channel2, const short int number, const L1RPCcabCorrection type, const sectorMap_t &smap, const RpcCablingCondData::STvec &sType)
Gaudi::Property< std::string > m_database_repository
bool CableParamCheck(const unsigned short int SubId, const unsigned short int SecId, const unsigned short int PADId, const unsigned short int CMAId, const unsigned short int ijk, const unsigned int type, const unsigned short int Channel1, const unsigned short int Channel2, const short int Number) const
std::vector< IdentifierHash > m_rod2hash[2][16]
ROB_RDO_Map m_ROB_RDO_map
std::vector< Identifier > m_int2id
PRD_RDO_Map m_PRD_RDO_map
RPCPadParameters m_RPCPadParameters_array[MAX_LOGICSECTOR][MAX_PADID]
std::map< Identifier, int > m_lookup
PRD_ROB_Map m_PRD_ROB_map
std::vector< RPC_CondCabling::SectorLogicSetup > STvec
Identifier m_offline_id[2][32][10]
OfflineOnlineHashMap m_HashVec
OfflineOnlineMap m_RDOmap
std::vector< uint32_t > m_fullListOfRobIds
int HashID(const std::string &ID)