ATLAS Offline Software
ITkStripCablingData.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
13 #include <iostream>
14 
17 
18 bool
20  return m_offline2OnlineMap.empty();
21 }
22 
23 std::size_t
25  return m_offline2OnlineMap.size();
26 }
27 
30  const ITkStripOnlineId invalidId;
31  const auto result = m_offline2OnlineMap.find(id);
32  if (result == m_offline2OnlineMap.end()) return invalidId;
33  return result->second;
34 }
35 
36 //stream extraction to read value from stream into ITkStripCablingData
37 std::istream&
38 operator>>(std::istream & is, ITkStripCablingData & cabling){
39  unsigned int onlineInt{}, offlineInt{};
40  std::string extendedId{};
41  //very primitive, should refine with regex and value range checking
42  std::string line{};
43  int indx=0;
44  while(getline(is,line)){
45  std::stringstream ss(line);
46  std::string t{};
47  std::vector<std::string> words;
48  std::string offIdShort = "";
49  if(line[0] == '#') continue;
50  while(getline(ss,t,' ')){
51  words.push_back(t);
52  }
53  if(words[0].size()>10) offIdShort=words[0].erase(10);
54  else offIdShort=words[0];
55  offlineInt=static_cast<unsigned int>(std::strtoul(offIdShort.c_str(),NULL,0));
56  onlineInt=static_cast<unsigned int>(std::strtoul(words[2].c_str(),NULL,0));
57  const Identifier offlineId(offlineInt);
58  const ITkStripOnlineId onlineId(onlineInt);
59  cabling.m_offline2OnlineMap[offlineId] = onlineId;
60  cabling.m_hash2OnlineIdArray[indx] = onlineId;
61  cabling.m_rodIdSet.insert(onlineId.rod());
62  words.clear();
63  indx++;
64 
65  }
66  return is;
67 }
68 
69 //stream insertion to output cabling map values
70 std::ostream&
71 operator<<(std::ostream & os, const ITkStripCablingData & cabling){
72  for (const auto & [offlineId, onlineId]:cabling.m_offline2OnlineMap){
73  os<<offlineId<<", "<<onlineId<<"\n";
74  }
75  os<<std::endl;
76  return os;
77 }
78 
80  return hash.is_valid()? m_hash2OnlineIdArray[hash] : s_invalidId;
81 }
82 
83 void ITkStripCablingData::getRods(std::vector<std::uint32_t>& usersVector) const {
84  std::copy(m_rodIdSet.begin(), m_rodIdSet.end(), std::back_inserter(usersVector));
85 }
ITkStripOnlineId::rod
std::uint32_t rod() const
Return the rod/rob Id.
Definition: ITkStripOnlineId.cxx:19
get_generator_info.result
result
Definition: get_generator_info.py:21
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
ITkStripCablingData::empty
bool empty() const
Definition: ITkStripCablingData.cxx:19
ITkStripCablingData::m_rodIdSet
std::set< std::uint32_t > m_rodIdSet
Set of robIds.
Definition: ITkStripCablingData.h:44
ITkStripCablingData::getRods
void getRods(std::vector< std::uint32_t > &usersVector) const
Get a vector of all RODs.
Definition: ITkStripCablingData.cxx:83
ITkStripCablingData::s_invalidId
static const ITkStripOnlineId s_invalidId
Invalid SCT_OnlineId
Definition: ITkStripCablingData.h:48
ITkStripCablingData::m_offline2OnlineMap
std::unordered_map< Identifier, ITkStripOnlineId > m_offline2OnlineMap
Definition: ITkStripCablingData.h:43
ITkStripCablingData::size
std::size_t size() const
Definition: ITkStripCablingData.cxx:24
ITkStripCablingData
Definition: ITkStripCablingData.h:24
ITkStripCablingData::m_hash2OnlineIdArray
std::array< ITkStripOnlineId, NUMBER_OF_HASHES > m_hash2OnlineIdArray
Array for hash to onlineId; hash goes from 0-49536.
Definition: ITkStripCablingData.h:45
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ITkStripCablingData::onlineId
ITkStripOnlineId onlineId(const Identifier &id) const
Definition: ITkStripCablingData.cxx:29
operator>>
std::istream & operator>>(std::istream &is, ITkStripCablingData &cabling)
Definition: ITkStripCablingData.cxx:38
dq_defect_bulk_create_defects.line
line
Definition: dq_defect_bulk_create_defects.py:27
ITkStripCablingData.h
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
ITkStripCablingData::s_invalidHash
static const IdentifierHash s_invalidHash
Invalid IdentifierHash.
Definition: ITkStripCablingData.h:47
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
PlotCalibFromCool.words
words
Definition: PlotCalibFromCool.py:51
operator<<
std::ostream & operator<<(std::ostream &os, const ITkStripCablingData &cabling)
Definition: ITkStripCablingData.cxx:71
ITkStripCablingData::getOnlineIdFromHash
ITkStripOnlineId getOnlineIdFromHash(const IdentifierHash &hash) const
Get ITkStripOnlineId from IdentifierHash.
Definition: ITkStripCablingData.cxx:79
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:108
ITkStripOnlineId
Definition: ITkStripOnlineId.h:16
calibdata.copy
bool copy
Definition: calibdata.py:26
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
Identifier
Definition: IdentifierFieldParser.cxx:14