12 int det) : hdcons_(hdcons) {
51 << cells_ <<
" cells and total channels " 69 int type = (
id.iType > 0) ? 1 : 0;
70 idx = (uint32_t)(((
id.zSide > 0) ?
kHGhalf_ : 0) +
75 <<
":" <<
id.iSec1 <<
":" <<
id.iCell1
76 <<
":" <<
id.iType <<
" Constants " 82 idx = (uint32_t)(((
id.zSide > 0) ?
kHGhalf_ : 0) +
84 id.iSec1-1)*
types_+
id.iType));
87 <<
":" <<
id.iSec1 <<
":" <<
id.iCell1
88 <<
":" <<
id.iType <<
" Constants " 94 idx = (uint32_t)(((
id.zSide > 0) ?
kHGhalf_ : 0) +
100 <<
":" <<
id.iSec1 <<
":" <<
id.iSec2 <<
":" 101 <<
id.iCell1 <<
":" <<
id.iCell2 <<
":" 120 id.iType = (type == 0 ? -1 : 1);
126 <<
":" <<
id.iLay <<
":" <<
id.iType
127 <<
":" <<
id.iSec1 <<
":" <<
id.iCell1;
137 <<
":" <<
id.iLay <<
":" <<
id.iType
138 <<
":" <<
id.iSec1 <<
":" <<
id.iCell1;
151 id.iCell1 = (di-
id.iCell2)/
cellMax_;
154 <<
":" <<
id.iLay <<
":" <<
id.iType
155 <<
":" <<
id.iSec1 <<
":" <<
id.iSec2
156 <<
":" <<
id.iCell1 <<
":" <<
id.iCell2;
169 idx = (uint32_t)(((
id.zSide > 0) ?
kHGeomHalf_ : 0) +
173 <<
id.iLay <<
":" <<
id.iSec1 <<
":" 179 idx = (uint32_t)(((
id.zSide > 0) ?
kHGeomHalf_ : 0) +
184 <<
id.iLay <<
":" <<
id.iSec1 <<
":" 185 <<
id.iCell1 <<
":" <<
id.iType
192 idx = (uint32_t)(((
id.zSide > 0) ?
kHGeomHalf_ : 0) +
197 <<
id.iLay <<
":" <<
id.iSec1 <<
":" 198 <<
id.iSec2 <<
":" <<
id.iType
214 id.iCell1 >= 0 &&
id.iCell1 <
cells_ &&
id.iLay > 0 &&
218 flag = ((idin.
det() ==
det_) &&
221 flag = ((idin.
det() ==
det_) &&
228 int nrStepsY )
const {
243 else return DetId(0);
257 id.iType = ((di-
id.iLay+1)/
layers_ == 0) ? -1 : 1;
260 <<
id.zSide <<
":" <<
id.iType <<
":" 261 <<
id.iLay <<
":" <<
id.iSec1;
272 <<
id.zSide <<
":" <<
id.iType <<
":" 273 <<
id.iLay <<
":" <<
id.iSec1 <<
":" 282 id.iType = (di-
id.iLay+1)/
layers_;
285 <<
id.zSide <<
":" <<
id.iType <<
":" 286 <<
id.iLay <<
":" <<
id.iSec1 <<
":" 302 idx.
iLay =
id.layer();
303 idx.
iSec1 =
id.wafer();
305 idx.
iType =
id.waferType();
306 idx.
zSide =
id.zside();
307 idx.
det =
id.subdetId();
312 idx.
iLay =
id.layer();
313 idx.
iSec1 =
id.ietaAbs();
315 idx.
iType =
id.type();
316 idx.
zSide =
id.zside();
317 idx.
det = (
int)(
id.subdet());
322 idx.
iLay =
id.layer();
323 idx.
iSec1 =
id.waferU();
324 idx.
iSec2 =
id.waferV();
325 idx.
iType =
id.type();
326 idx.
zSide =
id.zside();
327 idx.
det = (
int)(
id.subdet());
332 idx.
iLay =
id.layer();
333 idx.
iSec1 =
id.waferU();
334 idx.
iSec2 =
id.waferV();
335 idx.
iType =
id.type();
336 idx.
zSide =
id.zside();
337 idx.
det = (
int)(
id.subdet());
359 int nrStepsY )
const {
bool isValidTrap(int lay, int ieta, int iphi) 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_
constexpr uint32_t rawId() const
get the raw id
DetId denseId2detId(uint32_t denseId) const override
bool isValidHex(int lay, int mod, int cell, bool reco) const
DetId offsetBy(const DetId startId, int nrStepsX, int nrStepsY) const
unsigned int totalGeomModules() const
unsigned int layers(bool reco) const
bool isValidHex8(int lay, int modU, int modV, int cellU, int cellV) const
virtual uint32_t detId2denseGeomId(const DetId &id) const
DetId encode(const DecodedDetId &id_) const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
uint32_t detId2denseId(const DetId &id) const override
Dense indexing.
HGCalGeometryMode::GeometryMode geomMode() const
DecodedDetId geomDenseId2decId(const uint32_t &hi) const
ForwardSubdetector subdet_
const HGCalDDDConstants & hdcons_
#define TYPELOOKUP_DATA_REG(_dataclass_)
DecodedDetId decode(const DetId &id) const
int numberCells(bool reco) const
DetId switchZSide(const DetId startId) const
unsigned int kSizeForDenseIndexing
bool valid(const DetId &id) const override
Is this a valid cell id.
HGCalTopology(const HGCalDDDConstants &hdcons, int subdet)
create a new Topology
int maxCells(bool reco) const
constexpr Detector det() const
get the detector field from this detid