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);
108 int nrStepsY )
const {
112 if (
valid(
id))
return id.rawId();
123 if (
valid(
id))
return id.rawId();
135 id_.
iSubSec= (iSubSec == 0 ? -1 : 1);
151 id_.
iCell =
id.cell();
152 id_.
iLay =
id.layer();
153 id_.
iSec =
id.wafer();
155 id_.
zside =
id.zside();
156 id_.
subdet =
id.subdetId();
159 id_.
iCell =
id.cell();
160 id_.
iLay =
id.layer();
161 id_.
iSec =
id.sector();
163 id_.
zside =
id.zside();
164 id_.
subdet =
id.subdetId();
167 id_.
iCell =
id.cell();
168 id_.
iLay =
id.layer();
169 id_.
iSec =
id.sector();
171 id_.
zside =
id.zside();
172 id_.
subdet =
id.subdetId();
179 int isubsec= (id_.
iSubSec > 0) ? 1 : 0;
192 int nrStepsY )
const {
199 id_.
iSec = (kcell.second > 0) ? kcell.second : -kcell.second;
200 id_.
iCell = kcell.first;
202 if (
valid(nextPoint))
return nextPoint;
203 else return DetId(0);
212 id_.
iLay = kcell.second;
213 id_.
iCell = kcell.first;
215 if (
valid(nextPoint))
return nextPoint;
216 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
tuple idx
DEBUGGING if hasattr(process,"trackMonIterativeTracking2012"): print "trackMonIterativeTracking2012 D...
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