CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
mkfit::MaterialEffects Class Reference

#include <MaterialEffects.h>

Public Member Functions

int __attribute__ ((optimize("no-inline"))) getZbin(const float z) const
 
int __attribute__ ((optimize("no-inline"))) getRbin(const float r) const
 
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...
 
float getRlVal (const int zb, const int rb) const
 
float getXiVal (const int zb, const int rb) 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::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  }
constexpr float Xi[136]
constexpr float rangeZME
constexpr float Rl[136]
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 int nBinsZME
constexpr int nBinsRME
float mXigridME[Config::nBinsZME][Config::nBinsRME]
constexpr float rangeRME
float mRlgridME[Config::nBinsZME][Config::nBinsRME]

Member Function Documentation

◆ __attribute__() [1/2]

int mkfit::MaterialEffects::__attribute__ ( (optimize("no-inline"))  ) const
inline

Definition at line 22 of file MaterialEffects.h.

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

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

◆ __attribute__() [2/2]

int mkfit::MaterialEffects::__attribute__ ( (optimize("no-inline"))  ) const
inline

Definition at line 25 of file MaterialEffects.h.

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

25  {
26  return (r * Config::nBinsRME) / (Config::rangeRME);
27  }
constexpr int nBinsRME
constexpr float rangeRME

◆ getDetId()

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 33 of file MaterialEffects.h.

References funct::abs().

Referenced by MaterialEffects().

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

◆ getRlVal()

float mkfit::MaterialEffects::getRlVal ( const int  zb,
const int  rb 
) const
inline

Definition at line 28 of file MaterialEffects.h.

References mRlgridME.

28 { return mRlgridME[zb][rb]; }
float mRlgridME[Config::nBinsZME][Config::nBinsRME]

◆ getXiVal()

float mkfit::MaterialEffects::getXiVal ( const int  zb,
const int  rb 
) const
inline

Definition at line 29 of file MaterialEffects.h.

References mXigridME.

29 { return mXigridME[zb][rb]; }
float mXigridME[Config::nBinsZME][Config::nBinsRME]

Member Data Documentation

◆ mRlgridME

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

Definition at line 439 of file MaterialEffects.h.

Referenced by getRlVal(), and MaterialEffects().

◆ mXigridME

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

Definition at line 440 of file MaterialEffects.h.

Referenced by getXiVal(), and MaterialEffects().