8 int type) : hdcons_(hdcons), subdet_(sub),
18 <<
" cells along Z|Eta and " << nPhi_
39 int iPhi = (di%
nPhi_);
63 int nrStepsY )
const {
97 id_.
iEtaZ =
id.ieta();
98 id_.
iType =
id.type();
99 id_.
zside =
id.zside();
100 id_.
subdet =
id.subdetId();
111 int nrStepsY )
const {
114 int iEtaZ = id_.
iEtaZ + nrStepsX;
115 int iPhi = id_.
iPhi + nrStepsY;
116 if (iPhi < 1) iPhi +=
nPhi_;
118 if (id_.
iType == 1 && iEtaZ < 0) {
125 if (
valid(nextPoint))
return nextPoint;
126 else return DetId(0);
DecodedDetId decode(const DetId &id) const
unsigned int totalGeomModules() const
bool isValidXY(int type, int izeta, int iphi) const
ForwardSubdetector subdet_
int numberEtaZ(int type) const
DetId switchZSide(const DetId startId) const
DetId denseId2detId(uint32_t denseId) const override
DetId changeXY(const DetId &id, int nrStepsX, int nrStepsY) const
move the nagivator along x, y
int numberPhi(int type) const
unsigned int kSizeForDenseIndexing
virtual uint32_t detId2denseGeomId(const DetId &id) const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
DecodedDetId geomDenseId2decId(const uint32_t &hi) const
const FastTimeDDDConstants & hdcons_
#define TYPELOOKUP_DATA_REG(_dataclass_)
bool valid(const DetId &id) const override
Is this a valid cell id.
FastTimeTopology(const FastTimeDDDConstants &hdcons, ForwardSubdetector subdet, int type)
create a new Topology
DetId encode(const DecodedDetId &id_) const
bool validHashIndex(uint32_t ix) const
DetId offsetBy(const DetId startId, int nrStepsX, int nrStepsY) const
uint32_t detId2denseId(const DetId &id) const override
Dense indexing.
constexpr Detector det() const
get the detector field from this detid