8 bool half) : hdcons_(hdcons), subdet_(subdet),
18 <<
" having half-chamber flag " <<
half_ <<
" with " <<
sectors_
19 <<
" Sectors " << layers_ <<
" Layers " << cells_
28 int isubsec= (id_.
iSubSec > 0) ? 1 : 0;
42 id_.
iSubSec= (iSubSec == 0 ? -1 : 1);
72 int nrStepsY )
const {
76 if (
valid(
id))
return id.rawId();
87 if (
valid(
id))
return id.rawId();
99 id_.
iSubSec= (iSubSec == 0 ? -1 : 1);
111 id_.
iCell =
id.cell();
112 id_.
iLay =
id.layer();
113 id_.
iSec =
id.sector();
115 id_.
zside =
id.zside();
116 id_.
subdet =
id.subdetId();
119 id_.
iCell =
id.cell();
120 id_.
iLay =
id.layer();
121 id_.
iSec =
id.sector();
123 id_.
zside =
id.zside();
124 id_.
subdet =
id.subdetId();
131 int isubsec= (id_.
iSubSec > 0) ? 1 : 0;
142 int nrStepsY )
const {
149 id_.
iSec = (kcell.second > 0) ? kcell.second : -kcell.second;
150 id_.
iCell = kcell.first;
152 if (
valid(nextPoint))
return nextPoint;
153 else return DetId(0);
162 id_.
iLay = kcell.second;
163 id_.
iCell = kcell.first;
165 if (
valid(nextPoint))
return nextPoint;
166 else return DetId(0);
bool validHashIndex(uint32_t ix) 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_
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