CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EcalPreshowerTopology.cc
Go to the documentation of this file.
3 #include <stdexcept>
4 
5 ESDetId EcalPreshowerTopology::incrementIy(const ESDetId& id) const {
6  if (!(*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(id))
7  {
8  return ESDetId(0);
9  }
10 
11  ESDetId nextPoint;
12  //Strips orientend along x direction for plane 2
13  if (id.plane() == 2)
14  {
15  if (id.strip() < 32 )
16  {
17  //Incrementing just strip number
18  if (ESDetId::validDetId(id.strip()+1,id.six(),id.siy(),id.plane(),id.zside()))
19  nextPoint=ESDetId(id.strip()+1,id.six(),id.siy(),id.plane(),id.zside());
20  else
21  return ESDetId(0);
22  }
23  else
24  {
25  //Changing wafer
26  if (ESDetId::validDetId(1,id.six(),id.siy()+1,id.plane(),id.zside()))
27  nextPoint=ESDetId(1,id.six(),id.siy()+1,id.plane(),id.zside());
28  else
29  return ESDetId(0);
30  }
31  }
32  //Strips orientend along y direction for plane 1
33  else if (id.plane() == 1)
34  {
35  //Changing wafer
36  if (ESDetId::validDetId(id.strip(),id.six(),id.siy()+1,id.plane(),id.zside()))
37  nextPoint=ESDetId(id.strip(),id.six(),id.siy()+1,id.plane(),id.zside());
38  else
39  return ESDetId(0);
40  }
41  else
42  return ESDetId(0);
43 
44  if ((*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(nextPoint))
45  return nextPoint;
46  else
47  return ESDetId(0);
48 }
49 
50 
51 ESDetId EcalPreshowerTopology::decrementIy(const ESDetId& id) const {
52  if (!(*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(id))
53  {
54  return ESDetId(0);
55  }
56  ESDetId nextPoint;
57  //Strips orientend along x direction for plane 2
58  if (id.plane() == 2)
59  {
60  if (id.strip() >1 )
61  {
62  //Decrementing just strip number
63  if (ESDetId::validDetId(id.strip()-1,id.six(),id.siy(),id.plane(),id.zside()))
64  nextPoint=ESDetId(id.strip()-1,id.six(),id.siy(),id.plane(),id.zside());
65  else
66  return ESDetId(0);
67  }
68  else
69  {
70  //Changing wafer
71  if (ESDetId::validDetId(32,id.six(),id.siy()-1,id.plane(),id.zside()))
72  nextPoint=ESDetId(32,id.six(),id.siy()-1,id.plane(),id.zside());
73  else
74  return ESDetId(0);
75  }
76  }
77  //Strips orientend along y direction for plane 1
78  else if (id.plane() == 1)
79  {
80  //Changing wafer
81  if (ESDetId::validDetId(id.strip(),id.six(),id.siy()-1,id.plane(),id.zside()))
82  nextPoint=ESDetId(id.strip(),id.six(),id.siy()-1,id.plane(),id.zside());
83  else
84  return ESDetId(0);
85  }
86  else
87  return ESDetId(0);
88 
89  if ((*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(nextPoint))
90  return nextPoint;
91  else
92  return ESDetId(0);
93 }
94 
95 
96 ESDetId EcalPreshowerTopology::incrementIx(const ESDetId& id) const {
97 
98  if (!(*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(id))
99  {
100  return ESDetId(0);
101  }
102  ESDetId nextPoint;
103 
104  //Strips orientend along x direction for plane 2
105  if (id.plane() == 2)
106  {
107  //Changing wafer
108  if (ESDetId::validDetId(id.strip(),id.six()+1,id.siy(),id.plane(),id.zside()))
109  nextPoint=ESDetId(id.strip(),id.six()+1,id.siy(),id.plane(),id.zside());
110  else
111  return ESDetId(0);
112  }
113  //Strips orientend along y direction for plane 1
114  else if (id.plane() == 1)
115  {
116  if (id.strip() < 32 )
117  {
118  //Incrementing just strip number
119  if (ESDetId::validDetId(id.strip()+1,id.six(),id.siy(),id.plane(),id.zside()))
120  nextPoint=ESDetId(id.strip()+1,id.six(),id.siy(),id.plane(),id.zside());
121  else
122  return ESDetId(0);
123  }
124  else
125  {
126  //Changing wafer
127  if (ESDetId::validDetId(1,id.six()+1,id.siy(),id.plane(),id.zside()))
128  nextPoint=ESDetId(1,id.six()+1,id.siy(),id.plane(),id.zside());
129  else
130  return ESDetId(0);
131  }
132  }
133  else
134  return ESDetId(0);
135 
136  if ((*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(nextPoint))
137  return nextPoint;
138  else
139  return ESDetId(0);
140 }
141 
142 
143 ESDetId EcalPreshowerTopology::decrementIx(const ESDetId& id) const {
144 
145  if (!(*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(id))
146  {
147  return ESDetId(0);
148  }
149  ESDetId nextPoint;
150  //Strips orientend along x direction for plane 2
151  if (id.plane() == 2)
152  {
153  //Changing wafer
154  if (ESDetId::validDetId(id.strip(),id.six()-1,id.siy(),id.plane(),id.zside()))
155  nextPoint=ESDetId(id.strip(),id.six()-1,id.siy(),id.plane(),id.zside());
156  else
157  return ESDetId(0);
158  }
159  //Strips orientend along y direction for plane 1
160  else if (id.plane() == 1)
161  {
162  if (id.strip() > 1 )
163  {
164  //Decrementing just strip number
165  if (ESDetId::validDetId(id.strip()-1,id.six(),id.siy(),id.plane(),id.zside()))
166  nextPoint=ESDetId(id.strip()-1,id.six(),id.siy(),id.plane(),id.zside());
167  else
168  return ESDetId(0);
169  }
170  else
171  {
172  //Changing wafer
173  if (ESDetId::validDetId(32,id.six()-1,id.siy(),id.plane(),id.zside()))
174  nextPoint=ESDetId(32,id.six()-1,id.siy(),id.plane(),id.zside());
175  else
176  return ESDetId(0);
177  }
178  }
179  else
180  return ESDetId(0);
181 
182  if ((*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(nextPoint))
183  return nextPoint;
184  else
185  return ESDetId(0);
186 }
187 
188 
189 ESDetId EcalPreshowerTopology::incrementIz(const ESDetId& id) const {
190 
191  if (!(*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(id))
192  {
193  return ESDetId(0);
194  }
195  ESDetId nextPoint;
196  if (ESDetId::validDetId(id.strip(),id.six(),id.siy(),id.plane()+1,id.zside()))
197  nextPoint=ESDetId(id.strip(),id.six(),id.siy(),id.plane()+1,id.zside());
198  else
199  return ESDetId(0);
200 
201  if ((*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(nextPoint))
202  return nextPoint;
203  else
204  return ESDetId(0);
205 }
206 
207 
208 
209 ESDetId EcalPreshowerTopology::decrementIz(const ESDetId& id) const {
210 
211  if (!(*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(id))
212  {
213  return ESDetId(0);
214  }
215  ESDetId nextPoint;
216  if (ESDetId::validDetId(id.strip(),id.six(),id.siy(),id.plane()-1,id.zside()))
217  nextPoint=ESDetId(id.strip(),id.six(),id.siy(),id.plane()-1,id.zside());
218  else
219  return ESDetId(0);
220 
221  if ((*theGeom_).getSubdetectorGeometry(DetId::Ecal,EcalPreshower)->present(nextPoint))
222  return nextPoint;
223  else
224  return ESDetId(0);
225 }
226 
227 
228 
229 
230 
231 
232 
int zside(DetId const &)
static bool validDetId(int istrip, int ixs, int iys, int iplane, int iz)
check if a valid index combination
Definition: ESDetId.cc:34