96 {
98
99 int maxType = 0;
102 std::vector<unsigned short int> feedPadThresholds;
105
106
107
108
110 const coral::AttributeList& atr_map = readCdoMap->
attributeList(1);
112
113
114
115
117 const coral::AttributeList& atr_map_corr = readCdoCorr->
attributeList(1);
119
120
121
122
124 std::string etaCM_File;
125 std::string etaTh0;
127 for (itr_eta = readCdoEta->
begin(); itr_eta != readCdoEta->
end(); ++itr_eta) {
128 const coral::AttributeList& atr = itr_eta->second;
129 etaCM_File = *(static_cast<const std::string*>((atr["CM_File"]).addressOfData()));
130 etaTh0 = *(static_cast<const std::string*>((atr["Th0"]).addressOfData()));
131 trigroads[etaCM_File] = etaTh0;
132 }
133
134
135
136
138 std::string phiCM_File;
139 std::string phiTh0;
141 for (itr = readCdoPhi->
begin(); itr != readCdoPhi->
end(); ++itr) {
142 const coral::AttributeList& atr = itr->second;
143 phiCM_File = *(static_cast<const std::string*>((atr["CM_File"]).addressOfData()));
144 phiTh0 = *(static_cast<const std::string*>((atr["Th0"]).addressOfData()));
145 trigroads[phiCM_File] = phiTh0;
146 }
147
148
150
152
153
154 unsigned int nlines = 0;
155
157
158
160 ATH_MSG_DEBUG(
"setup() - Reading routine. nlines = " << nlines);
161 ++nlines;
163
164
167 if (
data(
"SECTOR TYPES (") >> start >>
"-" >> stop >>
"):") {
168 for (
int i = start;
i <=
stop; ++
i) {
data >> sectorMap[
i]; }
169 }
170
171
172 if (stop == 63 || stop == 8) {
173 for (
int i = 0;
i < 64; ++
i) { maxType = std::max(sectorMap[i], maxType); }
174 sectorType.clear();
175
176 ATH_MSG_DEBUG(
"setup() - Loop over " << maxType <<
" sector-types");
177
178 for (
int i = 1;
i <= maxType; ++
i) {
180 RPC_CondCabling::SectorLogicSetup& sec = sectorType[
i - 1];
182 for (
int j = 0;
j < 64; ++
j) {
183 if (sectorMap[j] == i) {
185 sectorLogic.insert(SLmap_t::value_type(j, &sec));
186 ATH_MSG_DEBUG(
"setup() - filling sectorLogicSetup Map for type " << i <<
" sector " << j);
187 }
188 }
189 }
190 }
191
192
193 for (
int i = 1;
i <= maxType; ++
i) {
194
195 if (
data(
"RPC GEOM # :", i)) {
196 RPC_CondCabling::RPCchamberdata RPCdata(
data, i);
197 if (!(sectorType[i - 1] += RPCdata)) return StatusCode::FAILURE;
198 }
199
200 if (
data(
"WIRED OR # :", i)) {
201 RPC_CondCabling::WiredORdata WORdata(
data, i);
202 if (!(sectorType[i - 1] += WORdata)) return StatusCode::FAILURE;
203 }
204
205 if (
data(
"CMAs # : pivot segmentation", i)) {
206 RPC_CondCabling::CMApivotdata CMAdata(
data, i, layout);
207 if (!(sectorType[i - 1] += CMAdata)) return StatusCode::FAILURE;
208 }
209
210 if (
data(
"CMAs # : eta cabling", i)) {
211 RPC_CondCabling::CMAcablingdata CMAdata(
data, i);
212 if (!(sectorType[i - 1] += CMAdata)) return StatusCode::FAILURE;
213 }
214 }
215 }
216 ATH_MSG_DEBUG(
"setup() - map n. of lines read is " << nlines);
218
219 for (
int i = 1;
i <= maxType; ++
i) {
220 if (!sectorType[i - 1].
setup(
msg()))
return StatusCode::FAILURE;
221 if (!sectorType[i - 1].
check())
return StatusCode::FAILURE;
225 for (const auto& cma : CMAs) {
226 unsigned int cabling = UINT_MAX;
229 } else {
231 }
232 }
233 }
234 }
235
237
238 for (int sector = 0; sector < 64; ++sector) {
239 unsigned int nRDOentries = 0;
240 int side = (sector < 32) ? 0 : 1;
241 int logic_sector = sector % 32;
242
243 if (sectorMap[sector]) {
244
245 const RPC_CondCabling::SectorLogicSetup& Sector = sectorType[sectorMap[sector] - 1];
246
247
249 RPC_CondCabling::SectorLogicSetup::EtaCMAmap::const_iterator
it = CMAs.begin();
250
251 bool isFirst = false;
252
253
254 while (it != CMAs.end()) {
255
256 unsigned int ID = (*it).second.id().Ixx_index();
257 bool inversion = (*it).second.inversion();
258 isFirst = (
ID == 1 && inversion) || (ID == 0 && !inversion);
259 unsigned int PADid = (*it).first.PAD_index();
260 unsigned int cabling = UINT_MAX;
262 unsigned int RPC_strip =
cabling % 100;
263 unsigned int RPC_chamber = (
cabling / 100) % 100;
264 unsigned int RPC_layer = 0;
265 unsigned int RPC_station = (*it).second.whichCMAstation(
CMAinput::Pivot);
266 unsigned int lvl1_sector = sector;
267
268 const RPC_CondCabling::RPCchamber* rpc = Sector.
find_chamber(RPC_station, RPC_chamber);
271 int sPhi = (logic_sector == 31) ? 1 : (logic_sector + 1) / 4 + 1;
275
276
277 RPCdecoder
decode(
Eta, lvl1_sector, RPC_station, RPC_layer, RPC_chamber, RPC_strip);
278
279
280 RDOindex rdo(PADid,
decode.code(), name, sEta, sPhi, dR, dZ, dP,
m_idHelperSvc->rpcIdHelper());
281
282
283 int key =
side * 10000 + logic_sector * 100 + PADid;
284
285 std::pair<RpcCablingCondData::RDOmap::iterator, bool> ins =
286 writeCdo->
m_RDOs.insert(RpcCablingCondData::RDOmap::value_type(key, rdo));
287
288 if (!ins.second) {
289 ATH_MSG_ERROR(
"RpcCablingCondData::RDOmap is false for stationName="
290 << name << ", stationEta=" << sEta << ", stationPhi=" << sPhi << ", doubletR=" << dR
291 << ", doubletZ=" << dZ << ", doubletPhi=" << dP);
292 return StatusCode::FAILURE;
293 }
294
295 ++nRDOentries;
296 }
297
298 else if (!(*it).second.get_cabling(
CMAinput::Pivot, 0, 0, 0, cabling) && isFirst) {
299
300 bool existLow = false;
301 bool existHigh = false;
302
303 if (!(existLow = (*it).second.get_cabling(
CMAinput::LowPt, 0, 0, 0, cabling)))
305
306 if (!existLow && !existHigh) {
308 return StatusCode::FAILURE;
309 }
310
311 unsigned int RPC_strip =
cabling % 100;
312 unsigned int RPC_chamber = (
cabling / 100) % 100;
313 unsigned int RPC_layer = 0;
314 unsigned int RPC_station = 0;
315 if (existLow)
317 else
319 unsigned int lvl1_sector = sector;
320
321 const RPC_CondCabling::RPCchamber* rpc = Sector.
find_chamber(RPC_station, RPC_chamber);
324 int sPhi = (logic_sector == 31) ? 1 : (logic_sector + 1) / 4 + 1;
328
329
330 RPCdecoder
decode(
Eta, lvl1_sector, RPC_station, RPC_layer, RPC_chamber, RPC_strip);
331
332
333 RDOindex rdo(PADid,
decode.code(), name, sEta, sPhi, dR, dZ, dP,
m_idHelperSvc->rpcIdHelper());
334
335
336 int key =
side * 10000 + logic_sector * 100 + PADid;
337
338
339 std::pair<RpcCablingCondData::RDOmap::iterator, bool> ins =
340 writeCdo->
m_RDOs.insert(RpcCablingCondData::RDOmap::value_type(key, rdo));
341
342 if (!ins.second) {
343 ATH_MSG_ERROR(
"RpcCablingCondData::RDOmap is false for stationName="
344 << name << ", stationEta=" << sEta << ", stationPhi=" << sPhi << ", doubletR=" << dR
345 << ", doubletZ=" << dZ << ", doubletPhi=" << dP);
346 return StatusCode::FAILURE;
347 }
348
349 ++nRDOentries;
350 }
351
352
353 while (it != CMAs.end() && (
unsigned int)(*it).first.PAD_index() == PADid) { ++
it; }
354 }
355 }
356 ATH_MSG_DEBUG(
"setup() - sector " << sector <<
", number of associated RDO (i.e. Pads) = " << nRDOentries);
357 }
358
359 DBline data_corr(MAP_corr);
360 nlines = 0;
361 while (++data_corr) {
362 ++nlines;
363 unsigned short int SubId;
364 unsigned short int SecId;
365 unsigned short int PADId;
366 unsigned short int CMAId;
367 unsigned short int ijk;
371 unsigned short int Channel1;
372 unsigned short int Channel2;
373 int Number;
374
375 if (data_corr("CABLE") >> data_corr.dbhex() >> SubId >> SecId >> PADId >> CMAId >> ijk >> data_corr.dbdec() >> type >> Channel1 >>
376 Channel2 >> Number) {
377 bool ok =
CableParamCheck(SubId, SecId, PADId, CMAId, ijk, type, Channel1, Channel2, Number);
378
379 layer = (ijk == 0 || ijk == 2 || ijk == 3) ? 0 : 1;
380
381 if (ijk > 1) {
382 Channel1 += 32 * (ijk % 2);
383 Channel2 += 32 * (ijk % 2);
384 }
385
386 unsigned short int lh = (CMAId >> 2) & 1;
387
388 if (ijk == 0 || ijk == 1)
390 else
392
394 if (type > 3)
type = 4;
395
396 if (ok && !
correct(SubId, SecId, PADId, CMAId,
static_cast<CMAinput>(inputType), layer, Channel1, Channel2, Number,
399 << std::hex << std::setw(4) << std::showbase << SubId << " " << std::setw(4) << std::showbase << SecId
400 << " " << std::setw(3) << std::showbase << PADId << " " << std::setw(3) << std::showbase << CMAId << " "
401 << std::setw(3) << std::showbase << ijk << " " << std::dec << std::setw(1) << std::showbase << type << " "
402 << std::setw(2) << std::showbase << Channel1 << " " << std::setw(2) << std::showbase << Channel2 << " "
403 << std::setw(2) << std::showbase << Number);
404 }
405 }
406 if (data_corr("BOARD") >> data_corr.dbhex() >> SubId >> SecId >> PADId >> CMAId >> data_corr.dbdec() >> inputType >> layer >>
407 type >> Channel1 >> Channel2 >> Number) {
408 bool ok =
BoardParamCheck(SubId, SecId, PADId, CMAId, inputType, layer, type, Channel1, Channel2, Number);
409
411 if (type > 3)
type = 4;
412
413 if (ok && !
correct(SubId, SecId, PADId, CMAId,
static_cast<CMAinput>(inputType), layer, Channel1, Channel2, Number,
416 << std::hex << std::setw(4) << std::showbase << SubId << " " << std::setw(4) << std::showbase << SecId
417 << " " << std::setw(3) << std::showbase << PADId << " " << std::setw(3) << std::showbase << CMAId << " "
418 << std::dec << std::setw(1) << inputType << " " << std::setw(1) << layer << " " << std::dec << std::setw(1)
419 << std::showbase << type << " " << std::setw(2) << std::showbase << Channel1 << " " << std::setw(2)
420 << std::showbase << Channel2 << " " << std::setw(2) << std::showbase << Number);
421 }
422 }
423 }
424 ATH_MSG_DEBUG(
"setup() - corrected map n. of lines read is " << nlines);
426
427 for (
int side = 0;
side < 2; ++
side) {
429 }
430
431 int hashID = 0;
432 std::set<uint32_t> ROBid;
433 IdContext rpcModuleContext =
m_idHelperSvc->rpcIdHelper().module_context();
434
435
437
438 ATH_MSG_INFO(
"setup() - start building OfflineOnlineMap for " << writeCdo->
m_RDOs.size() <<
" RDOs");
439
440 RpcCablingCondData::RDOmap::iterator pad_beg = writeCdo->
m_RDOs.begin();
441 RpcCablingCondData::RDOmap::iterator pad_end = writeCdo->
m_RDOs.end();
442 for (; pad_beg != pad_end; ++pad_beg) {
443 const RDOindex* pRDOindex = &((*pad_beg).second);
444 (*pad_beg).second.set_hash(hashID);
445
446
447 writeCdo->
m_HashVec.push_back(pRDOindex);
448
450 ATH_MSG_ERROR(
"Size of hash vector and RDO hash does not match");
451 return StatusCode::FAILURE;
452 }
453
454
455 const unsigned short int rob_id = pRDOindex->
ROBid();
456 const unsigned short int rod_id = pRDOindex->
RODid();
457 const unsigned short int sub_id = pRDOindex->
side();
458 const unsigned short int sec_id = pRDOindex->
SLid();
459 const unsigned short int pad_id = pRDOindex->
PADid();
460
461 uint32_t ROD_ID = (sub_id << 16) | rod_id;
462 uint32_t ROB_ID = (sub_id << 16) | rob_id;
463
464 ROBid.insert(ROB_ID);
465 unsigned short int sub_id_index = ((sub_id == 0x65) ? 1 : 0);
466
469
470 ATH_MSG_DEBUG(hashID <<
"-th entry has sub_id_index=" << sub_id_index <<
", ROBid=" << rob_id <<
", RODid=" << rod_id <<
", side="
471 << sub_id << ", SLid=" << sec_id << ", PADid=" << pad_id << ", pad_identifier=" << id.get_compact());
472
473
475
476
477 std::pair<RpcCablingCondData::OfflineOnlineMap::iterator, bool> ins =
478 writeCdo->
m_RDOmap.insert(RpcCablingCondData::OfflineOnlineMap::value_type(
id, pRDOindex));
479 ATH_MSG_DEBUG(
"OfflineOnlineMap new entry: Identifier with technology="
481 <<
", stationEta=" <<
m_idHelperSvc->rpcIdHelper().stationEta(
id) <<
", stationPhi="
483 <<
", doubletZ=" <<
m_idHelperSvc->rpcIdHelper().doubletZ(
id) <<
", doubletPhi="
484 <<
m_idHelperSvc->rpcIdHelper().doubletPhi(
id) <<
" and hash of the RDOindex(key)= " << pRDOindex->
hash());
485 if (!ins.second) {
486 ATH_MSG_ERROR(
"RpcCablingCondData::OfflineOnlineMap is false for technology="
488 <<
", stationEta=" <<
m_idHelperSvc->rpcIdHelper().stationEta(
id) <<
", stationPhi="
490 <<
", doubletZ=" <<
m_idHelperSvc->rpcIdHelper().doubletZ(
id) <<
", doubletPhi="
491 <<
m_idHelperSvc->rpcIdHelper().doubletPhi(
id) <<
" and hash of the RDOindex(key)= " << pRDOindex->
hash());
492 return StatusCode::FAILURE;
493 }
494
495
496 std::pair<std::set<IdentifierHash>::iterator, bool> insert_ROB_RDO_returnVal =
498 if (insert_ROB_RDO_returnVal.second)
499 ATH_MSG_DEBUG(
"A new RDO HashId = " << pRDOindex->
hash() <<
" registered for ROB Id = " << ROB_ID);
500 else
501 ATH_MSG_VERBOSE(
"The RDO HashId = " << pRDOindex->
hash() <<
" was already registered for ROB Id = " << ROB_ID);
502
503
505 std::list<Identifier> strip_id_list;
507 ATH_MSG_DEBUG(
"RDO HashId = " << (
int)rdoHashId <<
" RDO Id = " <<
id.get_compact() <<
" ROB Id = " << MSG::hex << ROB_ID
508 << MSG::dec << " ROD Id = " << MSG::hex << ROD_ID << MSG::dec);
509
510 for (unsigned short int CMAId : {2, 3, 6, 7}) {
511 for (unsigned short int ijk : {1, 2, 3}) {
512 strip_id_list.clear();
513 for (unsigned short int channel : {0, 31}) {
514 strip_id_list.splice(strip_id_list.end(),
515 give_strip_id(sub_id_index, sec_id, pad_id, CMAId, ijk, channel, sectorMap, sectorType));
516 }
517 for (Identifier strip_id : strip_id_list) {
518 Identifier idp =
m_idHelperSvc->rpcIdHelper().parentID(strip_id);
519 IdentifierHash prdHashId;
520 int gethash_code =
m_idHelperSvc->rpcIdHelper().get_hash(idp, prdHashId, &rpcModuleContext);
521 if (gethash_code != 0) {
523 continue;
524 }
525
526
527 std::pair<std::set<IdentifierHash>::iterator, bool> insertRDO_returnVal =
529 if (insertRDO_returnVal.second) {
530 ATH_MSG_DEBUG(
"A new RDO HashId = " << (
int)rdoHashId <<
" registered for PRD HashId = " << (
int)prdHashId);
531 } else {
533 << " was already registered for PRD HashId = " << (int)prdHashId);
534 }
535
536
537 std::pair<std::set<uint32_t>::iterator,
bool> insertROB_returnVal = writeCdo->
m_PRD_ROB_map[prdHashId].insert(ROB_ID);
538 if (insertROB_returnVal.second) {
539 ATH_MSG_DEBUG(
"A new ROB Id = " << MSG::hex << ROB_ID << MSG::dec
540 << " registered for PRD HashId = " << (int)prdHashId);
541 } else {
543 << " was already registered for PRD HashId = " << (int)prdHashId);
544 }
545 }
546 }
547 }
548
549
550 TrigRoadsMap::const_iterator
it;
551 it = trigroads.find(
"infos.txt");
552 if (it == trigroads.end()) {
554 } else {
555 ATH_MSG_VERBOSE(
"======== RPC Trigger Roads from COOL - Header infos ========");
557
559 std::stringstream
ss;
561 std::string word;
563 if (word == "FeetPadThresholds") {
564 feedPadThresholds.assign(3, 0);
565 ss >> feedPadThresholds.at(0);
566 ss >> feedPadThresholds.at(1);
567 ss >> feedPadThresholds.at(2);
568 ATH_MSG_VERBOSE(
"FeetPadThresholds set from COOL to: " << feedPadThresholds.at(0) <<
"," << feedPadThresholds.at(1)
569 << "," << feedPadThresholds.at(2));
570 }
571 }
572 }
573 }
574
575
576 RDOindex
index = (*pad_beg).second;
577 index.pad_identifier(
id);
578
580
582 ATH_MSG_ERROR(
"Inconsistence between PAD hash and RpcPadIdHash");
585 return StatusCode::FAILURE;
586 }
587
589 unsigned short int rod =
index.RODid();
590
591 if (rod > 15) {
593 return StatusCode::FAILURE;
594 }
595
597
599
601
603 ++hashID;
604 }
605 ATH_MSG_DEBUG(
"setup() - start recording RpcCablingCondData");
606
607
608
610 if (feedPadThresholds.size() != 3) {
611
612 feedPadThresholds.assign(3, 0);
613 feedPadThresholds.at(0) = 0;
614 feedPadThresholds.at(1) = 2;
615 feedPadThresholds.at(2) = 5;
616 }
617 ATH_MSG_INFO(
"Applying FeetPadThresholds : " << feedPadThresholds.at(0) <<
"," << feedPadThresholds.at(1) <<
","
618 << feedPadThresholds.at(2));
619
620 const unsigned int NumFeetSectors = 8;
621 unsigned int FeetSectors[NumFeetSectors] = {21, 22, 25, 26, 53, 54, 57, 58};
622 const unsigned int NumSpecialFeetPads = 4;
623 unsigned int SpecialFeetPads[NumSpecialFeetPads] = {2, 4, 5, 7};
624
625 for (unsigned int is = 0; is < NumFeetSectors; is++) {
626 for (
unsigned int it = 0;
it < NumSpecialFeetPads;
it++) {
628 for (
unsigned int th = 0;
th < 3;
th++) {
630 feedPadThresholds.at(th));
631 }
632 }
633 }
634 }
635
636
639
641
642 for (
int i = 0;
i < 64;
i++) writeCdo->
m_SectorMap[i] = sectorMap[i];
645
647 std::stringstream ss1;
648 ss1 << "Level-1 configuration database " << std::endl;
649 ss1 << "Contains " << maxType << " Trigger Sector Types:" << std::endl;
650 ss1 << "negative sectors 0 - 15 ==> ";
651 for (
int i = 0;
i < 16;
i++) ss1 << std::setw(2) << sectorMap[
i] <<
" ";
652 ss1 << std::endl << "negative sectors 16 - 31 ==> ";
653 for (
int i = 16;
i < 32;
i++) ss1 << std::setw(2) << sectorMap[
i] <<
" ";
654 ss1 << std::endl << "positive sectors 32 - 47 ==> ";
655 for (
int i = 32;
i < 48;
i++) ss1 << std::setw(2) << sectorMap[
i] <<
" ";
656 ss1 << std::endl << "positive sectors 48 - 63 ==> ";
657 for (
int i = 48;
i < 64;
i++) ss1 << std::setw(2) << sectorMap[
i] <<
" ";
658 ss1 << std::endl;
660 }
661
662
663 if (writeCdo->
m_RDOs.empty()) {
665 return StatusCode::FAILURE;
666 }
669 return StatusCode::FAILURE;
670 }
673 return StatusCode::FAILURE;
674 }
677 return StatusCode::FAILURE;
678 }
681 return StatusCode::FAILURE;
682 }
685 return StatusCode::FAILURE;
686 }
688 return StatusCode::SUCCESS;
689}
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
RPC_CondCabling::SectorLogicSetup::TrigRoadsMap TrigRoadsMap
char data[hepevt_bytes_allocation_ATLAS]
void clear()
Empty the pool.
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
std::map< CMAidentity, EtaCMA > EtaCMAmap
const RPCchamber * find_chamber(int, int) const
void SetPtoTrigRoads(const TrigRoadsMap *)
std::array< int, 64 > sectorMap_t
Gaudi::Property< bool > m_cosmic_configuration
std::map< int, RPC_CondCabling::SectorLogicSetup * > SLmap_t
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
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)
float j(const xAOD::IParticle &, const xAOD::TrackMeasurementValidation &hit, const Eigen::Matrix3d &jab_inv)
ID
//////////////////////////////////////// JetAlgorithmType::ID defines most common physics jet finding...