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 {
117 if (
valid(
id))
return id;
128 if (
valid(
id))
return id;
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
DetId offsetBy(const DetId startId, int nrStepsX, int nrStepsY) const
virtual uint32_t detId2denseId(const DetId &id) const
Dense indexing.
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
virtual bool valid(const DetId &id) const
Is this a valid cell id.
static const int subSectors_
Use subSector in square mode as wafer type in hexagon mode.
HGCalGeometryMode 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
virtual DetId denseId2detId(uint32_t denseId) 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
Detector det() const
get the detector field from this detid
int maxCells(bool reco) const