CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Attributes
mkfit::MaterialEffects Class Reference

#include <MaterialEffects.h>

Public Member Functions

int getDetId (const float zin, const float r) const
 (z,r) grid to material bin/det mapping for Rad length (Rl) and Xi arrays More...
 
int getRbin (const float r) const
 
float getRlVal (const int zb, const int rb) const
 
float getXiVal (const int zb, const int rb) const
 
int getZbin (const float z) const
 
 MaterialEffects ()
 

Private Attributes

float mRlgridME [Config::nBinsZME][Config::nBinsRME]
 
float mXigridME [Config::nBinsZME][Config::nBinsRME]
 

Detailed Description

Definition at line 18 of file MaterialEffects.h.

Constructor & Destructor Documentation

MaterialEffects::MaterialEffects ( )

Definition at line 36 of file MaterialEffects.cc.

References getDetId(), mRlgridME, mXigridME, mkfit::Config::nBinsRME, mkfit::Config::nBinsZME, mkfit::Config::rangeRME, mkfit::Config::rangeZME, mkfit::Config::Rl, and mkfit::Config::Xi.

36  {
37  for (int zb = 0; zb < Config::nBinsZME; zb++) {
38  const float zbf = (zb * Config::rangeZME) / Config::nBinsZME;
39  for (int rb = 0; rb < Config::nBinsRME; rb++) {
40  const float rbf = (rb * Config::rangeRME) / Config::nBinsRME;
41  const int detid = getDetId(zbf, rbf);
42  mRlgridME[zb][rb] = (detid >= 0 ? Config::Rl[detid] : 0.f);
43  mXigridME[zb][rb] = (detid >= 0 ? Config::Xi[detid] : 0.f);
44  }
45  }
46  }
int getDetId(const float zin, const float r) const
(z,r) grid to material bin/det mapping for Rad length (Rl) and Xi arrays
constexpr float Xi[136]
constexpr float rangeZME
constexpr float Rl[136]
constexpr int nBinsZME
constexpr int nBinsRME
float mXigridME[Config::nBinsZME][Config::nBinsRME]
constexpr float rangeRME
float mRlgridME[Config::nBinsZME][Config::nBinsRME]

Member Function Documentation

int mkfit::MaterialEffects::getDetId ( const float  zin,
const float  r 
) const
inline

(z,r) grid to material bin/det mapping for Rad length (Rl) and Xi arrays

Definition at line 29 of file MaterialEffects.h.

References funct::abs().

Referenced by MaterialEffects().

29  {
30  const float z = std::abs(zin);
31 
32  //pixel
33  if (r < 17) {
34  //pixel barrel
35  if (z < 28) {
36  if (r < 4) {
37  if (z < 20)
38  return 0;
39  else
40  return 1;
41  }
42  if (r < 8) {
43  if (z < 20)
44  return 2;
45  else
46  return 3;
47  }
48  if (r < 12) {
49  if (z < 20)
50  return 4;
51  else
52  return 5;
53  }
54  if (z < 20)
55  return 6;
56  else
57  return 7;
58  }
59 
60  //pixel endcap
61  if (z < 36) {
62  if (r > 9.5 && z < 32.5)
63  return 8;
64  else
65  return 9;
66  }
67  if (z < 45) {
68  if (r > 9.5 && z < 40)
69  return 10;
70  else
71  return 11;
72  }
73  if (z >= 45) {
74  if (r > 9.5 && z < 49)
75  return 12;
76  else
77  return 13;
78  }
79  }
80 
81  //TIB & TID
82  if (r < 55) {
83  //TIB
84  if (z < 70) {
85  if (r < 29) {
86  if (z < 22)
87  return 14;
88  else
89  return 15;
90  }
91  if (r < 38) {
92  if (z < 25)
93  return 16;
94  else
95  return 17;
96  }
97  if (r < 46) {
98  if (z < 44)
99  return 18;
100  else
101  return 19;
102  }
103  if (z < 50)
104  return 20;
105  else
106  return 21;
107  }
108 
109  //TID
110  if (z > 70 && z < 120) {
111  if (r > 35 && z < 80)
112  return 22;
113  else if (z < 86)
114  return 23;
115  else if (r > 35 && z < 92)
116  return 24;
117  else if (z < 98)
118  return 25;
119  else if (r > 35 && z < 104)
120  return 26;
121  else
122  return 27;
123  }
124  }
125 
126  //TOB
127  if (r < 120 && z < 120) {
128  if (r < 65) {
129  if (z < 17)
130  return 28;
131  else if (z < 70)
132  return 29;
133  else
134  return 30;
135  }
136  if (r < 75) {
137  if (z < 17)
138  return 31;
139  else if (z < 70)
140  return 32;
141  else
142  return 33;
143  }
144  if (r < 82) {
145  if (z < 17)
146  return 34;
147  else if (z < 70)
148  return 35;
149  else
150  return 36;
151  }
152  if (r < 90) {
153  if (z < 17)
154  return 37;
155  else if (z < 70)
156  return 38;
157  else
158  return 39;
159  }
160  if (r < 100) {
161  if (z < 17)
162  return 40;
163  else if (z < 70)
164  return 41;
165  else
166  return 42;
167  }
168  if (z < 17)
169  return 43;
170  else if (z < 70)
171  return 44;
172  else
173  return 45;
174  }
175 
176  //TEC
177  if (z > 120 && r < 120) {
178  if (z < 128) {
179  if (r < 35)
180  return 46;
181  else if (r < 55)
182  return 47;
183  else if (r < 80)
184  return 48;
185  else
186  return 49;
187  }
188  if (z < 132) {
189  if (r < 45)
190  return 50;
191  else if (r < 70)
192  return 51;
193  else
194  return 52;
195  }
196  if (z < 136) {
197  if (r < 35)
198  return 53;
199  else if (r < 55)
200  return 54;
201  else if (r < 80)
202  return 55;
203  else
204  return 56;
205  }
206  if (z < 138) {
207  if (r < 45)
208  return 57;
209  else if (r < 70)
210  return 58;
211  else
212  return 59;
213  }
214  if (z < 142) {
215  if (r < 35)
216  return 60;
217  else if (r < 55)
218  return 61;
219  else if (r < 80)
220  return 62;
221  else
222  return 63;
223  }
224  if (z < 146) {
225  if (r < 45)
226  return 64;
227  else
228  return 65;
229  }
230  if (z < 150) {
231  if (r < 35)
232  return 66;
233  else if (r < 55)
234  return 67;
235  else if (r < 80)
236  return 68;
237  else
238  return 69;
239  }
240  if (z < 153) {
241  if (r < 45)
242  return 70;
243  else
244  return 71;
245  }
246  if (z < 156) {
247  if (r < 35)
248  return 72;
249  else if (r < 55)
250  return 73;
251  else if (r < 80)
252  return 74;
253  else
254  return 75;
255  }
256  if (z < 160) {
257  if (r < 45)
258  return 76;
259  else
260  return 77;
261  }
262  if (z < 164) {
263  if (r < 35)
264  return 78;
265  else if (r < 55)
266  return 79;
267  else if (r < 80)
268  return 80;
269  else
270  return 81;
271  }
272  if (z < 167) {
273  if (r < 45)
274  return 82;
275  else
276  return 83;
277  }
278 
279  if (z < 170) {
280  if (r < 55)
281  return 84;
282  else if (r < 80)
283  return 85;
284  else
285  return 86;
286  }
287  if (z < 174) {
288  if (r < 45)
289  return 87;
290  else
291  return 88;
292  }
293 
294  if (z < 177.3) {
295  if (r < 55)
296  return 89;
297  else if (r < 80)
298  return 90;
299  else
300  return 91;
301  }
302  if (z < 181) {
303  if (r < 45)
304  return 92;
305  else
306  return 93;
307  }
308 
309  if (z < 185) {
310  if (r < 55)
311  return 94;
312  else if (r < 80)
313  return 95;
314  else
315  return 96;
316  }
317  if (z < 188.5) {
318  if (r < 45)
319  return 97;
320  else
321  return 98;
322  }
323 
324  if (z < 192) {
325  if (r < 55)
326  return 99;
327  else if (r < 80)
328  return 100;
329  else
330  return 101;
331  }
332  if (z < 195) {
333  if (r < 45)
334  return 102;
335  else
336  return 103;
337  }
338 
339  if (z < 202) {
340  if (r < 55)
341  return 104;
342  else if (r < 80)
343  return 105;
344  else
345  return 106;
346  }
347  if (z < 206) {
348  if (r < 45)
349  return 107;
350  else
351  return 108;
352  }
353 
354  if (z < 210) {
355  if (r < 55)
356  return 109;
357  else if (r < 80)
358  return 110;
359  else
360  return 111;
361  }
362  if (z < 212) {
363  if (r < 45)
364  return 112;
365  else
366  return 113;
367  }
368 
369  if (z < 222) {
370  if (r < 55)
371  return 114;
372  else if (r < 80)
373  return 115;
374  else
375  return 116;
376  }
377  if (z < 224)
378  return 117;
379 
380  if (z < 228) {
381  if (r < 55)
382  return 118;
383  else if (r < 80)
384  return 119;
385  else
386  return 120;
387  }
388  if (z < 232)
389  return 121;
390 
391  if (z < 241) {
392  if (r < 55)
393  return 122;
394  else if (r < 80)
395  return 123;
396  else
397  return 124;
398  }
399  if (z < 245)
400  return 125;
401 
402  if (z < 248) {
403  if (r < 55)
404  return 126;
405  else if (r < 80)
406  return 127;
407  else
408  return 128;
409  }
410  if (z < 252)
411  return 129;
412 
413  if (z < 264) {
414  if (r < 80)
415  return 130;
416  else
417  return 131;
418  }
419  if (z < 267)
420  return 132;
421 
422  if (z < 270) {
423  if (r < 80)
424  return 133;
425  else
426  return 134;
427  }
428  if (z < 280)
429  return 135;
430  }
431  return -1;
432  }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int mkfit::MaterialEffects::getRbin ( const float  r) const
inline

Definition at line 23 of file MaterialEffects.h.

References mkfit::Config::nBinsRME, and mkfit::Config::rangeRME.

Referenced by mkfit::propagateHelixToRMPlex(), and mkfit::propagateHelixToZMPlex().

23 { return (r * Config::nBinsRME) / (Config::rangeRME); }
constexpr int nBinsRME
constexpr float rangeRME
float mkfit::MaterialEffects::getRlVal ( const int  zb,
const int  rb 
) const
inline

Definition at line 24 of file MaterialEffects.h.

References mRlgridME.

24 { return mRlgridME[zb][rb]; }
float mRlgridME[Config::nBinsZME][Config::nBinsRME]
float mkfit::MaterialEffects::getXiVal ( const int  zb,
const int  rb 
) const
inline

Definition at line 25 of file MaterialEffects.h.

References mXigridME.

25 { return mXigridME[zb][rb]; }
float mXigridME[Config::nBinsZME][Config::nBinsRME]
int mkfit::MaterialEffects::getZbin ( const float  z) const
inline

Definition at line 22 of file MaterialEffects.h.

References funct::abs(), mkfit::Config::nBinsZME, and mkfit::Config::rangeZME.

Referenced by mkfit::propagateHelixToRMPlex(), and mkfit::propagateHelixToZMPlex().

22 { return (std::abs(z) * Config::nBinsZME) / (Config::rangeZME); }
constexpr float rangeZME
constexpr int nBinsZME
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

Member Data Documentation

float mkfit::MaterialEffects::mRlgridME[Config::nBinsZME][Config::nBinsRME]
private

Definition at line 435 of file MaterialEffects.h.

Referenced by getRlVal(), and MaterialEffects().

float mkfit::MaterialEffects::mXigridME[Config::nBinsZME][Config::nBinsRME]
private

Definition at line 436 of file MaterialEffects.h.

Referenced by getXiVal(), and MaterialEffects().