CMS 3D CMS Logo

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