Loading [MathJax]/jax/output/SVG/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Types | Public Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
ITkStripCablingData Class Reference

#include <ITkStripCablingData.h>

Collaboration diagram for ITkStripCablingData:

Public Types

enum  { NUMBER_OF_HASHES =49536 }
 

Public Member Functions

bool empty () const
 
std::size_t size () const
 
ITkStripOnlineId onlineId (const Identifier &id) const
 
void getRods (std::vector< std::uint32_t > &usersVector) const
 Get a vector of all RODs. More...
 
ITkStripOnlineId getOnlineIdFromHash (const IdentifierHash &hash) const
 Get ITkStripOnlineId from IdentifierHash. More...
 

Private Attributes

std::unordered_map< Identifier, ITkStripOnlineIdm_offline2OnlineMap
 
std::set< std::uint32_t > m_rodIdSet
 Set of robIds. More...
 
std::array< ITkStripOnlineId, NUMBER_OF_HASHESm_hash2OnlineIdArray
 Array for hash to onlineId; hash goes from 0-49536. More...
 

Static Private Attributes

static const IdentifierHash s_invalidHash {}
 Invalid IdentifierHash. More...
 
static const ITkStripOnlineId s_invalidId {}
 Invalid SCT_OnlineId
More...
 

Friends

std::istream & operator>> (std::istream &is, ITkStripCablingData &cabling)
 stream extraction to read value from stream into ITkStripCablingData More...
 
std::ostream & operator<< (std::ostream &os, const ITkStripCablingData &cabling)
 stream insertion for debugging More...
 

Detailed Description

Definition at line 24 of file ITkStripCablingData.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NUMBER_OF_HASHES 

Definition at line 40 of file ITkStripCablingData.h.

40 {NUMBER_OF_HASHES=49536}; // In ITk, we have 49536 sensors.

Member Function Documentation

◆ empty()

bool ITkStripCablingData::empty ( ) const

Definition at line 19 of file ITkStripCablingData.cxx.

19  {
20  return m_offline2OnlineMap.empty();
21 }

◆ getOnlineIdFromHash()

ITkStripOnlineId ITkStripCablingData::getOnlineIdFromHash ( const IdentifierHash hash) const

Get ITkStripOnlineId from IdentifierHash.

Definition at line 78 of file ITkStripCablingData.cxx.

78  {
79  return hash.is_valid()? m_hash2OnlineIdArray[hash] : s_invalidId;
80 }

◆ getRods()

void ITkStripCablingData::getRods ( std::vector< std::uint32_t > &  usersVector) const

Get a vector of all RODs.

Definition at line 82 of file ITkStripCablingData.cxx.

82  {
83  std::copy(m_rodIdSet.begin(), m_rodIdSet.end(), std::back_inserter(usersVector));
84 }

◆ onlineId()

ITkStripOnlineId ITkStripCablingData::onlineId ( const Identifier id) const

Definition at line 29 of file ITkStripCablingData.cxx.

29  {
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 }

◆ size()

std::size_t ITkStripCablingData::size ( ) const

Definition at line 24 of file ITkStripCablingData.cxx.

24  {
25  return m_offline2OnlineMap.size();
26 }

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const ITkStripCablingData cabling 
)
friend

stream insertion for debugging

Definition at line 69 of file ITkStripCablingData.cxx.

70  {
71  for (const auto & [offlineId, onlineId]:cabling.m_offline2OnlineMap){
72  os<<offlineId<<", "<<onlineId<<"\n";
73  }
74  os<<std::endl;
75  return os;
76 }

◆ operator>>

std::istream& operator>> ( std::istream &  is,
ITkStripCablingData cabling 
)
friend

stream extraction to read value from stream into ITkStripCablingData

Definition at line 38 of file ITkStripCablingData.cxx.

38  {
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  words.clear();
62  indx++;
63 
64  }
65  return is;
66 }

Member Data Documentation

◆ m_hash2OnlineIdArray

std::array<ITkStripOnlineId, NUMBER_OF_HASHES> ITkStripCablingData::m_hash2OnlineIdArray
private

Array for hash to onlineId; hash goes from 0-49536.

Definition at line 45 of file ITkStripCablingData.h.

◆ m_offline2OnlineMap

std::unordered_map<Identifier, ITkStripOnlineId> ITkStripCablingData::m_offline2OnlineMap
private

Definition at line 43 of file ITkStripCablingData.h.

◆ m_rodIdSet

std::set<std::uint32_t> ITkStripCablingData::m_rodIdSet
private

Set of robIds.

Definition at line 44 of file ITkStripCablingData.h.

◆ s_invalidHash

const IdentifierHash ITkStripCablingData::s_invalidHash {}
staticprivate

Invalid IdentifierHash.

Definition at line 47 of file ITkStripCablingData.h.

◆ s_invalidId

const ITkStripOnlineId ITkStripCablingData::s_invalidId {}
staticprivate

Invalid SCT_OnlineId

Definition at line 48 of file ITkStripCablingData.h.


The documentation for this class was generated from the following files:
get_generator_info.result
result
Definition: get_generator_info.py:21
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
ITkStripCablingData::m_rodIdSet
std::set< std::uint32_t > m_rodIdSet
Set of robIds.
Definition: ITkStripCablingData.h:44
ITkStripCablingData::s_invalidId
static const ITkStripOnlineId s_invalidId
Invalid SCT_OnlineId
Definition: ITkStripCablingData.h:48
collListGuids.line
string line
Definition: collListGuids.py:77
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::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
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
ITkStripCablingData::NUMBER_OF_HASHES
@ NUMBER_OF_HASHES
Definition: ITkStripCablingData.h:40
PlotCalibFromCool.words
words
Definition: PlotCalibFromCool.py:51
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
ITkStripOnlineId
Definition: ITkStripOnlineId.h:16
calibdata.copy
bool copy
Definition: calibdata.py:27
Identifier
Definition: IdentifierFieldParser.cxx:14