23 const uint32_t nLevels(baseNumber.
getLevels());
26 edm::LogInfo(
"MTDGeom") <<
"ETLNumberingScheme geometry levels = " << nLevels;
31 <<
"Not enough levels found in MTDBaseNumber ( " << nLevels <<
") Returning 0";
35 const bool prev8(baseNumber.
getLevelName(2).find(
"Sensor") != std::string::npos);
45 uint32_t discN, sectorS, sectorN;
46 discN = (baseNumber.
getLevelName(4).find(
"Disc1") != std::string::npos) ? 0 : 1;
47 sectorS = (baseNumber.
getLevelName(3).find(
"Front") != std::string::npos) ? 0 : 1;
51 int ringCopy =
static_cast<int>(tmpId.
encodeSector(discN, sectorS, sectorN));
53 modtyp = (baseNumber.
getLevelName(2).find(
"_Left") != std::string::npos) ? 1 : 2;
56 const std::string_view& sideName(baseNumber.
getLevelName(nSide));
57 if (sideName.find(
"CALOECTSFront") != std::string::npos) {
60 edm::LogWarning(
"MTDGeom") <<
"ETLNumberingScheme::getUnitID(): incorrect volume stack: \n" 70 const uint32_t
zside(sideCopy == 1 ? 1 : 0);
85 <<
"****************** Bad module name = " << modtyp
92 <<
"****************** Bad module copy = " << modCopy
99 <<
"****************** Bad ring copy = " << ringCopy
107 uint32_t intindex = 0;
108 uint32_t altintindex = 0;
111 intindex = thisETLdetid.rawId();
114 <<
" ring = " << ringCopy <<
" zside = " <<
zside <<
" module = " << modCopy
115 <<
" modtyp = " << modtyp <<
" Raw Id = " << intindex;
118 ETLDetId altETLdetid(
zside, discN, sectorS, sectorN, modCopy, modtyp);
119 altintindex = altETLdetid.rawId();
122 ETLDetId thisETLdetid(
zside, ringCopy, modCopy, modtyp, sensor);
123 intindex = thisETLdetid.rawId();
126 <<
" ring = " << ringCopy <<
" zside = " <<
zside <<
" module = " << modCopy
127 <<
" modtyp = " << modtyp <<
" sensor = " << sensor <<
" Raw Id = " << intindex;
130 ETLDetId altETLdetid(
zside, discN, sectorS, sectorN, modCopy, modtyp, sensor);
131 altintindex = altETLdetid.rawId();
134 if (intindex != altintindex) {
136 <<
"disc = " << discN <<
" disc side = " << sectorS <<
" sector = " << sectorN <<
"\n";
int getCopyNumber(int level) const
static constexpr int kETLv4maxModule
uint32_t encodeSector(uint32_t &disc, uint32_t &discside, uint32_t §or) const
std::string_view const & getLevelName(int level) const
Log< level::Info, false > LogInfo
Detector identifier class for the Endcap Timing Layer.
Log< level::Warning, false > LogWarning
static constexpr int kETLv5maxModule
static constexpr int kETLv4maxRing