5 int kCrystalsInPhi = 1;
26 (
crystal() % kCrystalsInPhi > 0 ?
crystal() % kCrystalsInPhi : kCrystalsInPhi);
31 int kCrystalsInEta = 1, kCrystalsInPhi = 1;
32 std::array<int, 4> kTypeBoundaries = {};
61 zside() > 0 ? (
crystal() - 1) / kCrystalsInPhi + 1 : kCrystalsInEta - (
crystal() - 1) / kCrystalsInPhi;
62 return kCrystalsInEta * (
module() - 1) + kCrystalsInEta * kTypeBoundaries[(
modType() - 1)] + etaRowInModule;
66 int max_iphi = 1, max_ieta = 1;
96 int max_iphi = 1, max_ieta = 1, nphi = 0, keta = 0, tmphi = hi + 1;
97 std::array<int, 4> kTypeBoundaries = {};
134 if (tmphi > max_ieta * max_iphi) {
137 int ip = (tmphi - 1) % max_iphi + 1;
138 int ie = (tmphi - 1) / max_iphi - max_ieta;
139 ie = (zside == 1 ? ie + 1 : -ie);
140 rod = (ip - 1) / nphi + 1;
141 module = (ie - 1) / keta + 1;
142 if (
module > kTypeBoundaries[1]) {
143 modtype = (
module > kTypeBoundaries[2] ? 3 : 2);
148 crystal = zside == 1 ? ((ip - 1) % nphi + 1) + ((ie - 1) % keta) * nphi
149 : ((ip - 1) % nphi + 1) + (keta - 1 - (ie - 1) % keta) * nphi;
178 os <<
" BTL " << std::endl
179 <<
" Side : " <<
id.mtdSide() << std::endl
180 <<
" Rod : " <<
id.mtdRR() << std::endl
181 <<
" Module : " <<
id.module() << std::endl
182 <<
" Crystal type: " <<
id.modType() << std::endl
183 <<
" Crystal : " <<
id.crystal() << std::endl;
static constexpr int MAX_IETA_BAR
int modulesPerType(CrysLayout lay) const
static constexpr int kCrystalsInPhiBarPhi
int ietaAbs(CrysLayout lay) const
Detector identifier base class for the MIP Timing Layer.
static constexpr int MAX_IPHI_BAR
static constexpr std::array< int, 4 > kTypeBoundariesBarZflat
BTLDetId geographicalId(CrysLayout lay) const
static constexpr int HALF_ROD
static constexpr std::array< int, 4 > kTypeBoundariesBarPhiFlat
static constexpr int MAX_IETA_TILE
static constexpr int MAX_IPHI_BARZFLAT
static constexpr int MAX_IPHI_TILE
static constexpr int kCrystalsInPhiBar
static constexpr int MAX_IETA_BARPHIFLAT
int hashedIndex(CrysLayout lay) const
static constexpr int kCrystalsInEtaBarPhi
static constexpr int kCrystalsInPhiTile
int iphi(CrysLayout lay) const
BTLDetId getUnhashedIndex(int hi, CrysLayout lay) const
static constexpr int kCrystalsInEtaBar
static constexpr std::array< int, 4 > kTypeBoundariesReference
static constexpr int MAX_IETA_BARZFLAT
static constexpr int kCrystalsInEtaBarZ
Detector identifier class for the Barrel Timing Layer. The crystal count must start from 0...
static constexpr int kCrystalsInEtaTile
static constexpr int kCrystalsInPhiBarZ
std::ostream & operator<<(std::ostream &os, const BTLDetId &id)
T mod(const T &a, const T &b)
static constexpr int MAX_IPHI_BARPHIFLAT