CMS 3D CMS Logo

EcalPreshowerTopology.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_CALOTOPOLOGY_ECALPRESHOWERTOPOLOGY_H
2 #define GEOMETRY_CALOTOPOLOGY_ECALPRESHOWERTOPOLOGY_H 1
3 
8 #include <utility>
9 #include <vector>
10 #include <iostream>
11 
13 
14  public:
16  EcalPreshowerTopology() = default;
17 
19  ~EcalPreshowerTopology() override { }
20 
21 
23  DetId goNorth(const DetId& id) const override {
24  return incrementIy(ESDetId(id));
25  }
26  std::vector<DetId> north(const DetId& id) const override
27  {
28  ESDetId nextId= goNorth(id);
29  std::vector<DetId> vNeighborsDetId;
30  if (! (nextId==ESDetId(0)))
31  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
32  return vNeighborsDetId;
33  }
34 
36  DetId goSouth(const DetId& id) const override {
37  return decrementIy(ESDetId(id));
38  }
39  std::vector<DetId> south(const DetId& id) const override
40  {
41  ESDetId nextId= goSouth(id);
42  std::vector<DetId> vNeighborsDetId;
43  if (! (nextId==ESDetId(0)))
44  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
45  return vNeighborsDetId;
46  }
47 
49  DetId goEast(const DetId& id) const override {
50  return incrementIx(ESDetId(id));
51  }
52  std::vector<DetId> east(const DetId& id) const override
53  {
54  ESDetId nextId=goEast(id);
55  std::vector<DetId> vNeighborsDetId;
56  if (! (nextId==ESDetId(0)))
57  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
58  return vNeighborsDetId;
59  }
60 
62  DetId goWest(const DetId& id) const override {
63  return decrementIx(ESDetId(id));
64  }
65  std::vector<DetId> west(const DetId& id) const override
66  {
67  ESDetId nextId=goWest(id);
68  std::vector<DetId> vNeighborsDetId;
69  if (! (nextId==ESDetId(0)))
70  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
71  return vNeighborsDetId;
72  }
73 
74  DetId goUp(const DetId& id) const override {
75  return incrementIz(ESDetId(id));
76  }
77  std::vector<DetId> up(const DetId& id) const override
78  {
79  ESDetId nextId=goUp(id);
80  std::vector<DetId> vNeighborsDetId;
81  if (! (nextId==ESDetId(0)))
82  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
83  return vNeighborsDetId;
84  }
85 
86  DetId goDown(const DetId& id) const override {
87  return decrementIz(ESDetId(id));
88  }
89  std::vector<DetId> down(const DetId& id) const override
90  {
91  ESDetId nextId=goDown(id);
92  std::vector<DetId> vNeighborsDetId;
93  if (! (nextId==ESDetId(0)))
94  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
95  return vNeighborsDetId;
96  }
97 
98  private:
99 
101  ESDetId incrementIx(const ESDetId& id) const ;
102 
104  ESDetId decrementIx(const ESDetId& id) const ;
105 
107  ESDetId incrementIy(const ESDetId& id) const ;
108 
110  ESDetId decrementIy(const ESDetId& id) const;
111 
113  ESDetId incrementIz(const ESDetId& id) const;
114 
116  ESDetId decrementIz(const ESDetId& id) const;
117 };
118 
119 #endif
120 
121 
122 
123 
124 
125 
ESDetId decrementIx(const ESDetId &id) const
move the nagivator to smaller ix
~EcalPreshowerTopology() override
virtual destructor
DetId goSouth(const DetId &id) const override
move the Topology south (decrement iy)
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
std::vector< DetId > west(const DetId &id) const override
ESDetId decrementIz(const ESDetId &id) const
move the nagivator to smaller iz
EcalPreshowerTopology()=default
create a new Topology
DetId goEast(const DetId &id) const override
move the Topology east (positive ix)
std::vector< DetId > south(const DetId &id) const override
std::vector< DetId > down(const DetId &id) const override
DetId goNorth(const DetId &id) const override
move the Topology north (increment iy)
ESDetId incrementIx(const ESDetId &id) const
move the nagivator to larger ix
Definition: DetId.h:18
ESDetId incrementIz(const ESDetId &id) const
move the nagivator to larger iz
ESDetId decrementIy(const ESDetId &id) const
move the nagivator to smaller iy
DetId goUp(const DetId &id) const override
DetId goWest(const DetId &id) const override
move the Topology west (negative ix)
std::vector< DetId > east(const DetId &id) const override
DetId goDown(const DetId &id) const override
std::vector< DetId > north(const DetId &id) const override
ESDetId incrementIy(const ESDetId &id) const
move the nagivator to larger iy
std::vector< DetId > up(const DetId &id) const override