ATLAS Offline Software
Loading...
Searching...
No Matches
ITkStripCablingData.cxx File Reference
#include "ITkStripCabling/ITkStripCablingData.h"
#include <iostream>
Include dependency graph for ITkStripCablingData.cxx:

Go to the source code of this file.

Functions

std::istream & operator>> (std::istream &is, ITkStripCablingData &cabling)
std::ostream & operator<< (std::ostream &os, const ITkStripCablingData &cabling)

Function Documentation

◆ operator<<()

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

Definition at line 70 of file ITkStripCablingData.cxx.

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

◆ operator>>()

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

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 cabling.m_rodIdSet.insert(onlineId.rod());
62 words.clear();
63 indx++;
64
65 }
66 return is;
67}