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 <vector>
9 #include <iostream>
10 
12 
13  public:
16 
18  virtual ~EcalPreshowerTopology() { }
19 
22  {
23  }
24 
25 
27  virtual DetId goNorth(const DetId& id) const {
28  return incrementIy(ESDetId(id));
29  }
30  virtual std::vector<DetId> north(const DetId& id) const
31  {
32  ESDetId nextId= goNorth(id);
33  std::vector<DetId> vNeighborsDetId;
34  if (! (nextId==ESDetId(0)))
35  vNeighborsDetId.push_back(DetId(nextId.rawId()));
36  return vNeighborsDetId;
37  }
38 
40  virtual DetId goSouth(const DetId& id) const {
41  return decrementIy(ESDetId(id));
42  }
43  virtual std::vector<DetId> south(const DetId& id) const
44  {
45  ESDetId nextId= goSouth(id);
46  std::vector<DetId> vNeighborsDetId;
47  if (! (nextId==ESDetId(0)))
48  vNeighborsDetId.push_back(DetId(nextId.rawId()));
49  return vNeighborsDetId;
50  }
51 
53  virtual DetId goEast(const DetId& id) const {
54  return incrementIx(ESDetId(id));
55  }
56  virtual std::vector<DetId> east(const DetId& id) const
57  {
58  ESDetId nextId=goEast(id);
59  std::vector<DetId> vNeighborsDetId;
60  if (! (nextId==ESDetId(0)))
61  vNeighborsDetId.push_back(DetId(nextId.rawId()));
62  return vNeighborsDetId;
63  }
64 
66  virtual DetId goWest(const DetId& id) const {
67  return decrementIx(ESDetId(id));
68  }
69  virtual std::vector<DetId> west(const DetId& id) const
70  {
71  ESDetId nextId=goWest(id);
72  std::vector<DetId> vNeighborsDetId;
73  if (! (nextId==ESDetId(0)))
74  vNeighborsDetId.push_back(DetId(nextId.rawId()));
75  return vNeighborsDetId;
76  }
77 
78  virtual DetId goUp(const DetId& id) const {
79  return incrementIz(ESDetId(id));
80  }
81  virtual std::vector<DetId> up(const DetId& id) const
82  {
83  ESDetId nextId=goUp(id);
84  std::vector<DetId> vNeighborsDetId;
85  if (! (nextId==ESDetId(0)))
86  vNeighborsDetId.push_back(DetId(nextId.rawId()));
87  return vNeighborsDetId;
88  }
89 
90  virtual DetId goDown(const DetId& id) const {
91  return decrementIz(ESDetId(id));
92  }
93  virtual std::vector<DetId> down(const DetId& id) const
94  {
95  ESDetId nextId=goDown(id);
96  std::vector<DetId> vNeighborsDetId;
97  if (! (nextId==ESDetId(0)))
98  vNeighborsDetId.push_back(DetId(nextId.rawId()));
99  return vNeighborsDetId;
100  }
101 
102  private:
103 
105  ESDetId incrementIx(const ESDetId& id) const ;
106 
108  ESDetId decrementIx(const ESDetId& id) const ;
109 
111  ESDetId incrementIy(const ESDetId& id) const ;
112 
114  ESDetId decrementIy(const ESDetId& id) const;
115 
117  ESDetId incrementIz(const ESDetId& id) const;
118 
120  ESDetId decrementIz(const ESDetId& id) const;
121 
123 };
124 
125 #endif
126 
127 
128 
129 
130 
131 
ESDetId decrementIx(const ESDetId &id) const
move the nagivator to smaller ix
virtual DetId goEast(const DetId &id) const
move the Topology east (positive ix)
virtual std::vector< DetId > west(const DetId &id) const
virtual std::vector< DetId > north(const DetId &id) const
ESDetId decrementIz(const ESDetId &id) const
move the nagivator to smaller iz
virtual std::vector< DetId > east(const DetId &id) const
virtual DetId goUp(const DetId &id) const
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
virtual std::vector< DetId > south(const DetId &id) const
virtual std::vector< DetId > up(const DetId &id) const
virtual DetId goDown(const DetId &id) const
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
virtual DetId goNorth(const DetId &id) const
move the Topology north (increment iy)
EcalPreshowerTopology()
create a new Topology
virtual ~EcalPreshowerTopology()
virtual destructor
virtual DetId goSouth(const DetId &id) const
move the Topology south (decrement iy)
virtual DetId goWest(const DetId &id) const
move the Topology west (negative ix)
ESDetId incrementIy(const ESDetId &id) const
move the nagivator to larger iy
EcalPreshowerTopology(edm::ESHandle< CaloGeometry > theGeom)
create a new Topology from geometry
virtual std::vector< DetId > down(const DetId &id) const