CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
EcalCrystalMatrixProbality.cc
Go to the documentation of this file.
2 
5 
6 template <>
8  double vEBCentral = 0.0;
9 
10  if (x <= 0.180) {
11  vEBCentral = 0.0;
12  } else if (0.180 < x && x <= 0.300) {
13  vEBCentral = (-3267.97 + 53882 * x - 298536 * x * x + 555872 * x * x * x) / 2.19773067484200601e+03;
14  } else if (0.300 < x && x <= 0.450) {
15  vEBCentral = (-35768.3 + 307852 * x - 892325 * x * x + 914708 * x * x * x) / 2.19773067484200601e+03;
16  } else if (0.450 < x && x <= 0.780) {
17  vEBCentral = (28483 - 113912 * x + 184167 * x * x - 99781.8 * x * x * x) / 2.19773067484200601e+03;
18  } else if (0.780 < x && x <= 0.845) {
19  vEBCentral =
20  (-2.49877e+07 + 9.18933e+07 * x - 1.12504e+08 * x * x + 4.58581e+07 * x * x * x) / 2.19773067484200601e+03;
21  } else if (0.845 < x) {
22  vEBCentral = 0.0;
23  } else {
24  vEBCentral = 0.0;
25  }
26 
27  return vEBCentral;
28 }
29 
30 template <>
32  double vEBDiagonal = 0.0;
33 
34  if (0.000 < x && x <= 0.010) {
35  vEBDiagonal = TMath::Landau(x, 7.02750e-03, 2.41060e-03, true) * 3.96033283438174431e+03 / 4.39962923475768821e+03;
36  } else if (0.010 < x && x <= 0.100) {
37  vEBDiagonal = TMath::Landau(x, 1.70472e-03, 2.47564e-03, true) * 8.34898553737588554e+03 / 4.39962923475768821e+03;
38  } else if (0.100 < x && x <= 0.350) {
39  vEBDiagonal = (18206.7 - 326578 * x + 2.44528e+06 * x * x - 9.27532e+06 * x * x * x + 1.75264e+07 * x * x * x * x -
40  1.30949e+07 * x * x * x * x * x) /
41  4.39962923475768821e+03;
42  } else if (0.350 < x) {
43  vEBDiagonal = 0.0;
44  } else {
45  vEBDiagonal = 0.0;
46  }
47 
48  return vEBDiagonal;
49 }
50 
51 template <>
53  double vEBUpDown = 0.0;
54 
55  if (0.000 < x && x <= 0.005) {
56  vEBUpDown = (28.5332 - 35350 * x + 4.28566e+07 * x * x - 2.02038e+10 * x * x * x + 3.56185e+12 * x * x * x * x) /
57  2.20315994559946967e+03;
58  } else if (0.005 < x && x <= 0.015) {
59  vEBUpDown = TMath::Landau(x, 1.51342e-02, 3.65756e-03, true) * 7.04501225670452641e+02 / 2.20315994559946967e+03;
60  } else if (0.015 < x && x <= 0.020) {
61  vEBUpDown = TMath::Landau(x, 1.52460e-02, 5.04539e-03, true) * 9.70980301933632518e+02 / 2.20315994559946967e+03;
62  } else if (0.020 < x && x <= 0.100) {
63  vEBUpDown = (62436.8 - 2.52677e+06 * x + 4.92704e+07 * x * x - 4.95769e+08 * x * x * x +
64  2.48261e+09 * x * x * x * x - 4.89172e+09 * x * x * x * x * x) /
65  2.20315994559946967e+03;
66  } else if (0.100 < x && x <= 0.430) {
67  vEBUpDown = (19976.7 - 265844 * x + 1.80629e+06 * x * x - 6.40378e+06 * x * x * x + 1.13017e+07 * x * x * x * x -
68  7.91581e+06 * x * x * x * x * x) /
69  2.20315994559946967e+03;
70  } else if (0.430 < x && x <= 0.453) {
71  vEBUpDown =
72  (-3.78481e+06 + 2.60128e+07 * x - 5.9519e+07 * x * x + 4.53408e+07 * x * x * x) / 2.20315994559946967e+03;
73  } else if (0.453 < x) {
74  vEBUpDown = 0.0;
75  } else {
76  vEBUpDown = 0.0;
77  }
78 
79  return vEBUpDown;
80 }
81 
82 template <>
84  double vEBReftRight = 0.0;
85 
86  if (0.000 < x && x <= 0.003) {
87  vEBReftRight = (102.682 + 457094 * x - 4.34553e+08 * x * x + 2.59638e+11 * x * x * x) / 2.19081589410447168e+03;
88  } else if (0.003 < x && x <= 0.010) {
89  vEBReftRight = TMath::Landau(x, 9.56298e-03, 2.59171e-03, true) * 1.27769617491053555e+03 / 2.19081589410447168e+03;
90  } else if (0.010 < x && x <= 0.070) {
91  vEBReftRight =
92  TMath::Landau(x, -1.11570e-02, 9.08308e-04, true) * 3.58026004645168359e+04 / 2.19081589410447168e+03;
93  } else if (0.070 < x && x <= 0.400) {
94  vEBReftRight = (15362.5 - 230546 * x + 1.57249e+06 * x * x - 5.47903e+06 * x * x * x + 9.4296e+06 * x * x * x * x -
95  6.3775e+06 * x * x * x * x * x) /
96  2.19081589410447168e+03;
97  } else if (0.400 < x && x <= 0.440) {
98  vEBReftRight = (2.3163882e+06 - 2.2437252e+07 * x + 8.1519104e+07 * x * x - 1.3162869e+08 * x * x * x +
99  7.9682168e+07 * x * x * x * x) /
100  2.19081589410447168e+03;
101  } else if (0.440 < x) {
102  vEBReftRight = 0.0;
103  } else {
104  vEBReftRight = 0.0;
105  }
106 
107  return vEBReftRight;
108 }
109 
110 template <>
112  double vEECentral = 0.0;
113 
114  if (x <= 0.195) {
115  vEECentral = 0.0;
116  } else if (0.195 < x && x <= 0.440) {
117  vEECentral = (-30295.4 + 562760 * x - 4.04967e+06 * x * x + 1.40276e+07 * x * x * x - 2.33108e+07 * x * x * x * x +
118  1.50243e+07 * x * x * x * x * x) /
119  9.44506089594767786e+02;
120  } else if (0.440 < x && x <= 0.840) {
121  vEECentral = (-34683.3 + 274011 * x - 749408 * x * x + 895482 * x * x * x - 396108 * x * x * x * x) /
122  9.44506089594767786e+02;
123  } else if (0.840 < x && x <= 0.875) {
124  vEECentral = (4.7355575e+06 - 1.6268056e+07 * x + 1.8629316e+07 * x * x - 7.1113915e+06 * x * x * x) /
125  9.44506089594767786e+02;
126  } else if (0.875 < x) {
127  vEECentral = 0.0;
128  } else {
129  vEECentral = 0.0;
130  }
131 
132  return vEECentral;
133 }
134 
135 template <>
137  double vEEDiagonal = 0.0;
138 
139  if (0.000 < x && x <= 0.015) {
140  vEEDiagonal = TMath::Landau(x, 8.25505e-03, 3.10387e-03, true) * 1.68601977536835489e+03 / 1.86234137068993937e+03;
141  } else if (0.015 < x && x <= 0.150) {
142  vEEDiagonal = TMath::Landau(x, -5.58560e-04, 2.44735e-03, true) * 4.88463235185936264e+03 / 1.86234137068993937e+03;
143  } else if (0.150 < x && x <= 0.400) {
144  vEEDiagonal = (7416.66 - 114653 * x + 763877 * x * x - 2.57767e+06 * x * x * x + 4.28872e+06 * x * x * x * x -
145  2.79218e+06 * x * x * x * x * x) /
146  1.86234137068993937e+03;
147  } else if (0.400 < x) {
148  vEEDiagonal = 0.0;
149  } else {
150  vEEDiagonal = 0.0;
151  }
152 
153  return vEEDiagonal;
154 }
155 
156 template <>
158  double vEEUpDown = 0.0;
159 
160  if (0.000 < x && x <= 0.015) {
161  vEEUpDown = TMath::Landau(x, 1.34809e-02, 3.70278e-03, true) * 8.62383670884733533e+02 / 1.88498009908992071e+03;
162  } else if (0.015 < x && x <= 0.100) {
163  vEEUpDown =
164  (75877.4 - 3.18767e+06 * x + 5.89073e+07 * x * x - 5.08829e+08 * x * x * x + 1.67247e+09 * x * x * x * x) /
165  1.88498009908992071e+03;
166  } else if (0.100 < x && x <= 0.450) {
167  vEEUpDown = (12087 - 123704 * x + 566586 * x * x - 1.20111e+06 * x * x * x + 933789 * x * x * x * x) /
168  1.88498009908992071e+03;
169  } else if (0.450 < x) {
170  vEEUpDown = 0.0;
171  } else {
172  vEEUpDown = 0.0;
173  }
174 
175  return vEEUpDown;
176 }
177 
178 template <>
180  double vEEReftRight = 0.0;
181 
182  if (0.000 < x && x <= 0.015) {
183  vEEReftRight = TMath::Landau(x, 1.34809e-02, 3.70278e-03, true) * 8.62383670884733533e+02 / 1.88498009908992071e+03;
184  } else if (0.015 < x && x <= 0.100) {
185  vEEReftRight =
186  (75877.4 - 3.18767e+06 * x + 5.89073e+07 * x * x - 5.08829e+08 * x * x * x + 1.67247e+09 * x * x * x * x) /
187  1.88498009908992071e+03;
188  } else if (0.100 < x && x <= 0.450) {
189  vEEReftRight = (12087 - 123704 * x + 566586 * x * x - 1.20111e+06 * x * x * x + 933789 * x * x * x * x) /
190  1.88498009908992071e+03;
191  } else if (0.450 < x) {
192  vEEReftRight = 0.0;
193  } else {
194  vEEReftRight = 0.0;
195  }
196 
197  return vEEReftRight;
198 }
static double UpDown(double x)
uint16_t const *__restrict__ x
Definition: gpuClustering.h:39
static double ReftRight(double x)
static double Diagonal(double x)
static double Central(double x)