57 std::string line, silicon, detReg, layerKey, geoKey;
60 ok = ok && getline(fin, line);
61 while (line.empty() || line[0] ==
'!')
63 ok = ok && getline(fin, line);
66 istringstream sline(line);
67 ok = ok && (sline >> geoKey);
71 m_moduleRelabel = std::make_unique<FPGATrackSimModuleRelabel>(geoKey,
false);
78 ok = ok && getline(fin, line);
80 istringstream sline(line);
82 ok = ok && (layerKey ==
"logical_s1");
83 ok = ok && getline(fin, line);
87 ok = ok && getline(fin, line);
88 ok = ok && getline(fin, line);
90 istringstream sline(line);
92 ok = ok && (layerKey ==
"logical_s2");
94 else ANA_MSG_ERROR(
"Bad stage " << stage <<
". Stage should be 1 or 2");
100 for (
int i = 0; i < nHeaderLines; i++)
103 ok = ok && getline(fin, line);
106 istringstream sline(line);
107 ok = ok && (sline >> layerCounts[i] >> silicon >> detReg);
109 ok = ok && ( (i < (nHeaderLines/2) && silicon ==
"pixel") || (i >= (nHeaderLines/2) && silicon ==
"SCT") );
110 ok = ok && ( (i % (nHeaderLines/2) == 0 && detReg ==
"barrel") || (i % (nHeaderLines/2) != 0 && (detReg ==
"endcap+" || detReg ==
"endcap-")) );
114 m_nDetLayers = std::accumulate(layerCounts.begin(), layerCounts.end(), 0);
153 int BEC{}, physLayer{}, physDisk{}, logiLayer{}, logiLayer1{}, logiLayer2{}, stereo{}, nDim{};
154 string line, silicon, planeKey1, planeKey2, stereoKey;
157 uint32_t linesRead = 0;
160 while (getline(fin, line))
162 if (line.empty() || line[0] ==
'!')
continue;
164 istringstream sline(line);
166 ok = ok && (sline >> silicon >> BEC >> physDisk >> physLayer);
178 if (silicon ==
"pixel")
183 ok = ok && (sline >> planeKey1 >> logiLayer1 >> planeKey2 >> logiLayer2);
184 ok = ok && (planeKey1 ==
"plane1" && planeKey2 ==
"plane2");
186 else if (silicon ==
"SCT")
192 ok = ok && (sline >> stereoKey >> stereo >> planeKey1 >> logiLayer1 >> planeKey2 >> logiLayer2);
193 ok = ok && (planeKey1 ==
"plane1" && planeKey2 ==
"plane2" && stereoKey ==
"stereo");
202 else if (stage == 1) logiLayer = logiLayer1;
203 else if (stage == 2) logiLayer = logiLayer2;
210 m_map.at(sil).at(BEC).at(physLayer).layer = logiLayer;
215 m_layerInfo[logiLayer].push_back({ siTech, zone, physLayer, physDisk, stereo});