CMS 3D CMS Logo

EcalTBHodoscopeGeometry.cc
Go to the documentation of this file.
3 
5 
7  m_cellVec( nPlanes_*nFibres_ )
8 {
9 }
10 
12 {
13 }
14 
15 float
16 EcalTBHodoscopeGeometry::getFibreLp( int plane, int fibre )
17 {
18  if( plane < nPlanes_ &&
19  fibre < nFibres_ )
20  {
21  return fibrePos_[ plane ][ fibre ].lp ;
22  }
23  else
24  {
25  return -99999. ;
26  }
27 }
28 
29 float
30 EcalTBHodoscopeGeometry::getFibreRp( int plane, int fibre )
31 {
32  if( plane < nPlanes_ &&
33  fibre < nFibres_ )
34  {
35  return fibrePos_[ plane ][ fibre ].rp ;
36  }
37  else
38  {
39  return -99999.;
40  }
41 }
42 
43 int
45 {
46  return nPlanes_;
47 }
48 
49 int
51 {
52  return nFibres_;
53 }
54 
55 void
57  const GlobalPoint& f2 ,
58  const GlobalPoint& f3 ,
59  const CCGFloat* parm ,
60  const DetId& detId )
61 {
62  const HodoscopeDetId hid ( detId ) ;
63 
64  const unsigned int cellIndex ( hid.denseIndex() ) ;
65 
66  m_cellVec[ cellIndex ] = PreshowerStrip( f1, cornersMgr(), parm ) ;
67  addValidID( detId ) ;
68 }
69 
72  {
73  {
74  // Position is in mm
75  // FIBRES POSITIONS
76  //
77  // - PLANE 0 -
78  // transverse with respect beam axis
79 
80  {-16.326,-15.367}, // fibre33
81  {-15.849,-14.889}, // fibre1
82  {-15.326,-14.368}, // fibre34
83  {-14.845,-13.886}, // fibre2
84  {-14.326,-13.367}, // fibre35
85  {-13.843,-12.887}, // fibre3
86  {-13.323,-12.366}, // fibre36
87  {-12.845,-11.883}, // fibre4
88  {-12.322,-11.361}, // fibre37
89  {-11.841,-10.882}, // fibre5
90  {-11.319,-10.359}, // fibre38
91  {-10.836,-9.876}, // fibre6
92  {-10.318,-9.359}, // fibre39
93  {-9.831,-8.873}, // fibre7
94  {-9.318,-8.357}, // fibre40
95  {-8.83,-7.869}, // fibre8
96  {-8.316,-7.359}, // fibre41
97  {-7.826,-6.871}, // fibre9
98  {-7.317,-6.359}, // fibre42
99  {-6.822,-5.867}, // fibre10
100  {-6.32,-5.356}, // fibre43
101  {-5.824,-4.87}, // fibre11
102  {-5.315,-4.357}, // fibre44
103  {-4.824,-3.866}, // fibre12
104  {-4.316,-3.361}, // fibre45
105  {-3.821,-2.867}, // fibre13
106  {-3.318,-2.362}, // fibre46
107  {-2.826,-1.867}, // fibre14
108  {-2.319,-1.354}, // fibre47
109  {-1.825,-0.864}, // fibre15
110  {-1.313,-0.351}, // fibre48
111  {-0.825,0.136}, // fibre16
112  {-0.31,0.653}, // fibre49
113  {0.177,1.135}, // fibre17
114  {0.696,1.653}, // fibre50
115  {1.176,2.137}, // fibre18
116  {1.695,2.652}, // fibre51
117  {2.179,3.138}, // fibre19
118  {2.694,3.651}, // fibre52
119  {3.178,4.136}, // fibre20
120  {3.692,4.648}, // fibre53
121  {4.179,5.134}, // fibre21
122  {4.689,5.651}, // fibre54
123  {5.177,6.133}, // fibre22
124  {5.697,6.649}, // fibre55
125  {6.17,7.134}, // fibre23
126  {6.69,7.651}, // fibre56
127  {7.176,8.134}, // fibre24
128  {7.688,8.652}, // fibre57
129  {8.172,9.138}, // fibre25
130  {8.691,9.654}, // fibre58
131  {9.178,10.13}, // fibre26
132  {9.693,10.655}, // fibre59
133  {10.173,11.132}, // fibre27
134  {10.697,11.66}, // fibre60
135  {11.172,12.129}, // fibre28
136  {11.701,12.653}, // fibre61
137  {12.17,13.128}, // fibre29
138  {12.691,13.658}, // fibre62
139  {13.168,14.13}, // fibre30
140  {13.7,14.656}, // fibre63
141  {14.172,15.134}, // fibre31
142  {14.697,15.649}, // fibre64
143  {15.177,16.13} // fibre32
144  },
145  {
146  // FIBRES POSITIONS
147  //
148  // - PLANE 1 -
149  // transverse with respect beam axis
150 
151  {-16.175,-15.229}, // fibre33
152  {-15.719,-14.772}, // fibre1
153  {-15.185,-14.226}, // fibre34
154  {-14.727,-13.77}, // fibre2
155  {-14.184,-13.235}, // fibre35
156  {-13.727,-12.777}, // fibre3
157  {-13.192,-12.232}, // fibre36
158  {-12.733,-11.77}, // fibre4
159  {-12.191,-11.239}, // fibre37
160  {-11.736,-10.773}, // fibre5
161  {-11.195,-10.242}, // fibre38
162  {-10.735,-9.782}, // fibre6
163  {-10.198,-9.239}, // fibre39
164  {-9.738,-8.783}, // fibre7
165  {-9.206,-8.236}, // fibre40
166  {-8.739,-7.788}, // fibre8
167  {-8.211,-7.239}, // fibre41
168  {-7.74,-6.783}, // fibre9
169  {-7.215,-6.241}, // fibre42
170  {-6.743,-5.781}, // fibre10
171  {-6.207,-5.248}, // fibre43
172  {-5.74,-4.782}, // fibre11
173  {-5.207,-4.247}, // fibre44
174  {-4.743,-3.78}, // fibre12
175  {-4.217,-3.249}, // fibre45
176  {-3.746,-2.78}, // fibre13
177  {-3.214,-2.247}, // fibre46
178  {-2.746,-1.781}, // fibre14
179  {-2.214,-1.249}, // fibre47
180  {-1.742,-0.786}, // fibre15
181  {-1.209,-0.248}, // fibre48
182  {-0.744,0.207}, // fibre16
183  {-0.21,0.751}, // fibre49
184  {0.245,1.208}, // fibre17
185  {0.792,1.757}, // fibre50
186  {1.248,2.207}, // fibre18
187  {1.792,2.756}, // fibre51
188  {2.25,3.208}, // fibre19
189  {2.793,3.757}, // fibre52
190  {3.247,4.209}, // fibre20
191  {3.795,4.754}, // fibre53
192  {4.244,5.208}, // fibre21
193  {4.799,5.752}, // fibre54
194  {5.246,6.209}, // fibre22
195  {5.792,6.75}, // fibre55
196  {6.245,7.215}, // fibre23
197  {6.792,7.753}, // fibre56
198  {7.253,8.212}, // fibre24
199  {7.782,8.753}, // fibre57
200  {8.253,9.217}, // fibre25
201  {8.781,9.748}, // fibre58
202  {9.257,10.22}, // fibre26
203  {9.783,10.745}, // fibre59
204  {10.255,11.218}, // fibre27
205  {10.787,11.746}, // fibre60
206  {11.255,12.219}, // fibre28
207  {11.786,12.744}, // fibre61
208  {12.252,13.222}, // fibre29
209  {12.787,13.741}, // fibre62
210  {13.248,14.21}, // fibre30
211  {13.782,14.735}, // fibre63
212  {14.251,15.218}, // fibre31
213  {14.779,15.731}, // fibre64
214  {15.25,16.209} // fibre32
215  },
216  {
217  // FIBRES POSITIONS
218  //
219  // - PLANE 2 -
220  // transverse with respect beam axis
221 
222  {-16.256,-15.305}, // fibre33
223  {-15.774,-14.818}, // fibre1
224  {-15.264,-14.306}, // fibre34
225  {-14.776,-13.82}, // fibre2
226  {-14.267,-13.32}, // fibre35
227  {-13.779,-12.819}, // fibre3
228  {-13.277,-12.323}, // fibre36
229  {-12.778,-11.815}, // fibre4
230  {-12.286,-11.324}, // fibre37
231  {-11.776,-10.821}, // fibre5
232  {-11.285,-10.324}, // fibre38
233  {-10.779,-9.819}, // fibre6
234  {-10.283,-9.33}, // fibre39
235  {-9.778,-8.826}, // fibre7
236  {-9.284,-8.329}, // fibre40
237  {-8.779,-7.824}, // fibre8
238  {-8.288,-7.329}, // fibre41
239  {-7.785,-6.828}, // fibre9
240  {-7.29,-6.329}, // fibre42
241  {-6.785,-5.831}, // fibre10
242  {-6.289,-5.329}, // fibre43
243  {-5.789,-4.836}, // fibre11
244  {-5.289,-4.332}, // fibre44
245  {-4.791,-3.833}, // fibre12
246  {-4.289,-3.335}, // fibre45
247  {-3.791,-2.837}, // fibre13
248  {-3.294,-2.334}, // fibre46
249  {-2.796,-1.836}, // fibre14
250  {-2.292,-1.34}, // fibre47
251  {-1.792,-0.842}, // fibre15
252  {-1.299,-0.344}, // fibre48
253  {-0.8,0.158}, // fibre16
254  {-0.306,0.655}, // fibre49
255  {0.2,1.156}, // fibre17
256  {0.691,1.655}, // fibre50
257  {1.196,2.154}, // fibre18
258  {1.696,2.653}, // fibre51
259  {2.194,3.153}, // fibre19
260  {2.694,3.646}, // fibre52
261  {3.194,4.144}, // fibre20
262  {3.692,4.649}, // fibre53
263  {4.185,5.141}, // fibre21
264  {4.687,5.647}, // fibre54
265  {5.181,6.14}, // fibre22
266  {5.691,6.646}, // fibre55
267  {6.183,7.138}, // fibre23
268  {6.686,7.647}, // fibre56
269  {7.178,8.139}, // fibre24
270  {7.689,8.649}, // fibre57
271  {8.179,9.133}, // fibre25
272  {8.687,9.643}, // fibre58
273  {9.176,10.133}, // fibre26
274  {9.683,10.643}, // fibre59
275  {10.173,11.13}, // fibre27
276  {10.681,11.637}, // fibre60
277  {11.167,12.122}, // fibre28
278  {11.678,12.639}, // fibre61
279  {12.163,13.119}, // fibre29
280  {12.676,13.637}, // fibre62
281  {13.16,14.118}, // fibre30
282  {13.677,14.636}, // fibre63
283  {14.16,15.12}, // fibre31
284  {14.675,15.635}, // fibre64
285  {15.162,16.119} // fibre32
286  },
287  {
288  // FIBRES POSITIONS
289  //
290  // - PLANE 3 -
291  // transverse with respect beam axis
292 
293  {-16.225,-15.271}, // fibre33
294  {-15.74,-14.782}, // fibre1
295  {-15.227,-14.269}, // fibre34
296  {-14.74,-13.779}, // fibre2
297  {-14.227,-13.264}, // fibre35
298  {-13.738,-12.776}, // fibre3
299  {-13.223,-12.267}, // fibre36
300  {-12.734,-11.77}, // fibre4
301  {-12.234,-11.266}, // fibre37
302  {-11.728,-10.769}, // fibre5
303  {-11.226,-10.268}, // fibre38
304  {-10.73,-9.766}, // fibre6
305  {-10.228,-9.268}, // fibre39
306  {-9.726,-8.762}, // fibre7
307  {-9.228,-8.268}, // fibre40
308  {-8.72,-7.758}, // fibre8
309  {-8.227,-7.266}, // fibre41
310  {-7.713,-6.75}, // fibre9
311  {-7.224,-6.258}, // fibre42
312  {-6.707,-5.747}, // fibre10
313  {-6.22,-5.256}, // fibre43
314  {-5.703,-4.742}, // fibre11
315  {-5.217,-4.254}, // fibre44
316  {-4.703,-3.736}, // fibre12
317  {-4.211,-3.25}, // fibre45
318  {-3.697,-2.735}, // fibre13
319  {-3.208,-2.246}, // fibre46
320  {-2.696,-1.736}, // fibre14
321  {-2.205,-1.242}, // fibre47
322  {-1.696,-0.735}, // fibre15
323  {-1.201,-0.245}, // fibre48
324  {-0.695,0.267}, // fibre16
325  {-0.199,0.759}, // fibre49
326  {0.303,1.266}, // fibre17
327  {0.801,1.76}, // fibre50
328  {1.308,2.27}, // fibre18
329  {1.799,2.761}, // fibre51
330  {2.312,3.268}, // fibre19
331  {2.803,3.762}, // fibre52
332  {3.31,4.263}, // fibre20
333  {3.803,4.765}, // fibre53
334  {4.308,5.267}, // fibre21
335  {4.807,5.768}, // fibre54
336  {5.308,6.269}, // fibre22
337  {5.807,6.768}, // fibre55
338  {6.311,7.272}, // fibre23
339  {6.808,7.764}, // fibre56
340  {7.315,8.275}, // fibre24
341  {7.809,8.771}, // fibre57
342  {8.315,9.277}, // fibre25
343  {8.812,9.773}, // fibre58
344  {9.32,10.279}, // fibre26
345  {9.815,10.775}, // fibre59
346  {10.323,11.278}, // fibre27
347  {10.817,11.778}, // fibre60
348  {11.322,12.277}, // fibre28
349  {11.821,12.782}, // fibre61
350  {12.324,13.276}, // fibre29
351  {12.825,13.789}, // fibre62
352  {13.321,14.274}, // fibre30
353  {13.83,14.789}, // fibre63
354  {14.318,15.271}, // fibre31
355  {14.829,15.786}, // fibre64
356  {15.315,16.264} // fibre32
357  }
358  };
359 
360 std::vector<int>
362  int plane )
363 {
364  std::vector<int> firedFibres;
365 
366  if( plane > EcalTBHodoscopeGeometry::nPlanes_ ) return firedFibres;
367 
368  for( int i ( 0 ) ; i != nFibres_ ; ++i )
369  {
370  if( ( xtr >= fibrePos_[plane][i].lp ) &&
371  ( xtr <= fibrePos_[plane][i].rp ) ) firedFibres.emplace_back(i);
372  }
373  return firedFibres ;
374 }
375 
377  // Modify the RawPtr class
378  const CaloCellGeometry* cell(&m_cellVec[index]);
379  return (m_cellVec.size() < index ||
380  nullptr == cell->param() ? nullptr : cell);
381 }
CaloCellGeometry::CCGFloat CCGFloat
A base class to handle the shape of preshower strips.
static float getFibreLp(int plane, int fibre)
void newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId) override
const CCGFloat * param() const
CaloCellGeometry::CCGFloat CCGFloat
static std::vector< int > getFiredFibresInPlane(float xtr, int plane)
Definition: DetId.h:18
void addValidID(const DetId &id)
const CaloCellGeometry * getGeometryRawPtr(uint32_t index) const override
CaloCellGeometry::CornersMgr * cornersMgr()
static const fibre_pos fibrePos_[nPlanes_][nFibres_]
static float getFibreRp(int plane, int fibre)
uint32_t denseIndex() const
Definition: EBDetId.h:88