ATLAS Offline Software
CscRawDataCollectionIdHash.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
9 
10 // default contructor
12 {
13  // initialize RPC cabling service
14  ServiceHandle<CSCcablingSvc> cabling{"CSCcablingSvc", "CscRawDataCollectionIdHash"};
15  if (cabling.retrieve().isFailure()) {
16  REPORT_MESSAGE_WITH_CONTEXT(MSG::ERROR, "CscRawDataCollectionIdHash")
17  << "Cannot get CSC cabling Service " << endmsg;
18  }
19 
20  // loop over all RODs
21  for (uint16_t id=0; id<cabling->maxId(); ++id)
22  {
23  // map
25  m_int2id.push_back(id);
26  // ROD ID
27  m_int2rodId.push_back( id%cabling->nROD() );
28  ++m_size;
29 
30  // SubDetectorID
31  if ( id < cabling->nROD() ) // C-side
32  m_int2subDetectorId.push_back(0x6A);
33  else // A-side
34  m_int2subDetectorId.push_back(0x69);
35  }
36 }
37 
38 
41 {
42  if (index>=0 && index < m_size)
43  return m_int2id[index];
44 
45  // if invalid index
46  return INVALID_ID;
47 }
48 
49 
52 {
53  if (index>=0 && index < m_size)
54  return m_int2subDetectorId[index];
55 
56  // if invalid index
57  return INVALID_ID;
58 }
59 
60 
63 {
64  //if (index>=0 && index < m_size)
65  // return m_int2rodId[index];
66 
67  if(index < m_int2rodId.size())
68  return m_int2rodId.at(index);
69  // if invalid index
70  return INVALID_ID;
71 }
72 
73 
76 {
77  std::map<ID,int>::const_iterator it = m_lookup.find(id);
78  if(it!=m_lookup.end())
79  return it->second;
80 
81  // if invalid ID
82  return INVALID_ID;
83 }
84 
CscRawDataCollectionIdHash::operator()
int operator()(const ID &id) const
Convert ID to int.
Definition: CscRawDataCollectionIdHash.cxx:75
CscRawDataCollectionIdHash::rodId
uint16_t rodId(unsigned int i) const
reverse conversion : ROD ID
Definition: CscRawDataCollectionIdHash.cxx:62
CscRawDataCollectionIdHash::INVALID_ID
@ INVALID_ID
Definition: CscRawDataCollectionIdHash.h:39
CscRawDataCollectionIdHash::m_size
int m_size
total number of IDs
Definition: CscRawDataCollectionIdHash.h:43
index
Definition: index.py:1
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
skel.it
it
Definition: skel.GENtoEVGEN.py:407
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
CscRawDataCollectionIdHash::identifier
ID identifier(int i) const
reverse conversion
Definition: CscRawDataCollectionIdHash.cxx:40
CscRawDataCollectionIdHash::ID
uint16_t ID
Definition: CscRawDataCollectionIdHash.h:20
CscRawDataCollection.h
REPORT_MESSAGE_WITH_CONTEXT
#define REPORT_MESSAGE_WITH_CONTEXT(LVL, CONTEXT_NAME)
Report a message, with an explicitly specified context name.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:345
CscRawDataCollectionIdHash::CscRawDataCollectionIdHash
CscRawDataCollectionIdHash()
Definition: CscRawDataCollectionIdHash.cxx:11
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:239
CscRawDataCollectionIdHash::m_int2subDetectorId
std::vector< uint16_t > m_int2subDetectorId
reverse lookup for SubDetectorID and ROD ID
Definition: CscRawDataCollectionIdHash.h:55
errorcheck.h
Helpers for checking error return status codes and reporting errors.
CscRawDataCollectionIdHash.h
CscRawDataCollectionIdHash::m_int2id
std::vector< ID > m_int2id
reverse lookup
Definition: CscRawDataCollectionIdHash.h:51
CscRawDataCollectionIdHash::m_int2rodId
std::vector< uint16_t > m_int2rodId
Definition: CscRawDataCollectionIdHash.h:56
DeMoScan.index
string index
Definition: DeMoScan.py:362
CscRawDataCollectionIdHash::subDetectorId
uint16_t subDetectorId(int i) const
reverse conversion for SubDetectorID and ROD ID
Definition: CscRawDataCollectionIdHash.cxx:51
CscRawDataCollectionIdHash::m_lookup
std::map< ID, int > m_lookup
lookup table
Definition: CscRawDataCollectionIdHash.h:47
CSCcablingSvc.h
ServiceHandle< CSCcablingSvc >