8 bool half) : hdcons_(hdcons), subdet_(subdet),
24 <<
" having half-chamber flag " <<
half_ <<
" with " <<
sectors_ 34 return (
unsigned int)(
n);
40 int isubsec= (id_.
iSubSec > 0) ? 1 : 0;
61 id_.
iSubSec= (iSubSec == 0 ? -1 : 1);
88 <<
":" << isubsec <<
" Constants " <<
kHGeomHalf_ <<
":" 113 int nrStepsY )
const {
140 id_.
iSubSec= (iSubSec == 0 ? -1 : 1);
157 id_.
iCell =
id.cell();
158 id_.
iLay =
id.layer();
159 id_.
iSec =
id.wafer();
161 id_.
zside =
id.zside();
162 id_.
subdet =
id.subdetId();
165 id_.
iCell =
id.cell();
166 id_.
iLay =
id.layer();
167 id_.
iSec =
id.sector();
169 id_.
zside =
id.zside();
170 id_.
subdet =
id.subdetId();
173 id_.
iCell =
id.cell();
174 id_.
iLay =
id.layer();
175 id_.
iSec =
id.sector();
177 id_.
zside =
id.zside();
178 id_.
subdet =
id.subdetId();
185 int isubsec= (id_.
iSubSec > 0) ? 1 : 0;
199 int nrStepsY )
const {
206 id_.
iSec = (kcell.second > 0) ? kcell.second : -kcell.second;
207 id_.
iCell = kcell.first;
209 if (
valid(nextPoint))
return nextPoint;
210 else return DetId(0);
219 id_.
iLay = kcell.second;
220 id_.
iCell = kcell.first;
222 if (
valid(nextPoint))
return nextPoint;
223 else return DetId(0);
bool isValid(int lay, int mod, int cell, bool reco) const
bool validHashIndex(uint32_t ix) const
unsigned int allGeomModules() const
DetId changeXY(const DetId &id, int nrStepsX, int nrStepsY) const
move the nagivator along x, y
DetId changeZ(const DetId &id, int nrStepsZ) const
move the nagivator along z
HGCalGeometryMode::GeometryMode mode_
DetId denseId2detId(uint32_t denseId) const override
DetId offsetBy(const DetId startId, int nrStepsX, int nrStepsY) const
uint32_t rawId() const
get the raw id
HGCalTopology(const HGCalDDDConstants &hdcons, ForwardSubdetector subdet, bool halfChamber)
create a new Topology
unsigned int totalGeomModules() const
unsigned int layers(bool reco) const
virtual uint32_t detId2denseGeomId(const DetId &id) const
DetId encode(const DecodedDetId &id_) const
static const int subSectors_
Use subSector in square mode as wafer type in hexagon mode.
uint32_t detId2denseId(const DetId &id) const override
Dense indexing.
HGCalGeometryMode::GeometryMode geomMode() const
DecodedDetId geomDenseId2decId(const uint32_t &hi) const
ForwardSubdetector subdet_
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
const HGCalDDDConstants & hdcons_
#define TYPELOOKUP_DATA_REG(_dataclass_)
DecodedDetId decode(const DetId &id) const
DetId switchZSide(const DetId startId) const
std::pair< int, int > newCell(int cell, int layer, int sector, int subsector, int incrx, int incry, bool half) const
unsigned int kSizeForDenseIndexing
bool valid(const DetId &id) const override
Is this a valid cell id.
Detector det() const
get the detector field from this detid
int maxCells(bool reco) const