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:
17 
19  ~EcalPreshowerTopology() override { }
20 
23  {
24  }
25 
26 
28  DetId goNorth(const DetId& id) const override {
29  return incrementIy(ESDetId(id));
30  }
31  std::vector<DetId> north(const DetId& id) const override
32  {
33  ESDetId nextId= goNorth(id);
34  std::vector<DetId> vNeighborsDetId;
35  if (! (nextId==ESDetId(0)))
36  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
37  return vNeighborsDetId;
38  }
39 
41  DetId goSouth(const DetId& id) const override {
42  return decrementIy(ESDetId(id));
43  }
44  std::vector<DetId> south(const DetId& id) const override
45  {
46  ESDetId nextId= goSouth(id);
47  std::vector<DetId> vNeighborsDetId;
48  if (! (nextId==ESDetId(0)))
49  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
50  return vNeighborsDetId;
51  }
52 
54  DetId goEast(const DetId& id) const override {
55  return incrementIx(ESDetId(id));
56  }
57  std::vector<DetId> east(const DetId& id) const override
58  {
59  ESDetId nextId=goEast(id);
60  std::vector<DetId> vNeighborsDetId;
61  if (! (nextId==ESDetId(0)))
62  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
63  return vNeighborsDetId;
64  }
65 
67  DetId goWest(const DetId& id) const override {
68  return decrementIx(ESDetId(id));
69  }
70  std::vector<DetId> west(const DetId& id) const override
71  {
72  ESDetId nextId=goWest(id);
73  std::vector<DetId> vNeighborsDetId;
74  if (! (nextId==ESDetId(0)))
75  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
76  return vNeighborsDetId;
77  }
78 
79  DetId goUp(const DetId& id) const override {
80  return incrementIz(ESDetId(id));
81  }
82  std::vector<DetId> up(const DetId& id) const override
83  {
84  ESDetId nextId=goUp(id);
85  std::vector<DetId> vNeighborsDetId;
86  if (! (nextId==ESDetId(0)))
87  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
88  return vNeighborsDetId;
89  }
90 
91  DetId goDown(const DetId& id) const override {
92  return decrementIz(ESDetId(id));
93  }
94  std::vector<DetId> down(const DetId& id) const override
95  {
96  ESDetId nextId=goDown(id);
97  std::vector<DetId> vNeighborsDetId;
98  if (! (nextId==ESDetId(0)))
99  vNeighborsDetId.emplace_back(DetId(nextId.rawId()));
100  return vNeighborsDetId;
101  }
102 
103  private:
104 
106  ESDetId incrementIx(const ESDetId& id) const ;
107 
109  ESDetId decrementIx(const ESDetId& id) const ;
110 
112  ESDetId incrementIy(const ESDetId& id) const ;
113 
115  ESDetId decrementIy(const ESDetId& id) const;
116 
118  ESDetId incrementIz(const ESDetId& id) const;
119 
121  ESDetId decrementIz(const ESDetId& id) const;
122 
124 };
125 
126 #endif
127 
128 
129 
130 
131 
132 
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)
std::vector< DetId > west(const DetId &id) const override
ESDetId decrementIz(const ESDetId &id) const
move the nagivator to smaller iz
#define nullptr
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
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
edm::ESHandle< CaloGeometry > theGeom_
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
EcalPreshowerTopology()
create a new Topology
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
EcalPreshowerTopology(edm::ESHandle< CaloGeometry > theGeom)
create a new Topology from geometry
std::vector< DetId > up(const DetId &id) const override
def move(src, dest)
Definition: eostools.py:510