32 std::vector<DetId> ids =
north(idin);
33 for (
const auto&
id :
south(idin))
35 for (
const auto&
id :
east(idin))
37 for (
const auto&
id :
west(idin))
50 id.iType = (
type == 0 ? -1 : 1);
55 edm::LogVerbatim(
"HGCalGeom") <<
"Input Hex " <<
hi <<
" o/p " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iType
56 <<
":" <<
id.iSec1 <<
":" <<
id.iCell1;
64 int type = (
id.iType > 0) ? 1 : 0;
66 static_cast<uint32_t
>(((
id.zSide > 0) ?
kHGhalfType_ : 0) +
69 edm::LogVerbatim(
"HGCalGeom") <<
"Input Hex " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iSec1 <<
":" <<
id.iCell1
81 edm::LogVerbatim(
"HGCalGeom") <<
"Geom Hex I/P " <<
id.zSide <<
":" <<
id.iLay <<
":" <<
id.iSec1 <<
":" <<
id.iType
91 id.iLay > 0 &&
id.iLay <=
layers_ &&
id.iSec1 >= 0 &&
id.iSec1 <=
sectors_);
124 id.iType = ((di -
id.iLay + 1) /
layers_ == 0) ? -1 : 1;
126 edm::LogVerbatim(
"HGCalGeom") <<
"Geom Hex I/P " <<
hi <<
" O/P " <<
id.zSide <<
":" <<
id.iType <<
":" <<
id.iLay
136 idx.iCell1 =
id.cell();
138 idx.iLay =
id.layer();
139 idx.iSec1 =
id.wafer();
141 idx.iType =
id.waferType();
142 idx.zSide =
id.zside();
143 idx.det =
id.subdetId();
151 <<
":" <<
idx.iSec1 <<
":" <<
idx.iSec2 <<
":" <<
idx.iCell1 <<
":" <<
idx.iCell2;
unsigned int totalGeomModules() const
Log< level::Info, true > LogVerbatim
unsigned int kSizeForDenseIndexing
HGCalTBTopology(const HGCalTBDDDConstants *hdcons, int subdet)
create a new Topology
DetId changeXY(const DetId &id, int nrStepsX, int nrStepsY) const
move the nagivator along x, y
DetId encode(const DecodedDetId &id_) const
std::vector< DetId > north(const DetId &id) const override
std::vector< DetId > neighbors(DetId id) const
constexpr Detector det() const
get the detector field from this detid
DecodedDetId geomDenseId2decId(const uint32_t &hi) const
std::vector< DetId > west(const DetId &id) const override
uint32_t detId2denseId(const DetId &id) const override
return a linear packed id
~HGCalTBTopology() override
default destructor
DetId switchZSide(const DetId startId) const
DetId denseId2detId(uint32_t denseId) const override
Dense indexing.
bool validHashIndex(uint32_t ix) const
std::vector< DetId > east(const DetId &id) const override
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
DetId offsetBy(const DetId startId, int nrStepsX, int nrStepsY) const
const HGCalTBDDDConstants * hdcons_
DecodedDetId decode(const DetId &id) const
ForwardSubdetector subdet_
constexpr uint32_t rawId() const
get the raw id
bool valid(const DetId &id) const override
Is this a valid cell id.
virtual uint32_t detId2denseGeomId(const DetId &id) const
std::vector< DetId > south(const DetId &id) const override
unsigned int allGeomModules() const
HGCalGeometryMode::GeometryMode mode_
unsigned int layers(bool reco) const
#define TYPELOOKUP_DATA_REG(_dataclass_)
HGCalGeometryMode::GeometryMode geomMode() const
bool isValidHex(int lay, int mod, int cell, bool reco) const
int maxCells(bool reco) const
DetId changeZ(const DetId &id, int nrStepsZ) const
move the nagivator along z