|
ATLAS Offline Software
|
Go to the documentation of this file.
19 using namespace asg::msgUserCode;
30 m_layerOverrides(std::move(layerOverrides))
57 std::string
line, silicon, detReg, layerKey, geoKey;
61 while (
line.empty() ||
line[0] ==
'!')
66 istringstream sline(
line);
67 ok = ok && (sline >> geoKey);
71 m_moduleRelabel = std::make_unique<FPGATrackSimModuleRelabel>(geoKey,
false);
80 istringstream sline(
line);
82 ok = ok && (layerKey ==
"logical_s1");
90 istringstream sline(
line);
92 ok = ok && (layerKey ==
"logical_s2");
100 for (
int i = 0;
i < nHeaderLines;
i++)
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-")) );
133 unsigned region_read = -1;
137 if (
line.empty() ||
line[0] ==
'!')
continue;
139 istringstream sline(
line);
141 bool ok =
static_cast<bool>(sline >>
key >> region_read);
142 if (ok &&
key ==
"region" && region_read == region)
break;
153 int BEC{}, physLayer{}, physDisk{}, logiLayer{}, logiLayer1{}, logiLayer2{}, stereo{}, nDim{};
154 string line, silicon, planeKey1, planeKey2, stereoKey;
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});
261 int code =
static_cast<int>(si) * 1000 +
static_cast<int>(dz) * 100 + physLayer;
void setSection(unsigned v)
std::vector< uint32_t > diskIndices(const std::string &geoKey)
for a given geo tag return disk indices remappings the format is this: 'GeometryVersion':'ATLAS-P2-RU...
unsigned getPhysLayer() const
Maps physical layers to logical layers.
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
SiliconTech getPairedDetType() const
bool isEC(uint32_t layer, uint32_t section) const
void readLayers(std::ifstream &fin, uint32_t stage)
std::vector< std::vector< std::vector< LayerSection > > > m_map
const LayerSection & getLayerSection(SiliconTech siTech, DetectorZone zone, uint32_t physLayer) const
bool isPixel(int pl) const
std::vector< int > m_layerOverrides
void map(FPGATrackSimHit &hit) const
void seek(std::ifstream &fin, unsigned region)
std::vector< uint32_t > m_coordOffset
const LayerInfo & getLayerInfo(uint32_t layer, uint32_t section) const
unsigned getPairedPhysLayer() const
void setPairedSection(unsigned v)
DetectorZone getDetectorZone() const
void setPairedLayer(unsigned v)
std::string to_string(const DetectorType &type)
std::unique_ptr< FPGATrackSimModuleRelabel > m_moduleRelabel
void allocateMap(std::ifstream &fin, uint32_t stage)
DetectorZone getPairedDetZone() const
std::string layerName(uint32_t layer, uint32_t section) const
FPGATrackSimPlaneMap(std::ifstream &fin, unsigned region, unsigned stage, std::vector< int > layerOverrides=std::vector< int >())
void setLayer(unsigned v)
int getOverrideLayer(SiliconTech si, DetectorZone dz, int physLayer)
std::vector< uint32_t > m_dimension
SiliconTech getDetType() const
std::vector< std::vector< LayerInfo > > m_layerInfo
std::vector< uint32_t > m_diskIndex
void doRemap(FPGATrackSimHit &hit) const
std::vector< uint32_t > m_coordLayer
HitType getHitType() const
void setHitType(HitType type)