15 const double EtaBins[
nBinsEta + 1] = {0.0, 0.7, 1.15, 1.44, 1.56, 2.0, 2.5};
17 const int nBinsBrem = 6;
18 const double BremBins[nBinsBrem + 1] = {0.8, 1.0, 2.0, 3.0, 4.0, 5.0, 10.0};
25 par0[0][0] = 0.0232291;
30 par0[0][1] = 0.00703187;
31 par1[0][1] = 0.646644;
33 par3[0][1] = 5.53373e-08;
35 par0[0][2] = 0.00692465;
36 par1[0][2] = 0.292698;
38 par3[0][2] = 5.61149e-06;
40 par0[0][3] = 0.00855993;
41 par1[0][3] = 0.280843;
43 par3[0][3] = 9.6404e-07;
45 par0[0][4] = 0.00795058;
46 par1[0][4] = 0.370007;
48 par3[0][4] = 4.43986e-07;
50 par0[0][5] = 0.0107494;
51 par1[0][5] = 0.276159;
53 par3[0][5] = 2.58822e-06;
55 par0[1][0] = 0.0614866;
60 par0[1][1] = 0.00894211;
61 par1[1][1] = 0.466937;
63 par3[1][1] = 0.000114835;
65 par0[1][2] = 0.0102959;
66 par1[1][2] = 0.313568;
68 par3[1][2] = 2.86726e-07;
70 par0[1][3] = 0.0128934;
71 par1[1][3] = 0.302943;
73 par3[1][3] = 0.00190694;
75 par0[1][4] = 0.0130199;
76 par1[1][4] = 0.505135;
78 par3[1][4] = 0.120204;
80 par0[1][5] = 0.0180839;
81 par1[1][5] = 0.382134;
83 par3[1][5] = 3.59921e-07;
85 par0[2][0] = 0.0291343;
90 par0[2][1] = 0.00876269;
91 par1[2][1] = 0.375159;
93 par3[2][1] = 0.0438575;
95 par0[2][2] = 0.0120863;
96 par1[2][2] = 0.397635;
98 par3[2][2] = 0.0469782;
100 par0[2][3] = 0.0112655;
101 par1[2][3] = 0.856565;
102 par2[2][3] = -5.76122;
103 par3[2][3] = 4.99993;
105 par0[2][4] = 0.0168267;
106 par1[2][4] = 0.636468;
107 par2[2][4] = -1.54548;
108 par3[2][4] = 4.99992;
110 par0[2][5] = 0.0168059;
111 par1[2][5] = 1.09268;
112 par2[2][5] = -0.547554;
113 par3[2][5] = 0.0952985;
115 par0[3][0] = 0.158403;
120 par0[3][1] = 0.0717431;
121 par1[3][1] = 1.66981;
122 par2[3][1] = 6.86275;
123 par3[3][1] = 0.00543544;
125 par0[3][2] = 0.0385666;
127 par2[3][2] = -3.76633;
128 par3[3][2] = 6.56718e-05;
130 par0[3][3] = 0.0142631;
131 par1[3][3] = 8.85991;
132 par2[3][3] = -32.6073;
133 par3[3][3] = 0.00119538;
135 par0[3][4] = 0.0421638;
137 par2[3][4] = -6.58653;
138 par3[3][4] = 1.10125e-05;
140 par0[3][5] = 0.046331;
141 par1[3][5] = 1.29951;
142 par2[3][5] = 1.76117;
143 par3[3][5] = 0.00204206;
145 par0[4][0] = 0.0483944;
150 par0[4][1] = 0.0168516;
151 par1[4][1] = 1.19617;
152 par2[4][1] = -6.78666;
153 par3[4][1] = 4.98192;
155 par0[4][2] = 0.0243039;
156 par1[4][2] = 0.994626;
157 par2[4][2] = -4.26073;
158 par3[4][2] = 4.99984;
160 par0[4][3] = 0.031795;
161 par1[4][3] = 0.875925;
162 par2[4][3] = 1.43183;
163 par3[4][3] = 0.0920944;
165 par0[4][4] = 0.0414953;
166 par1[4][4] = 0.654605;
167 par2[4][4] = 4.45367;
168 par3[4][4] = 0.030385;
170 par0[4][5] = 0.058031;
171 par1[4][5] = 0.292915;
172 par2[4][5] = 8.48307;
173 par3[4][5] = 0.0134321;
175 par0[5][0] = 0.107158;
180 par0[5][1] = 0.021685;
181 par1[5][1] = 0.574207;
182 par2[5][1] = -0.566981;
183 par3[5][1] = 0.0120609;
185 par0[5][2] = 0.0196619;
186 par1[5][2] = 0.940217;
187 par2[5][2] = -6.05845;
188 par3[5][2] = 0.000193818;
190 par0[5][3] = 0.0324734;
191 par1[5][3] = 0.574766;
192 par2[5][3] = -5.23571;
195 par0[5][4] = 0.0414953;
196 par1[5][4] = 0.654605;
197 par2[5][4] = 4.45367;
198 par3[5][4] = 0.030385;
200 par0[5][5] = 0.058031;
201 par1[5][5] = 0.292915;
202 par2[5][5] = 8.48307;
203 par3[5][5] = 0.0134321;
213 for (
int iBrem = 0; iBrem < nBinsBrem; ++iBrem) {
214 if (BremBins[iBrem] <= brem && brem < BremBins[iBrem + 1]) {
221 if (brem < BremBins[0])
223 if (brem > BremBins[nBinsBrem - 1])
224 iBremSl = nBinsBrem - 1;
226 float uncertainty = 0;
228 uncertainty =
par0[iEtaSl][iBremSl] +
par1[iEtaSl][iBremSl] / (5 -
par2[iEtaSl][iBremSl]) +
229 par3[iEtaSl][iBremSl] / ((5 -
par2[iEtaSl][iBremSl]) * (5 -
par2[iEtaSl][iBremSl]));
231 uncertainty =
par0[iEtaSl][iBremSl] +
par1[iEtaSl][iBremSl] / (200 -
par2[iEtaSl][iBremSl]) +
232 par3[iEtaSl][iBremSl] / ((200 -
par2[iEtaSl][iBremSl]) * (200 -
par2[iEtaSl][iBremSl]));
234 if (
et > 5 &&
et < 200)
235 uncertainty =
par0[iEtaSl][iBremSl] +
par1[iEtaSl][iBremSl] / (
et -
par2[iEtaSl][iBremSl]) +
236 par3[iEtaSl][iBremSl] / ((
et -
par2[iEtaSl][iBremSl]) * (
et -
par2[iEtaSl][iBremSl]));
238 return (uncertainty *
energy);
245 const double EtaBins[
nBinsEta + 1] = {0.0, 0.7, 1.15, 1.44, 1.56, 2.0, 2.5};
247 const int nBinsBrem = 6;
248 const double BremBins[nBinsBrem + 1] = {0.8, 1.0, 2.0, 3.0, 4.0, 5.0, 10.0};
255 par0[0][0] = 0.00806753;
256 par1[0][0] = 0.143754;
257 par2[0][0] = -0.00368104;
258 par3[0][0] = 0.219829;
260 par0[0][1] = 0.00899298;
261 par1[0][1] = 0.10159;
262 par2[0][1] = 4.70884;
263 par3[0][1] = 9.07419e-08;
285 par0[1][0] = 0.00880649;
286 par1[1][0] = 0.0716169;
287 par2[1][0] = 5.23856;
288 par3[1][0] = 0.00632907;
290 par0[1][1] = 0.00972275;
291 par1[1][1] = 0.0752675;
292 par2[1][1] = 3.35623;
293 par3[1][1] = 2.49397e-07;
315 par0[2][0] = 0.0101474;
316 par1[2][0] = -0.332171;
317 par2[2][0] = -31.8456;
320 par0[2][1] = 0.0109109;
321 par1[2][1] = 0.0425903;
322 par2[2][1] = 6.52561;
323 par3[2][1] = 2.18593e-08;
345 par0[3][0] = 0.00343003;
346 par1[3][0] = 11.5791;
347 par2[3][0] = -112.084;
348 par3[3][0] = -863.968;
350 par0[3][1] = 0.0372159;
351 par1[3][1] = 1.44028;
353 par3[3][1] = 0.00102639;
375 par0[4][0] = 0.0192411;
376 par1[4][0] = 0.0511006;
377 par2[4][0] = 7.56304;
378 par3[4][0] = 0.00331583;
380 par0[4][1] = 0.0195124;
381 par1[4][1] = 0.104321;
382 par2[4][1] = 5.71476;
383 par3[4][1] = 6.12472e-06;
405 par0[5][0] = 0.0203644;
406 par1[5][0] = -0.050789;
407 par2[5][0] = -7.96854;
408 par3[5][0] = 4.71223;
410 par0[5][1] = 0.0198718;
411 par1[5][1] = 0.106859;
412 par2[5][1] = 3.54235;
413 par3[5][1] = 6.89631e-06;
443 for (
int iBrem = 0; iBrem < nBinsBrem; ++iBrem) {
444 if (BremBins[iBrem] <= brem && brem < BremBins[iBrem + 1]) {
451 if (brem < BremBins[0])
453 if (brem > BremBins[nBinsBrem - 1])
454 iBremSl = nBinsBrem - 1;
458 float uncertainty = 0;
459 if (iBremSl >= 0 && iBremSl < nBinsBrem && iEtaSl >= 0 && iEtaSl <
nBinsEta) {
461 uncertainty =
par0[iEtaSl][iBremSl] +
par1[iEtaSl][iBremSl] / (5 -
par2[iEtaSl][iBremSl]) +
462 par3[iEtaSl][iBremSl] / ((5 -
par2[iEtaSl][iBremSl]) * (5 -
par2[iEtaSl][iBremSl]));
464 uncertainty =
par0[iEtaSl][iBremSl] +
par1[iEtaSl][iBremSl] / (200 -
par2[iEtaSl][iBremSl]) +
465 par3[iEtaSl][iBremSl] / ((200 -
par2[iEtaSl][iBremSl]) * (200 -
par2[iEtaSl][iBremSl]));
466 else if (
et >= 5 &&
et <= 200)
467 uncertainty =
par0[iEtaSl][iBremSl] +
par1[iEtaSl][iBremSl] / (
et -
par2[iEtaSl][iBremSl]) +
468 par3[iEtaSl][iBremSl] / ((
et -
par2[iEtaSl][iBremSl]) * (
et -
par2[iEtaSl][iBremSl]));
471 return (uncertainty *
energy);