11 int det) : hdcons_(hdcons) {
45 << cells_ <<
" cells and total channels " 63 int type = (
id.iType > 0) ? 1 : 0;
64 idx = (uint32_t)(((
id.zSide > 0) ?
kHGhalf_ : 0) +
69 <<
":" <<
id.iSec1 <<
":" <<
id.iCell1
70 <<
":" <<
id.iType <<
" Constants " 76 idx = (uint32_t)(((
id.zSide > 0) ?
kHGhalf_ : 0) +
78 id.iSec1-1)*
types_+
id.iType));
81 <<
":" <<
id.iSec1 <<
":" <<
id.iCell1
82 <<
":" <<
id.iType <<
" Constants " 88 idx = (uint32_t)(((
id.zSide > 0) ?
kHGhalf_ : 0) +
94 <<
":" <<
id.iSec1 <<
":" <<
id.iSec2 <<
":" 95 <<
id.iCell1 <<
":" <<
id.iCell2 <<
":" 114 id.iType = (type == 0 ? -1 : 1);
120 <<
":" <<
id.iLay <<
":" <<
id.iType
121 <<
":" <<
id.iSec1 <<
":" <<
id.iCell1;
131 <<
":" <<
id.iLay <<
":" <<
id.iType
132 <<
":" <<
id.iSec1 <<
":" <<
id.iCell1;
145 id.iCell1 = (di-
id.iCell2)/
cellMax_;
148 <<
":" <<
id.iLay <<
":" <<
id.iType
149 <<
":" <<
id.iSec1 <<
":" <<
id.iSec2
150 <<
":" <<
id.iCell1 <<
":" <<
id.iCell2;
163 idx = (uint32_t)(((
id.zSide > 0) ?
kHGeomHalf_ : 0) +
166 edm::LogVerbatim(
"HGCalGeom") <<
"Geom Hex I/P " <<
id.zSide <<
":" <<
id.iLay
167 <<
":" <<
id.iSec1 <<
":" <<
id.iType
173 idx = (uint32_t)(((
id.zSide > 0) ?
kHGeomHalf_ : 0) +
178 <<
id.iLay <<
":" <<
id.iSec1 <<
":" 179 <<
id.iCell1 <<
":" <<
id.iType <<
" Constants " 185 idx = (uint32_t)(((
id.zSide > 0) ?
kHGeomHalf_ : 0) +
190 <<
id.iLay <<
":" <<
id.iSec1 <<
":" 191 <<
id.iSec2 <<
":" <<
id.iType <<
" Constants " 207 id.iCell1 >= 0 &&
id.iCell1 <
cells_ &&
id.iLay > 0 &&
211 flag = ((idin.
det() ==
det_) &&
214 flag = ((idin.
det() ==
det_) &&
221 int nrStepsY )
const {
236 else return DetId(0);
250 id.iType = ((di-
id.iLay+1)/
layers_ == 0) ? -1 : 1;
253 <<
id.zSide <<
":" <<
id.iType <<
":" 254 <<
id.iLay <<
":" <<
id.iSec1;
265 <<
id.zSide <<
":" <<
id.iType <<
":" 266 <<
id.iLay <<
":" <<
id.iSec1 <<
":" 275 id.iType = (di-
id.iLay+1)/
layers_;
278 <<
id.zSide <<
":" <<
id.iType <<
":" 279 <<
id.iLay <<
":" <<
id.iSec1 <<
":" 295 idx.
iLay =
id.layer();
296 idx.
iSec1 =
id.wafer();
298 idx.
iType =
id.waferType();
299 idx.
zSide =
id.zside();
300 idx.
det =
id.subdetId();
305 idx.
iLay =
id.layer();
306 idx.
iSec1 =
id.ietaAbs();
308 idx.
iType =
id.type();
309 idx.
zSide =
id.zside();
310 idx.
det = (
int)(
id.subdet());
315 idx.
iLay =
id.layer();
316 idx.
iSec1 =
id.waferU();
317 idx.
iSec2 =
id.waferV();
318 idx.
iType =
id.type();
319 idx.
zSide =
id.zside();
320 idx.
det = (
int)(
id.subdet());
340 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