1 #ifndef Geometry_CaloTopology_HGCalTBTopology_h 2 #define Geometry_CaloTopology_HGCalTBTopology_h 1 22 std::vector<DetId>
north(
const DetId&
id)
const override {
24 std::vector<DetId> vNeighborsDetId;
25 if (!(nextId ==
DetId(0)))
26 vNeighborsDetId.emplace_back(nextId);
27 return vNeighborsDetId;
32 std::vector<DetId>
south(
const DetId&
id)
const override {
34 std::vector<DetId> vNeighborsDetId;
35 if (!(nextId ==
DetId(0)))
36 vNeighborsDetId.emplace_back(nextId);
37 return vNeighborsDetId;
42 std::vector<DetId>
east(
const DetId&
id)
const override {
44 std::vector<DetId> vNeighborsDetId;
45 if (!(nextId ==
DetId(0)))
46 vNeighborsDetId.emplace_back(nextId);
47 return vNeighborsDetId;
52 std::vector<DetId>
west(
const DetId&
id)
const override {
54 std::vector<DetId> vNeighborsDetId;
55 if (!(nextId ==
DetId(0)))
56 vNeighborsDetId.emplace_back(nextId);
57 return vNeighborsDetId;
60 std::vector<DetId>
up(
const DetId&
id)
const override {
62 std::vector<DetId> vNeighborsDetId;
63 if (!(nextId ==
DetId(0)))
64 vNeighborsDetId.emplace_back(nextId);
65 return vNeighborsDetId;
68 std::vector<DetId>
down(
const DetId&
id)
const override {
70 std::vector<DetId> vNeighborsDetId;
71 if (!(nextId ==
DetId(0)))
72 vNeighborsDetId.emplace_back(nextId);
73 return vNeighborsDetId;
unsigned int totalGeomModules() const
std::vector< DetId > up(const DetId &id) const override
unsigned int kSizeForDenseIndexing
ForwardSubdetector subDetector() const
DetId goSouth(const DetId &id) const override
move the Topology south (decrement iy)
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
DetId goEast(const DetId &id) const override
move the Topology east (positive ix)
std::vector< DetId > neighbors(DetId id) const
static const int subSectors_
Use subSector in square mode as wafer type in hexagon mode.
DecodedDetId geomDenseId2decId(const uint32_t &hi) const
bool detectorType() 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
DetId offsetBy(const DetId startId, int nrStepsX, int nrStepsY) const
const HGCalTBDDDConstants * hdcons_
ALPAKA_FN_ACC ALPAKA_FN_INLINE uint32_t ix(uint32_t id)
DecodedDetId decode(const DetId &id) const
const HGCalTBDDDConstants & dddConstants() const
HGCalGeometryMode::GeometryMode geomMode() const
Geometry mode.
ForwardSubdetector subdet_
DetId goWest(const DetId &id) const override
move the Topology west (negative ix)
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 totalModules() const
unsigned int allGeomModules() const
std::vector< DetId > down(const DetId &id) const override
HGCalGeometryMode::GeometryMode mode_
DetId changeZ(const DetId &id, int nrStepsZ) const
move the nagivator along z
DetId::Detector detector() const
DetId goNorth(const DetId &id) const override
move the Topology north (increment iy)