ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/src/PhotonFix.cc
Revision: 1.1
Committed: Wed Jul 27 15:17:37 2011 UTC (13 years, 9 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_024b, Mit_024a, Mit_024
Log Message:
update photon stuff

File Contents

# Content
1 #include <cmath>
2 #include <cassert>
3 #include <fstream>
4 #include <iomanip>
5
6 // ensure that this include points to the appropriate location for PhotonFix.h
7 #include "../interface/PhotonFix.h"
8
9 PhotonFix::PhotonFix(double e, double eta, double phi, double r9) :
10 _e(e), _eta(eta), _phi(phi), _r9(r9) {
11
12 setup();
13 }
14
15 void PhotonFix::setup(){
16 // Check constants have been set up
17 assert(_initialised);
18
19 // Determine if EB or EE
20 _be=(fabs(_eta)<1.48?0:1);
21
22 // Determine if high or low R9
23 if(_be==0) _hl=(_r9>=0.94?0:1);
24 else _hl=(_r9>=0.95?0:1);
25
26 // Coordinates relative to cracks
27 double r2Min;
28 if(_be==0) {
29
30 r2Min=1.0e6;
31 for(unsigned i(0);i<169;i++) {
32 for(unsigned j(0);j<360;j++) {
33 double de(_eta-_barrelCGap[i][j][0]);
34 double df(dPhi(_phi,_barrelCGap[i][j][1]));
35 double r2(de*de+df*df);
36
37 if(r2<r2Min) {
38 r2Min=r2;
39 if(i>=84) {
40 _aC= de;
41 _bC=-df;
42 } else {
43 _aC=-de;
44 _bC= df;
45 }
46 }
47 }
48 }
49
50 r2Min=1.0e6;
51 for(unsigned i(0);i<33;i++) {
52 for(unsigned j(0);j<180;j++) {
53 double de(_eta-_barrelSGap[i][j][0]);
54 double df(dPhi(_phi,_barrelSGap[i][j][1]));
55 double r2(de*de+df*df);
56
57 if(r2<r2Min) {
58 r2Min=r2;
59 if(i>=16) {
60 _aS= de;
61 _bS=-df;
62 } else {
63 _aS=-de;
64 _bS= df;
65 }
66 }
67 }
68 }
69
70 r2Min=1.0e6;
71 for(unsigned i(0);i<7;i++) {
72 for(unsigned j(0);j<18;j++) {
73 double de(_eta-_barrelMGap[i][j][0]);
74 double df(dPhi(_phi,_barrelMGap[i][j][1]));
75 double r2(de*de+df*df);
76
77 if(r2<r2Min) {
78 r2Min=r2;
79 if(i>=3) {
80 _aM= de;
81 _bM=-df;
82 } else {
83 _aM=-de;
84 _bM= df;
85 }
86 }
87 }
88 }
89
90 } else {
91 unsigned iz(_eta>=0.0?0:1);
92 double r[2]={xZ(),yZ()};
93
94 r2Min=1.0e6;
95 for(unsigned i(0);i<7080;i++) {
96 double dx(r[0]-_endcapCGap[iz][i][0]);
97 double dy(r[1]-_endcapCGap[iz][i][1]);
98 double r2(dx*dx+dy*dy);
99
100 if(r2<r2Min) {
101 r2Min=r2;
102 if(r[0]>0.0) _aC= dx;
103 else _aC=-dx;
104 if(r[1]>0.0) _bC= dy;
105 else _bC=-dy;
106 }
107 }
108
109 r2Min=1.0e6;
110 for(unsigned i(0);i<264;i++) {
111 double dx(r[0]-_endcapSGap[iz][i][0]);
112 double dy(r[1]-_endcapSGap[iz][i][1]);
113 double r2(dx*dx+dy*dy);
114
115 if(r2<r2Min) {
116 r2Min=r2;
117 if(r[0]>0.0) _aS= dx;
118 else _aS=-dx;
119 if(r[1]>0.0) _bS= dy;
120 else _bS=-dy;
121 }
122 }
123
124 r2Min=1.0e6;
125 for(unsigned i(0);i<1;i++) {
126 double dx(r[0]-_endcapMGap[iz][i][0]);
127 double dy(r[1]-_endcapMGap[iz][i][1]);
128 double r2(dx*dx+dy*dy);
129
130 if(r2<r2Min) {
131 r2Min=r2;
132 if(iz==0) {_aM= dx;_bM= dy;}
133 else {_aM=-dx;_bM=-dy;}
134 }
135 }
136 }
137 }
138
139 double PhotonFix::fixedEnergy() const {
140 double f(0.0);
141
142 // Overall scale and energy(T) dependence
143 f =_meanScale[_be][_hl][0];
144 f+=_meanScale[_be][_hl][1]*_e;
145 f+=_meanScale[_be][_hl][2]*_e/cosh(_eta);
146 f+=_meanScale[_be][_hl][3]*cosh(_eta)/_e;
147
148 // Eta or x crystal, submodule and module dependence
149 f+=expCorrection(_aC,_meanAC[_be][_hl]);
150 f+=expCorrection(_aS,_meanAS[_be][_hl]);
151 f+=expCorrection(_aM,_meanAM[_be][_hl]);
152
153 // Phi or y crystal, submodule and module dependence
154 f+=expCorrection(_bC,_meanBC[_be][_hl]);
155 f+=expCorrection(_bS,_meanBS[_be][_hl]);
156 f+=expCorrection(_bM,_meanBM[_be][_hl]);
157
158 // R9 dependence
159 if(_hl==0) {
160 f+=_meanR9[_be][_hl][1]*(_r9-_meanR9[_be][_hl][0])*(_r9-_meanR9[_be][_hl][0])
161 +_meanR9[_be][_hl][2]*(_r9-_meanR9[_be][_hl][0])*(_r9-_meanR9[_be][_hl][0])*(_r9-_meanR9[_be][_hl][0]);
162 } else {
163 f+=_meanR9[_be][_hl][0]*_r9+_meanR9[_be][_hl][1]*_r9*_r9+_meanR9[_be][_hl][2]*_r9*_r9*_r9;
164 }
165
166 return _e*f;
167 }
168
169 double PhotonFix::sigmaEnergy() const {
170
171 // Overall resolution scale vs energy
172 double sigma;
173 if(_be==0) {
174 sigma =_sigmaScale[_be][_hl][0]*_sigmaScale[_be][_hl][0];
175 sigma+=_sigmaScale[_be][_hl][1]*_sigmaScale[_be][_hl][1]*_e;
176 sigma+=_sigmaScale[_be][_hl][2]*_sigmaScale[_be][_hl][2]*_e*_e;
177 } else {
178 sigma =_sigmaScale[_be][_hl][0]*_sigmaScale[_be][_hl][0]*cosh(_eta)*cosh(_eta);
179 sigma+=_sigmaScale[_be][_hl][1]*_sigmaScale[_be][_hl][1]*_e;
180 sigma+=_sigmaScale[_be][_hl][2]*_sigmaScale[_be][_hl][2]*_e*_e;
181 }
182 sigma=sqrt(sigma);
183
184 double f(1.0);
185
186 // General eta or zeta dependence
187 if(_be==0) {
188 f+=_sigmaAT[_be][_hl][0]*_eta*_eta;
189 f+=expCorrection(_eta,_sigmaBT[_be][_hl]);
190 } else {
191 f+=_sigmaAT[_be][_hl][0]*xZ()*xZ();
192 f+=_sigmaBT[_be][_hl][0]*yZ()*yZ();
193 }
194
195 // Eta or x crystal, submodule and module dependence
196 f+=expCorrection(_aC,_sigmaAC[_be][_hl]);
197 f+=expCorrection(_aS,_sigmaAS[_be][_hl]);
198 f+=expCorrection(_aM,_sigmaAM[_be][_hl]);
199
200 // Phi or y crystal, submodule and module dependence
201 f+=expCorrection(_bC,_sigmaBC[_be][_hl]);
202 f+=expCorrection(_bS,_sigmaBS[_be][_hl]);
203 f+=expCorrection(_bM,_sigmaBM[_be][_hl]);
204
205 // R9 dependence
206 if(_hl==0) {
207 f+=_sigmaR9[_be][_hl][1]*(_r9-_sigmaR9[_be][_hl][0])*(_r9-_sigmaR9[_be][_hl][0])
208 +_sigmaR9[_be][_hl][2]*(_r9-_sigmaR9[_be][_hl][0])*(_r9-_sigmaR9[_be][_hl][0])*(_r9-_sigmaR9[_be][_hl][0]);
209 } else {
210 f+=_sigmaR9[_be][_hl][0]*_r9+_sigmaR9[_be][_hl][1]*_r9*_r9;
211 }
212
213 return sigma*f;
214 }
215
216 double PhotonFix::rawEnergy() const {
217 return _e;
218 }
219
220 double PhotonFix::eta() const {
221 return _eta;
222 }
223
224 double PhotonFix::phi() const {
225 return _phi;
226 }
227
228 double PhotonFix::r9() const {
229 return _r9;
230 }
231
232 double PhotonFix::etaC() const {
233 assert(_be==0);
234 return _aC;
235 }
236
237 double PhotonFix::etaS() const {
238 assert(_be==0);
239 return _aS;
240 }
241
242 double PhotonFix::etaM() const {
243 assert(_be==0);
244 return _aM;
245 }
246
247 double PhotonFix::phiC() const {
248 assert(_be==0);
249 return _bC;
250 }
251
252 double PhotonFix::phiS() const {
253 assert(_be==0);
254 return _bS;
255 }
256
257 double PhotonFix::phiM() const {
258 assert(_be==0);
259 return _bM;
260 }
261
262 double PhotonFix::xZ() const {
263 assert(_be==1);
264 return asinh(cos(_phi)/sinh(_eta));
265 }
266
267 double PhotonFix::xC() const {
268 assert(_be==1);
269 return _aC;
270 }
271
272 double PhotonFix::xS() const {
273 assert(_be==1);
274 return _aS;
275 }
276
277 double PhotonFix::xM() const {
278 assert(_be==1);
279 return _aM;
280 }
281
282 double PhotonFix::yZ() const {
283 assert(_be==1);
284 return asinh(sin(_phi)/sinh(_eta));
285 }
286
287 double PhotonFix::yC() const {
288 assert(_be==1);
289 return _bC;
290 }
291
292 double PhotonFix::yS() const {
293 assert(_be==1);
294 return _bS;
295 }
296
297 double PhotonFix::yM() const {
298 assert(_be==1);
299 return _bM;
300 }
301
302 double PhotonFix::GetaPhi(double f0, double f1){
303 return aPhi(f0,f1);
304 }
305
306 void PhotonFix::barrelCGap(unsigned i, unsigned j, unsigned k, double c){
307 _barrelCGap[i][j][k] = c;
308 }
309 void PhotonFix::barrelSGap(unsigned i, unsigned j, unsigned k, double c){
310 _barrelSGap[i][j][k] = c;
311 }
312 void PhotonFix::barrelMGap(unsigned i, unsigned j, unsigned k, double c){
313 _barrelMGap[i][j][k] = c;
314 }
315 void PhotonFix::endcapCrystal(unsigned i, unsigned j, bool c){
316 _endcapCrystal[i][j] = c;
317 }
318 void PhotonFix::endcapCGap(unsigned i, unsigned j, unsigned k, double c){
319 _endcapCGap[i][j][k] = c;
320 }
321 void PhotonFix::endcapSGap(unsigned i, unsigned j, unsigned k, double c){
322 _endcapSGap[i][j][k] = c;
323 }
324 void PhotonFix::endcapMGap(unsigned i, unsigned j, unsigned k, double c){
325 _endcapMGap[i][j][k] = c;
326 }
327
328
329 void PhotonFix::print() const {
330 std::cout << "PhotonFix: e,eta,phi,r9 = " << _e << ", " << _eta << ", " << _phi << ", " << _r9 << ", gaps "
331 << _aC << ", " << _aS << ", " << _aM << ", "
332 << _bC << ", " << _bS << ", " << _bM << std::endl;
333 }
334
335 void PhotonFix::setParameters(unsigned be, unsigned hl, const double *p) {
336 for(unsigned i(0);i<4;i++) {
337 _meanScale[be][hl][i] =p[i+ 0*4];
338 _meanAC[be][hl][i] =p[i+ 1*4];
339 _meanAS[be][hl][i] =p[i+ 2*4];
340 _meanAM[be][hl][i] =p[i+ 3*4];
341 _meanBC[be][hl][i] =p[i+ 4*4];
342 _meanBS[be][hl][i] =p[i+ 5*4];
343 _meanBM[be][hl][i] =p[i+ 6*4];
344 _meanR9[be][hl][i] =p[i+ 7*4];
345
346 _sigmaScale[be][hl][i]=p[i+ 8*4];
347 _sigmaAT[be][hl][i] =p[i+ 9*4];
348 _sigmaAC[be][hl][i] =p[i+10*4];
349 _sigmaAS[be][hl][i] =p[i+11*4];
350 _sigmaAM[be][hl][i] =p[i+12*4];
351 _sigmaBT[be][hl][i] =p[i+13*4];
352 _sigmaBC[be][hl][i] =p[i+14*4];
353 _sigmaBS[be][hl][i] =p[i+15*4];
354 _sigmaBM[be][hl][i] =p[i+16*4];
355 _sigmaR9[be][hl][i] =p[i+17*4];
356 }
357 }
358
359 void PhotonFix::getParameters(unsigned be, unsigned hl, double *p) {
360 for(unsigned i(0);i<4;i++) {
361 p[i+ 0*4]=_meanScale[be][hl][i];
362 p[i+ 1*4]=_meanAC[be][hl][i];
363 p[i+ 2*4]=_meanAS[be][hl][i];
364 p[i+ 3*4]=_meanAM[be][hl][i];
365 p[i+ 4*4]=_meanBC[be][hl][i];
366 p[i+ 5*4]=_meanBS[be][hl][i];
367 p[i+ 6*4]=_meanBM[be][hl][i];
368 p[i+ 7*4]=_meanR9[be][hl][i];
369
370 p[i+ 8*4]=_sigmaScale[be][hl][i];
371 p[i+ 9*4]=_sigmaAT[be][hl][i];
372 p[i+10*4]=_sigmaAC[be][hl][i];
373 p[i+11*4]=_sigmaAS[be][hl][i];
374 p[i+12*4]=_sigmaAM[be][hl][i];
375 p[i+13*4]=_sigmaBT[be][hl][i];
376 p[i+14*4]=_sigmaBC[be][hl][i];
377 p[i+15*4]=_sigmaBS[be][hl][i];
378 p[i+16*4]=_sigmaBM[be][hl][i];
379 p[i+17*4]=_sigmaR9[be][hl][i];
380 }
381 }
382
383 void PhotonFix::dumpParameters(std::ostream &o) {
384 for(unsigned be(0);be<2;be++) {
385 for(unsigned hl(0);hl<2;hl++) {
386 for(unsigned i(0);i<4;i++) {
387 o << " _meanScale[" << be << "][" << hl << "][" << i << "]=" << _meanScale[be][hl][i] << ";" << std::endl;
388 }
389 for(unsigned i(0);i<4;i++) {
390 o << " _meanAC[" << be << "][" << hl << "][" << i << "]=" << _meanAC[be][hl][i] << ";" << std::endl;
391 }
392 for(unsigned i(0);i<4;i++) {
393 o << " _meanAS[" << be << "][" << hl << "][" << i << "]=" << _meanAS[be][hl][i] << ";" << std::endl;
394 }
395 for(unsigned i(0);i<4;i++) {
396 o << " _meanAM[" << be << "][" << hl << "][" << i << "]=" << _meanAM[be][hl][i] << ";" << std::endl;
397 }
398 for(unsigned i(0);i<4;i++) {
399 o << " _meanBC[" << be << "][" << hl << "][" << i << "]=" << _meanBC[be][hl][i] << ";" << std::endl;
400 }
401 for(unsigned i(0);i<4;i++) {
402 o << " _meanBS[" << be << "][" << hl << "][" << i << "]=" << _meanBS[be][hl][i] << ";" << std::endl;
403 }
404 for(unsigned i(0);i<4;i++) {
405 o << " _meanBM[" << be << "][" << hl << "][" << i << "]=" << _meanBM[be][hl][i] << ";" << std::endl;
406 }
407 for(unsigned i(0);i<4;i++) {
408 o << " _meanR9[" << be << "][" << hl << "][" << i << "]=" << _meanR9[be][hl][i] << ";" << std::endl;
409 }
410 o << std::endl;
411
412 for(unsigned i(0);i<4;i++) {
413 o << " _sigmaScale[" << be << "][" << hl << "][" << i << "]=" << _sigmaScale[be][hl][i] << ";" << std::endl;
414 }
415 for(unsigned i(0);i<4;i++) {
416 o << " _sigmaAT[" << be << "][" << hl << "][" << i << "]=" << _sigmaAT[be][hl][i] << ";" << std::endl;
417 }
418 for(unsigned i(0);i<4;i++) {
419 o << " _sigmaAC[" << be << "][" << hl << "][" << i << "]=" << _sigmaAC[be][hl][i] << ";" << std::endl;
420 }
421 for(unsigned i(0);i<4;i++) {
422 o << " _sigmaAS[" << be << "][" << hl << "][" << i << "]=" << _sigmaAS[be][hl][i] << ";" << std::endl;
423 }
424 for(unsigned i(0);i<4;i++) {
425 o << " _sigmaAM[" << be << "][" << hl << "][" << i << "]=" << _sigmaAM[be][hl][i] << ";" << std::endl;
426 }
427 for(unsigned i(0);i<4;i++) {
428 o << " _sigmaBT[" << be << "][" << hl << "][" << i << "]=" << _sigmaBT[be][hl][i] << ";" << std::endl;
429 }
430 for(unsigned i(0);i<4;i++) {
431 o << " _sigmaBC[" << be << "][" << hl << "][" << i << "]=" << _sigmaBC[be][hl][i] << ";" << std::endl;
432 }
433 for(unsigned i(0);i<4;i++) {
434 o << " _sigmaBS[" << be << "][" << hl << "][" << i << "]=" << _sigmaBS[be][hl][i] << ";" << std::endl;
435 }
436 for(unsigned i(0);i<4;i++) {
437 o << " _sigmaBM[" << be << "][" << hl << "][" << i << "]=" << _sigmaBM[be][hl][i] << ";" << std::endl;
438 }
439 for(unsigned i(0);i<4;i++) {
440 o << " _sigmaR9[" << be << "][" << hl << "][" << i << "]=" << _sigmaR9[be][hl][i] << ";" << std::endl;
441 }
442 o << std::endl;
443 }
444 }
445 }
446
447 void PhotonFix::printParameters(std::ostream &o) {
448 o << "PhotonFix::printParameters()" << std::endl;
449
450 for(unsigned be(0);be<2;be++) {
451 for(unsigned hl(0);hl<2;hl++) {
452 o << " Parameters for " << (be==0?"barrel":"endcap")
453 << ", " << (hl==0?"high":"low") << " R9" << std::endl;
454
455 o << " Mean scaling ";
456 for(unsigned i(0);i<4;i++) o << std::setw(14) << _meanScale[be][hl][i];
457 o << std::endl;
458 o << " Mean " << (be==0?"Eta ":"ZetaX") << " crystal ";
459 for(unsigned i(0);i<4;i++) o << std::setw(14) << _meanAC[be][hl][i];
460 o << std::endl;
461 o << " Mean " << (be==0?"Eta ":"ZetaX") << " submodule";
462 for(unsigned i(0);i<4;i++) o << std::setw(14) << _meanAS[be][hl][i];
463 o << std::endl;
464 o << " Mean " << (be==0?"Eta ":"ZetaX") << " module ";
465 for(unsigned i(0);i<4;i++) o << std::setw(14) << _meanAM[be][hl][i];
466 o << std::endl;
467 o << " Mean " << (be==0?"Phi ":"ZetaY") << " crystal ";
468 for(unsigned i(0);i<4;i++) o << std::setw(14) << _meanBC[be][hl][i];
469 o << std::endl;
470 o << " Mean " << (be==0?"Phi ":"ZetaY") << " submodule";
471 for(unsigned i(0);i<4;i++) o << std::setw(14) << _meanBS[be][hl][i];
472 o << std::endl;
473 o << " Mean " << (be==0?"Phi ":"ZetaY") << " module ";
474 for(unsigned i(0);i<4;i++) o << std::setw(14) << _meanBM[be][hl][i];
475 o << std::endl;
476 o << " Mean R9 ";
477 for(unsigned i(0);i<4;i++) o << std::setw(14) << _meanR9[be][hl][i];
478 o << std::endl;
479
480 o << " Sigma scaling ";
481 for(unsigned i(0);i<4;i++) o << std::setw(14) << _sigmaScale[be][hl][i];
482 o << std::endl;
483 o << " Sigma " << (be==0?"Eta ":"ZetaX") << " total ";
484 for(unsigned i(0);i<4;i++) o << std::setw(14) << _sigmaAT[be][hl][i];
485 o << std::endl;
486 o << " Sigma " << (be==0?"Eta ":"ZetaX") << " crystal ";
487 for(unsigned i(0);i<4;i++) o << std::setw(14) << _sigmaAC[be][hl][i];
488 o << std::endl;
489 o << " Sigma " << (be==0?"Eta ":"ZetaX") << " submodule";
490 for(unsigned i(0);i<4;i++) o << std::setw(14) << _sigmaAS[be][hl][i];
491 o << std::endl;
492 o << " Sigma " << (be==0?"Eta ":"ZetaX") << " module ";
493 for(unsigned i(0);i<4;i++) o << std::setw(14) << _sigmaAM[be][hl][i];
494 o << std::endl;
495 o << " Sigma " << (be==0?"Eta ":"ZetaY") << " total ";
496 for(unsigned i(0);i<4;i++) o << std::setw(14) << _sigmaBT[be][hl][i];
497 o << std::endl;
498 o << " Sigma " << (be==0?"Eta ":"ZetaY") << " crystal ";
499 for(unsigned i(0);i<4;i++) o << std::setw(14) << _sigmaBC[be][hl][i];
500 o << std::endl;
501 o << " Sigma " << (be==0?"Phi ":"ZetaY") << " submodule";
502 for(unsigned i(0);i<4;i++) o << std::setw(14) << _sigmaBS[be][hl][i];
503 o << std::endl;
504 o << " Sigma " << (be==0?"Phi ":"ZetaY") << " module ";
505 for(unsigned i(0);i<4;i++) o << std::setw(14) << _sigmaBM[be][hl][i];
506 o << std::endl;
507 o << " Sigma R9 ";
508 for(unsigned i(0);i<4;i++) o << std::setw(14) << _sigmaR9[be][hl][i];
509 o << std::endl;
510 }
511 }
512 }
513
514 double PhotonFix::asinh(double s) {
515 if(s>=0.0) return log(sqrt(s*s+1.0)+s);
516 else return -log(sqrt(s*s+1.0)-s);
517 }
518
519 void PhotonFix::dumpGaps(std::ostream &o) {
520 o << std::setprecision(15);
521
522 for(unsigned i(0);i<169;i++) {
523 for(unsigned j(0);j<360;j++) {
524 for(unsigned k(0);k<2;k++) {
525 o << _barrelCGap[i][j][k] << std::endl;
526 }
527 }
528 }
529
530 for(unsigned i(0);i<33;i++) {
531 for(unsigned j(0);j<180;j++) {
532 for(unsigned k(0);k<2;k++) {
533 o << _barrelSGap[i][j][k] << std::endl;
534 }
535 }
536 }
537
538 for(unsigned i(0);i<7;i++) {
539 for(unsigned j(0);j<18;j++) {
540 for(unsigned k(0);k<2;k++) {
541 o << _barrelMGap[i][j][k] << std::endl;
542 }
543 }
544 }
545
546 for(unsigned i(0);i<100;i++) {
547 for(unsigned j(0);j<100;j++) {
548 if(_endcapCrystal[i][j]) o << 0 << std::endl;
549 else o << 1 << std::endl;
550 }
551 }
552
553 for(unsigned i(0);i<2;i++) {
554 for(unsigned j(0);j<7080;j++) {
555 for(unsigned k(0);k<2;k++) {
556 o << _endcapCGap[i][j][k] << std::endl;
557 }
558 }
559 }
560
561 for(unsigned i(0);i<2;i++) {
562 for(unsigned j(0);j<264;j++) {
563 for(unsigned k(0);k<2;k++) {
564 o << _endcapSGap[i][j][k] << std::endl;
565 }
566 }
567 }
568
569 for(unsigned i(0);i<2;i++) {
570 for(unsigned j(0);j<1;j++) {
571 for(unsigned k(0);k<2;k++) {
572 o << _endcapMGap[i][j][k] << std::endl;
573 }
574 }
575 }
576 }
577
578 double PhotonFix::dPhi(double f0, double f1) {
579 double df(f0-f1);
580 if(df> _onePi) df-=_twoPi;
581 if(df<-_onePi) df+=_twoPi;
582 return df;
583 }
584
585 double PhotonFix::aPhi(double f0, double f1) {
586 double af(0.5*(f0+f1));
587 if(fabs(dPhi(af,f0))>0.5*_onePi) {
588 if(af>=0.0) af-=_onePi;
589 else af+=_onePi;
590 }
591
592 assert(fabs(dPhi(af,f0))<0.5*_onePi);
593 assert(fabs(dPhi(af,f1))<0.5*_onePi);
594
595 return af;
596 }
597
598 double PhotonFix::expCorrection(double a, const double *p) {
599 if(p[1]==0.0 || p[2]==0.0 || p[3]==0.0) return 0.0;
600
601 double b(a-p[0]);
602 if(b>=0.0) return p[1]*exp(-fabs(p[2])*b);
603 else return p[1]*exp( fabs(p[3])*b);
604 }
605
606 double PhotonFix::gausCorrection(double a, const double *p) {
607 if(p[1]==0.0 || p[2]==0.0 || p[3]==0.0) return 0.0;
608
609 double b(a-p[0]);
610 if(b>=0.0) return p[1]*exp(-0.5*p[2]*p[2]*b*b);
611 else return p[1]*exp(-0.5*p[3]*p[3]*b*b);
612 }
613 bool PhotonFix::initialised() {
614 return _initialised;
615 }
616 bool PhotonFix::initialise(const std::string &s, const std::string &infile) {
617 if(_initialised) return false;
618
619
620 initialiseParameters(s);
621 initialiseGeometry(s,infile);
622 return true;
623 }
624
625 bool PhotonFix::initialiseParameters(const std::string &s) {
626 _initialised=false;
627
628 if(s=="Nominal") {
629 for(unsigned be(0);be<2;be++) {
630 for(unsigned hl(0);hl<2;hl++) {
631 for(unsigned i(0);i<4;i++) {
632 _meanScale[be][hl][i]=0;
633 _meanAC[be][hl][i]=0;
634 _meanAS[be][hl][i]=0;
635 _meanAM[be][hl][i]=0;
636 _meanBC[be][hl][i]=0;
637 _meanBS[be][hl][i]=0;
638 _meanBM[be][hl][i]=0;
639 _meanR9[be][hl][i]=0;
640
641 _sigmaScale[be][hl][i]=0;
642 _sigmaAT[be][hl][i]=0;
643 _sigmaAC[be][hl][i]=0;
644 _sigmaAS[be][hl][i]=0;
645 _sigmaAM[be][hl][i]=0;
646 _sigmaBT[be][hl][i]=0;
647 _sigmaBC[be][hl][i]=0;
648 _sigmaBS[be][hl][i]=0;
649 _sigmaBM[be][hl][i]=0;
650 _sigmaR9[be][hl][i]=0;
651 }
652
653 _meanScale[be][hl][0]=1.0;
654 if(be==0) {
655 _sigmaScale[be][hl][0]=0.2;
656 _sigmaScale[be][hl][1]=0.03;
657 _sigmaScale[be][hl][2]=0.006;
658 } else {
659 _sigmaScale[be][hl][0]=0.25;
660 _sigmaScale[be][hl][1]=0.05;
661 _sigmaScale[be][hl][2]=0.010;
662 }
663 }
664 }
665
666 _initialised=true;
667 }
668
669 if(s=="3_8") {
670 _meanScale[0][0][0]=0.994724;
671 _meanScale[0][0][1]=1.98102e-06;
672 _meanScale[0][0][2]=1.43015e-05;
673 _meanScale[0][0][3]=-0.0908525;
674 _meanAC[0][0][0]=-0.00352041;
675 _meanAC[0][0][1]=0.00982015;
676 _meanAC[0][0][2]=434.32;
677 _meanAC[0][0][3]=529.508;
678 _meanAS[0][0][0]=-1.1;
679 _meanAS[0][0][1]=0.00135995;
680 _meanAS[0][0][2]=295.712;
681 _meanAS[0][0][3]=5.13202e+07;
682 _meanAM[0][0][0]=-0.00140562;
683 _meanAM[0][0][1]=0.156322;
684 _meanAM[0][0][2]=263.097;
685 _meanAM[0][0][3]=222.294;
686 _meanBC[0][0][0]=-0.00294295;
687 _meanBC[0][0][1]=0.011533;
688 _meanBC[0][0][2]=562.905;
689 _meanBC[0][0][3]=421.097;
690 _meanBS[0][0][0]=-0.00204373;
691 _meanBS[0][0][1]=0.00347592;
692 _meanBS[0][0][2]=36.5614;
693 _meanBS[0][0][3]=1265.25;
694 _meanBM[0][0][0]=-0.00275381;
695 _meanBM[0][0][1]=0.0812447;
696 _meanBM[0][0][2]=216.885;
697 _meanBM[0][0][3]=264.754;
698 _meanR9[0][0][0]=0.952584;
699 _meanR9[0][0][1]=22.7119;
700 _meanR9[0][0][2]=402.816;
701 _meanR9[0][0][3]=0;
702
703 _sigmaScale[0][0][0]=0.167184;
704 _sigmaScale[0][0][1]=6.14323e-11;
705 _sigmaScale[0][0][2]=0.00769693;
706 _sigmaScale[0][0][3]=0;
707 _sigmaAT[0][0][0]=0.228255;
708 _sigmaAT[0][0][1]=0;
709 _sigmaAT[0][0][2]=0;
710 _sigmaAT[0][0][3]=0;
711 _sigmaAC[0][0][0]=-0.00411906;
712 _sigmaAC[0][0][1]=0.077799;
713 _sigmaAC[0][0][2]=23.1033;
714 _sigmaAC[0][0][3]=-3e+17;
715 _sigmaAS[0][0][0]=0;
716 _sigmaAS[0][0][1]=0;
717 _sigmaAS[0][0][2]=0;
718 _sigmaAS[0][0][3]=0;
719 _sigmaAM[0][0][0]=-0.000130695;
720 _sigmaAM[0][0][1]=11.2121;
721 _sigmaAM[0][0][2]=468.535;
722 _sigmaAM[0][0][3]=407.652;
723 _sigmaBT[0][0][0]=1.33384e-05;
724 _sigmaBT[0][0][1]=8.77098;
725 _sigmaBT[0][0][2]=324.048;
726 _sigmaBT[0][0][3]=239.868;
727 _sigmaBC[0][0][0]=-0.00281964;
728 _sigmaBC[0][0][1]=0.125811;
729 _sigmaBC[0][0][2]=538.949;
730 _sigmaBC[0][0][3]=1358.76;
731 _sigmaBS[0][0][0]=0;
732 _sigmaBS[0][0][1]=0;
733 _sigmaBS[0][0][2]=0;
734 _sigmaBS[0][0][3]=0;
735 _sigmaBM[0][0][0]=-0.00293676;
736 _sigmaBM[0][0][1]=8.88276;
737 _sigmaBM[0][0][2]=350.032;
738 _sigmaBM[0][0][3]=580.354;
739 _sigmaR9[0][0][0]=0.955876;
740 _sigmaR9[0][0][1]=2254.5;
741 _sigmaR9[0][0][2]=14627;
742 _sigmaR9[0][0][3]=0;
743
744 _meanScale[0][1][0]=0.888348;
745 _meanScale[0][1][1]=1.20452e-05;
746 _meanScale[0][1][2]=-1.04458e-05;
747 _meanScale[0][1][3]=-0.542383;
748 _meanAC[0][1][0]=-0.00320856;
749 _meanAC[0][1][1]=0.0240109;
750 _meanAC[0][1][2]=115.145;
751 _meanAC[0][1][3]=205.859;
752 _meanAS[0][1][0]=0.0349736;
753 _meanAS[0][1][1]=-0.00232864;
754 _meanAS[0][1][2]=318.584;
755 _meanAS[0][1][3]=1.4e+09;
756 _meanAM[0][1][0]=-0.00104798;
757 _meanAM[0][1][1]=0.208249;
758 _meanAM[0][1][2]=297.049;
759 _meanAM[0][1][3]=220.609;
760 _meanBC[0][1][0]=-0.00420429;
761 _meanBC[0][1][1]=0.00203991;
762 _meanBC[0][1][2]=172.278;
763 _meanBC[0][1][3]=410.677;
764 _meanBS[0][1][0]=-0.0430854;
765 _meanBS[0][1][1]=0.0961883;
766 _meanBS[0][1][2]=0.196958;
767 _meanBS[0][1][3]=11442.2;
768 _meanBM[0][1][0]=-0.00389457;
769 _meanBM[0][1][1]=0.0449086;
770 _meanBM[0][1][2]=78.9252;
771 _meanBM[0][1][3]=103.237;
772 _meanR9[0][1][0]=0.0182102;
773 _meanR9[0][1][1]=-0.03752;
774 _meanR9[0][1][2]=0.0198881;
775 _meanR9[0][1][3]=0;
776
777 _sigmaScale[0][1][0]=0.386681;
778 _sigmaScale[0][1][1]=0.0913412;
779 _sigmaScale[0][1][2]=0.00119232;
780 _sigmaScale[0][1][3]=0;
781 _sigmaAT[0][1][0]=1.36562;
782 _sigmaAT[0][1][1]=0;
783 _sigmaAT[0][1][2]=0;
784 _sigmaAT[0][1][3]=0;
785 _sigmaAC[0][1][0]=-0.00504613;
786 _sigmaAC[0][1][1]=-1.09115;
787 _sigmaAC[0][1][2]=8.57406;
788 _sigmaAC[0][1][3]=57.1351;
789 _sigmaAS[0][1][0]=0;
790 _sigmaAS[0][1][1]=0;
791 _sigmaAS[0][1][2]=0;
792 _sigmaAS[0][1][3]=0;
793 _sigmaAM[0][1][0]=-0.00014319;
794 _sigmaAM[0][1][1]=5.39527;
795 _sigmaAM[0][1][2]=432.566;
796 _sigmaAM[0][1][3]=265.165;
797 _sigmaBT[0][1][0]=-0.040161;
798 _sigmaBT[0][1][1]=2.65711;
799 _sigmaBT[0][1][2]=-0.398357;
800 _sigmaBT[0][1][3]=-0.440649;
801 _sigmaBC[0][1][0]=0.00580015;
802 _sigmaBC[0][1][1]=-0.631833;
803 _sigmaBC[0][1][2]=18594.3;
804 _sigmaBC[0][1][3]=4.00955e+08;
805 _sigmaBS[0][1][0]=0;
806 _sigmaBS[0][1][1]=0;
807 _sigmaBS[0][1][2]=0;
808 _sigmaBS[0][1][3]=0;
809 _sigmaBM[0][1][0]=-0.00376665;
810 _sigmaBM[0][1][1]=3.74316;
811 _sigmaBM[0][1][2]=102.72;
812 _sigmaBM[0][1][3]=157.396;
813 _sigmaR9[0][1][0]=-3.12696;
814 _sigmaR9[0][1][1]=1.75114;
815 _sigmaR9[0][1][2]=0;
816 _sigmaR9[0][1][3]=0;
817
818 _meanScale[1][0][0]=0.999461;
819 _meanScale[1][0][1]=4.37414e-06;
820 _meanScale[1][0][2]=4.92078e-06;
821 _meanScale[1][0][3]=-0.121609;
822 _meanAC[1][0][0]=-0.000396058;
823 _meanAC[1][0][1]=0.0144837;
824 _meanAC[1][0][2]=1374.93;
825 _meanAC[1][0][3]=945.634;
826 _meanAS[1][0][0]=-0.000871036;
827 _meanAS[1][0][1]=0.0442747;
828 _meanAS[1][0][2]=645.709;
829 _meanAS[1][0][3]=962.845;
830 _meanAM[1][0][0]=0.000434298;
831 _meanAM[1][0][1]=0.0658628;
832 _meanAM[1][0][2]=1928.49;
833 _meanAM[1][0][3]=728.522;
834 _meanBC[1][0][0]=-0.000452212;
835 _meanBC[1][0][1]=0.0129968;
836 _meanBC[1][0][2]=1056.08;
837 _meanBC[1][0][3]=759.102;
838 _meanBS[1][0][0]=-0.000786157;
839 _meanBS[1][0][1]=0.0346555;
840 _meanBS[1][0][2]=592.239;
841 _meanBS[1][0][3]=854.285;
842 _meanBM[1][0][0]=-0.0665038;
843 _meanBM[1][0][1]=-0.00211713;
844 _meanBM[1][0][2]=4.84395;
845 _meanBM[1][0][3]=11.6644;
846 _meanR9[1][0][0]=0.971355;
847 _meanR9[1][0][1]=47.2751;
848 _meanR9[1][0][2]=536.907;
849 _meanR9[1][0][3]=0;
850
851 _sigmaScale[1][0][0]=0.254641;
852 _sigmaScale[1][0][1]=0.00264818;
853 _sigmaScale[1][0][2]=0.0114953;
854 _sigmaScale[1][0][3]=0;
855 _sigmaAT[1][0][0]=0.935839;
856 _sigmaAT[1][0][1]=0;
857 _sigmaAT[1][0][2]=0;
858 _sigmaAT[1][0][3]=0;
859 _sigmaAC[1][0][0]=-0.00476475;
860 _sigmaAC[1][0][1]=2.14548;
861 _sigmaAC[1][0][2]=29937;
862 _sigmaAC[1][0][3]=2.6e+11;
863 _sigmaAS[1][0][0]=-8.17285e-05;
864 _sigmaAS[1][0][1]=1.5821;
865 _sigmaAS[1][0][2]=1928.83;
866 _sigmaAS[1][0][3]=902.519;
867 _sigmaAM[1][0][0]=0.0278577;
868 _sigmaAM[1][0][1]=0.58439;
869 _sigmaAM[1][0][2]=43.3575;
870 _sigmaAM[1][0][3]=19.7836;
871 _sigmaBT[1][0][0]=-0.456051;
872 _sigmaBT[1][0][1]=0;
873 _sigmaBT[1][0][2]=0;
874 _sigmaBT[1][0][3]=0;
875 _sigmaBC[1][0][0]=-0.00264527;
876 _sigmaBC[1][0][1]=0.696043;
877 _sigmaBC[1][0][2]=7.49509e+12;
878 _sigmaBC[1][0][3]=96843;
879 _sigmaBS[1][0][0]=0.000258933;
880 _sigmaBS[1][0][1]=1.28387;
881 _sigmaBS[1][0][2]=1668.71;
882 _sigmaBS[1][0][3]=730.716;
883 _sigmaBM[1][0][0]=0.00121506;
884 _sigmaBM[1][0][1]=0.938541;
885 _sigmaBM[1][0][2]=9003.57;
886 _sigmaBM[1][0][3]=288.897;
887 _sigmaR9[1][0][0]=1.01207;
888 _sigmaR9[1][0][1]=-816.244;
889 _sigmaR9[1][0][2]=-16283.8;
890 _sigmaR9[1][0][3]=0;
891
892 _meanScale[1][1][0]=0.324634;
893 _meanScale[1][1][1]=9.48206e-05;
894 _meanScale[1][1][2]=1.0e-12;
895 _meanScale[1][1][3]=1.0e-12;
896 _meanAC[1][1][0]=-0.00158311;
897 _meanAC[1][1][1]=0.0106161;
898 _meanAC[1][1][2]=338.964;
899 _meanAC[1][1][3]=797.172;
900 _meanAS[1][1][0]=-0.00960269;
901 _meanAS[1][1][1]=-0.00496491;
902 _meanAS[1][1][2]=934.472;
903 _meanAS[1][1][3]=8.32667e-16;
904 _meanAM[1][1][0]=-0.00219814;
905 _meanAM[1][1][1]=0.653906;
906 _meanAM[1][1][2]=0.0949848;
907 _meanAM[1][1][3]=0.0977831;
908 _meanBC[1][1][0]=-0.00423472;
909 _meanBC[1][1][1]=0.0279695;
910 _meanBC[1][1][2]=28073.7;
911 _meanBC[1][1][3]=118612;
912 _meanBS[1][1][0]=-0.0012476;
913 _meanBS[1][1][1]=0.02744;
914 _meanBS[1][1][2]=390.697;
915 _meanBS[1][1][3]=727.861;
916 _meanBM[1][1][0]=-1.36573e-05;
917 _meanBM[1][1][1]=0.0667504;
918 _meanBM[1][1][2]=-80154.4;
919 _meanBM[1][1][3]=576.637;
920 _meanR9[1][1][0]=0.113317;
921 _meanR9[1][1][1]=0.0142669;
922 _meanR9[1][1][2]=-0.125721;
923 _meanR9[1][1][3]=0;
924
925 _sigmaScale[1][1][0]=0.471767;
926 _sigmaScale[1][1][1]=0.211196;
927 _sigmaScale[1][1][2]=0.0240124;
928 _sigmaScale[1][1][3]=0;
929 _sigmaAT[1][1][0]=0.404395;
930 _sigmaAT[1][1][1]=0;
931 _sigmaAT[1][1][2]=0;
932 _sigmaAT[1][1][3]=0;
933 _sigmaAC[1][1][0]=0.00173151;
934 _sigmaAC[1][1][1]=-0.479291;
935 _sigmaAC[1][1][2]=11583.5;
936 _sigmaAC[1][1][3]=-7e+09;
937 _sigmaAS[1][1][0]=0.000450387;
938 _sigmaAS[1][1][1]=0.662978;
939 _sigmaAS[1][1][2]=924.051;
940 _sigmaAS[1][1][3]=448.417;
941 _sigmaAM[1][1][0]=0.00335603;
942 _sigmaAM[1][1][1]=0.648407;
943 _sigmaAM[1][1][2]=134.672;
944 _sigmaAM[1][1][3]=27.4139;
945 _sigmaBT[1][1][0]=0.602402;
946 _sigmaBT[1][1][1]=0;
947 _sigmaBT[1][1][2]=0;
948 _sigmaBT[1][1][3]=0;
949 _sigmaBC[1][1][0]=-0.00256192;
950 _sigmaBC[1][1][1]=2.01276;
951 _sigmaBC[1][1][2]=114558;
952 _sigmaBC[1][1][3]=2.15421e+06;
953 _sigmaBS[1][1][0]=0.00151576;
954 _sigmaBS[1][1][1]=0.359084;
955 _sigmaBS[1][1][2]=329.414;
956 _sigmaBS[1][1][3]=154.509;
957 _sigmaBM[1][1][0]=-0.0452587;
958 _sigmaBM[1][1][1]=1.26253;
959 _sigmaBM[1][1][2]=1.9e+09;
960 _sigmaBM[1][1][3]=1058.76;
961 _sigmaR9[1][1][0]=4.59667;
962 _sigmaR9[1][1][1]=-5.14404;
963 _sigmaR9[1][1][2]=0;
964 _sigmaR9[1][1][3]=0;
965
966 _initialised=true;
967 }
968
969 if(s=="3_11") {
970 _meanScale[0][0][0]=0.994363;
971 _meanScale[0][0][1]=4.84904e-07;
972 _meanScale[0][0][2]=1.54475e-05;
973 _meanScale[0][0][3]=-0.103309;
974 _meanAC[0][0][0]=-0.00360057;
975 _meanAC[0][0][1]=0.00970858;
976 _meanAC[0][0][2]=409.406;
977 _meanAC[0][0][3]=527.952;
978 _meanAS[0][0][0]=-1.1;
979 _meanAS[0][0][1]=0.00135995;
980 _meanAS[0][0][2]=295.712;
981 _meanAS[0][0][3]=5.13202e+07;
982 _meanAM[0][0][0]=-0.00129854;
983 _meanAM[0][0][1]=0.151466;
984 _meanAM[0][0][2]=261.828;
985 _meanAM[0][0][3]=214.662;
986 _meanBC[0][0][0]=-0.00286864;
987 _meanBC[0][0][1]=0.0114118;
988 _meanBC[0][0][2]=563.962;
989 _meanBC[0][0][3]=412.922;
990 _meanBS[0][0][0]=-0.00210996;
991 _meanBS[0][0][1]=0.00327867;
992 _meanBS[0][0][2]=23.617;
993 _meanBS[0][0][3]=1018.45;
994 _meanBM[0][0][0]=-0.002287;
995 _meanBM[0][0][1]=0.0848984;
996 _meanBM[0][0][2]=235.575;
997 _meanBM[0][0][3]=260.773;
998 _meanR9[0][0][0]=0.951724;
999 _meanR9[0][0][1]=23.7181;
1000 _meanR9[0][0][2]=177.34;
1001 _meanR9[0][0][3]=0;
1002
1003 _sigmaScale[0][0][0]=0.187578;
1004 _sigmaScale[0][0][1]=-0.000901045;
1005 _sigmaScale[0][0][2]=0.00673186;
1006 _sigmaScale[0][0][3]=0;
1007 _sigmaAT[0][0][0]=0.183777;
1008 _sigmaAT[0][0][1]=0;
1009 _sigmaAT[0][0][2]=0;
1010 _sigmaAT[0][0][3]=0;
1011 _sigmaAC[0][0][0]=-0.00430202;
1012 _sigmaAC[0][0][1]=0.122501;
1013 _sigmaAC[0][0][2]=51.9772;
1014 _sigmaAC[0][0][3]=-3e+17;
1015 _sigmaAS[0][0][0]=0;
1016 _sigmaAS[0][0][1]=0;
1017 _sigmaAS[0][0][2]=0;
1018 _sigmaAS[0][0][3]=0;
1019 _sigmaAM[0][0][0]=0.00101883;
1020 _sigmaAM[0][0][1]=11.2009;
1021 _sigmaAM[0][0][2]=593.111;
1022 _sigmaAM[0][0][3]=345.433;
1023 _sigmaBT[0][0][0]=-6.02356e-05;
1024 _sigmaBT[0][0][1]=6.99896;
1025 _sigmaBT[0][0][2]=235.996;
1026 _sigmaBT[0][0][3]=196;
1027 _sigmaBC[0][0][0]=-0.00282254;
1028 _sigmaBC[0][0][1]=0.18764;
1029 _sigmaBC[0][0][2]=509.825;
1030 _sigmaBC[0][0][3]=1400.14;
1031 _sigmaBS[0][0][0]=0;
1032 _sigmaBS[0][0][1]=0;
1033 _sigmaBS[0][0][2]=0;
1034 _sigmaBS[0][0][3]=0;
1035 _sigmaBM[0][0][0]=-0.00252199;
1036 _sigmaBM[0][0][1]=39.1544;
1037 _sigmaBM[0][0][2]=612.481;
1038 _sigmaBM[0][0][3]=905.994;
1039 _sigmaR9[0][0][0]=0.95608;
1040 _sigmaR9[0][0][1]=2203.31;
1041 _sigmaR9[0][0][2]=-22454.2;
1042 _sigmaR9[0][0][3]=0;
1043
1044 _meanScale[0][1][0]=0.889415;
1045 _meanScale[0][1][1]=1.21788e-05;
1046 _meanScale[0][1][2]=-4.3438e-06;
1047 _meanScale[0][1][3]=-0.629968;
1048 _meanAC[0][1][0]=-0.00313701;
1049 _meanAC[0][1][1]=0.0227998;
1050 _meanAC[0][1][2]=128.653;
1051 _meanAC[0][1][3]=234.333;
1052 _meanAS[0][1][0]=0.0346198;
1053 _meanAS[0][1][1]=-0.00261336;
1054 _meanAS[0][1][2]=177.983;
1055 _meanAS[0][1][3]=1.19839e+14;
1056 _meanAM[0][1][0]=-0.00100745;
1057 _meanAM[0][1][1]=0.264247;
1058 _meanAM[0][1][2]=337.255;
1059 _meanAM[0][1][3]=251.454;
1060 _meanBC[0][1][0]=-0.00397794;
1061 _meanBC[0][1][1]=0.00219079;
1062 _meanBC[0][1][2]=176.842;
1063 _meanBC[0][1][3]=450.29;
1064 _meanBS[0][1][0]=-2e+07;
1065 _meanBS[0][1][1]=0.0957598;
1066 _meanBS[0][1][2]=-8.88573e-27;
1067 _meanBS[0][1][3]=11442.2;
1068 _meanBM[0][1][0]=-0.00366315;
1069 _meanBM[0][1][1]=0.0622186;
1070 _meanBM[0][1][2]=94.5155;
1071 _meanBM[0][1][3]=126.404;
1072 _meanR9[0][1][0]=0.00636789;
1073 _meanR9[0][1][1]=0.000336062;
1074 _meanR9[0][1][2]=-0.0092699;
1075 _meanR9[0][1][3]=0;
1076
1077 _sigmaScale[0][1][0]=0.685096;
1078 _sigmaScale[0][1][1]=0.129065;
1079 _sigmaScale[0][1][2]=-0.00212486;
1080 _sigmaScale[0][1][3]=0;
1081 _sigmaAT[0][1][0]=0.898865;
1082 _sigmaAT[0][1][1]=0;
1083 _sigmaAT[0][1][2]=0;
1084 _sigmaAT[0][1][3]=0;
1085 _sigmaAC[0][1][0]=-0.00492979;
1086 _sigmaAC[0][1][1]=-1.20123;
1087 _sigmaAC[0][1][2]=2.89231;
1088 _sigmaAC[0][1][3]=18.2059;
1089 _sigmaAS[0][1][0]=0;
1090 _sigmaAS[0][1][1]=0;
1091 _sigmaAS[0][1][2]=0;
1092 _sigmaAS[0][1][3]=0;
1093 _sigmaAM[0][1][0]=-0.000727825;
1094 _sigmaAM[0][1][1]=8.42395;
1095 _sigmaAM[0][1][2]=512.032;
1096 _sigmaAM[0][1][3]=415.962;
1097 _sigmaBT[0][1][0]=-0.0336364;
1098 _sigmaBT[0][1][1]=2.45182;
1099 _sigmaBT[0][1][2]=-0.284353;
1100 _sigmaBT[0][1][3]=-0.31679;
1101 _sigmaBC[0][1][0]=0.00510553;
1102 _sigmaBC[0][1][1]=-0.953869;
1103 _sigmaBC[0][1][2]=113872;
1104 _sigmaBC[0][1][3]=1.35966e+09;
1105 _sigmaBS[0][1][0]=0;
1106 _sigmaBS[0][1][1]=0;
1107 _sigmaBS[0][1][2]=0;
1108 _sigmaBS[0][1][3]=0;
1109 _sigmaBM[0][1][0]=-0.0034071;
1110 _sigmaBM[0][1][1]=4.19719;
1111 _sigmaBM[0][1][2]=128.952;
1112 _sigmaBM[0][1][3]=180.604;
1113 _sigmaR9[0][1][0]=-3.38988;
1114 _sigmaR9[0][1][1]=2.0714;
1115 _sigmaR9[0][1][2]=0;
1116 _sigmaR9[0][1][3]=0;
1117
1118 _meanScale[1][0][0]=1.0009;
1119 _meanScale[1][0][1]=-4.79805e-06;
1120 _meanScale[1][0][2]=3.34625e-05;
1121 _meanScale[1][0][3]=-0.194267;
1122 _meanAC[1][0][0]=-0.000177563;
1123 _meanAC[1][0][1]=0.0122839;
1124 _meanAC[1][0][2]=1798.92;
1125 _meanAC[1][0][3]=776.856;
1126 _meanAS[1][0][0]=-0.000533039;
1127 _meanAS[1][0][1]=0.0642604;
1128 _meanAS[1][0][2]=969.596;
1129 _meanAS[1][0][3]=1004.15;
1130 _meanAM[1][0][0]=0.000163185;
1131 _meanAM[1][0][1]=0.085936;
1132 _meanAM[1][0][2]=1593.17;
1133 _meanAM[1][0][3]=681.623;
1134 _meanBC[1][0][0]=-0.000518186;
1135 _meanBC[1][0][1]=0.0121868;
1136 _meanBC[1][0][2]=1112.53;
1137 _meanBC[1][0][3]=933.281;
1138 _meanBS[1][0][0]=-0.000750734;
1139 _meanBS[1][0][1]=0.03859;
1140 _meanBS[1][0][2]=547.579;
1141 _meanBS[1][0][3]=775.887;
1142 _meanBM[1][0][0]=-0.190395;
1143 _meanBM[1][0][1]=-0.00362647;
1144 _meanBM[1][0][2]=5.25687;
1145 _meanBM[1][0][3]=-2.8e+08;
1146 _meanR9[1][0][0]=0.972346;
1147 _meanR9[1][0][1]=53.9185;
1148 _meanR9[1][0][2]=1354.5;
1149 _meanR9[1][0][3]=0;
1150
1151 _sigmaScale[1][0][0]=0.348019;
1152 _sigmaScale[1][0][1]=-6.43731e-11;
1153 _sigmaScale[1][0][2]=0.0158647;
1154 _sigmaScale[1][0][3]=0;
1155 _sigmaAT[1][0][0]=0.215239;
1156 _sigmaAT[1][0][1]=0;
1157 _sigmaAT[1][0][2]=0;
1158 _sigmaAT[1][0][3]=0;
1159 _sigmaAC[1][0][0]=-0.00492298;
1160 _sigmaAC[1][0][1]=-3.40058;
1161 _sigmaAC[1][0][2]=17263.9;
1162 _sigmaAC[1][0][3]=2.6e+11;
1163 _sigmaAS[1][0][0]=-0.000237998;
1164 _sigmaAS[1][0][1]=3.0258;
1165 _sigmaAS[1][0][2]=1811.25;
1166 _sigmaAS[1][0][3]=1846.79;
1167 _sigmaAM[1][0][0]=0.0210134;
1168 _sigmaAM[1][0][1]=0.328359;
1169 _sigmaAM[1][0][2]=22.49;
1170 _sigmaAM[1][0][3]=14.5021;
1171 _sigmaBT[1][0][0]=-0.495072;
1172 _sigmaBT[1][0][1]=0;
1173 _sigmaBT[1][0][2]=0;
1174 _sigmaBT[1][0][3]=0;
1175 _sigmaBC[1][0][0]=-0.00265007;
1176 _sigmaBC[1][0][1]=0.970549;
1177 _sigmaBC[1][0][2]=-6.89119e+07;
1178 _sigmaBC[1][0][3]=180110;
1179 _sigmaBS[1][0][0]=0.00045833;
1180 _sigmaBS[1][0][1]=2.16342;
1181 _sigmaBS[1][0][2]=3582.4;
1182 _sigmaBS[1][0][3]=1100.36;
1183 _sigmaBM[1][0][0]=0.00188871;
1184 _sigmaBM[1][0][1]=1.66177;
1185 _sigmaBM[1][0][2]=3.2e+08;
1186 _sigmaBM[1][0][3]=2163.81;
1187 _sigmaR9[1][0][0]=-220.415;
1188 _sigmaR9[1][0][1]=5.19136e-08;
1189 _sigmaR9[1][0][2]=3.04028e-10;
1190 _sigmaR9[1][0][3]=0;
1191
1192 _meanScale[1][1][0]=0.338011;
1193 _meanScale[1][1][1]=9.47815e-05;
1194 _meanScale[1][1][2]=-0.000238735;
1195 _meanScale[1][1][3]=-0.846414;
1196 _meanAC[1][1][0]=-0.00125367;
1197 _meanAC[1][1][1]=0.013324;
1198 _meanAC[1][1][2]=203.988;
1199 _meanAC[1][1][3]=431.951;
1200 _meanAS[1][1][0]=0.000282607;
1201 _meanAS[1][1][1]=0.0307431;
1202 _meanAS[1][1][2]=343.509;
1203 _meanAS[1][1][3]=274.957;
1204 _meanAM[1][1][0]=0.0020258;
1205 _meanAM[1][1][1]=0.643913;
1206 _meanAM[1][1][2]=0.0693877;
1207 _meanAM[1][1][3]=0.0816029;
1208 _meanBC[1][1][0]=-0.00513833;
1209 _meanBC[1][1][1]=5.94424e+08;
1210 _meanBC[1][1][2]=-62814.9;
1211 _meanBC[1][1][3]=118612;
1212 _meanBS[1][1][0]=-0.00152129;
1213 _meanBS[1][1][1]=0.0234694;
1214 _meanBS[1][1][2]=186.483;
1215 _meanBS[1][1][3]=754.201;
1216 _meanBM[1][1][0]=-0.000404987;
1217 _meanBM[1][1][1]=0.156384;
1218 _meanBM[1][1][2]=-1.7e+08;
1219 _meanBM[1][1][3]=1793.83;
1220 _meanR9[1][1][0]=0.0645278;
1221 _meanR9[1][1][1]=0.161614;
1222 _meanR9[1][1][2]=-0.215822;
1223 _meanR9[1][1][3]=0;
1224
1225 _sigmaScale[1][1][0]=1.07376;
1226 _sigmaScale[1][1][1]=7.47238e-13;
1227 _sigmaScale[1][1][2]=0.0289594;
1228 _sigmaScale[1][1][3]=0;
1229 _sigmaAT[1][1][0]=-0.520907;
1230 _sigmaAT[1][1][1]=0;
1231 _sigmaAT[1][1][2]=0;
1232 _sigmaAT[1][1][3]=0;
1233 _sigmaAC[1][1][0]=0.00165941;
1234 _sigmaAC[1][1][1]=-0.351422;
1235 _sigmaAC[1][1][2]=8968.94;
1236 _sigmaAC[1][1][3]=-7e+09;
1237 _sigmaAS[1][1][0]=0.000490279;
1238 _sigmaAS[1][1][1]=0.554531;
1239 _sigmaAS[1][1][2]=469.111;
1240 _sigmaAS[1][1][3]=457.541;
1241 _sigmaAM[1][1][0]=0.00102079;
1242 _sigmaAM[1][1][1]=0.628055;
1243 _sigmaAM[1][1][2]=53.9452;
1244 _sigmaAM[1][1][3]=72.911;
1245 _sigmaBT[1][1][0]=-0.461542;
1246 _sigmaBT[1][1][1]=0;
1247 _sigmaBT[1][1][2]=0;
1248 _sigmaBT[1][1][3]=0;
1249 _sigmaBC[1][1][0]=-0.00219303;
1250 _sigmaBC[1][1][1]=0.874327;
1251 _sigmaBC[1][1][2]=71353.2;
1252 _sigmaBC[1][1][3]=2.09924e+08;
1253 _sigmaBS[1][1][0]=0.00104021;
1254 _sigmaBS[1][1][1]=0.236098;
1255 _sigmaBS[1][1][2]=482.954;
1256 _sigmaBS[1][1][3]=191.984;
1257 _sigmaBM[1][1][0]=-0.000116086;
1258 _sigmaBM[1][1][1]=2.4438;
1259 _sigmaBM[1][1][2]=1.9e+09;
1260 _sigmaBM[1][1][3]=-700.271;
1261 _sigmaR9[1][1][0]=4.59374;
1262 _sigmaR9[1][1][1]=-5.06202;
1263 _sigmaR9[1][1][2]=0;
1264 _sigmaR9[1][1][3]=0;
1265
1266 _initialised=true;
1267 }
1268
1269 if(s=="4_2") {
1270 _meanScale[0][0][0]=0.996799;
1271 _meanScale[0][0][1]=5.60811e-07;
1272 _meanScale[0][0][2]=1.75671e-05;
1273 _meanScale[0][0][3]=-0.0972943;
1274 _meanAC[0][0][0]=-0.00348412;
1275 _meanAC[0][0][1]=0.010197;
1276 _meanAC[0][0][2]=463.582;
1277 _meanAC[0][0][3]=520.443;
1278 _meanAS[0][0][0]=-1.1;
1279 _meanAS[0][0][1]=0.00135995;
1280 _meanAS[0][0][2]=295.712;
1281 _meanAS[0][0][3]=5.13202e+07;
1282 _meanAM[0][0][0]=-0.00120395;
1283 _meanAM[0][0][1]=0.1436;
1284 _meanAM[0][0][2]=262.307;
1285 _meanAM[0][0][3]=202.913;
1286 _meanBC[0][0][0]=-0.00274879;
1287 _meanBC[0][0][1]=0.0126012;
1288 _meanBC[0][0][2]=612.055;
1289 _meanBC[0][0][3]=397.039;
1290 _meanBS[0][0][0]=-0.00203352;
1291 _meanBS[0][0][1]=0.00374733;
1292 _meanBS[0][0][2]=48.7328;
1293 _meanBS[0][0][3]=1128;
1294 _meanBM[0][0][0]=-0.00183083;
1295 _meanBM[0][0][1]=0.0683669;
1296 _meanBM[0][0][2]=218.027;
1297 _meanBM[0][0][3]=210.899;
1298 _meanR9[0][0][0]=0.946449;
1299 _meanR9[0][0][1]=18.7205;
1300 _meanR9[0][0][2]=215.858;
1301 _meanR9[0][0][3]=0;
1302
1303 _sigmaScale[0][0][0]=0.170521;
1304 _sigmaScale[0][0][1]=0.0219663;
1305 _sigmaScale[0][0][2]=0.00652237;
1306 _sigmaScale[0][0][3]=0;
1307 _sigmaAT[0][0][0]=0.169953;
1308 _sigmaAT[0][0][1]=0;
1309 _sigmaAT[0][0][2]=0;
1310 _sigmaAT[0][0][3]=0;
1311 _sigmaAC[0][0][0]=-0.00383749;
1312 _sigmaAC[0][0][1]=0.0873992;
1313 _sigmaAC[0][0][2]=48.3297;
1314 _sigmaAC[0][0][3]=-3e+17;
1315 _sigmaAS[0][0][0]=0;
1316 _sigmaAS[0][0][1]=0;
1317 _sigmaAS[0][0][2]=0;
1318 _sigmaAS[0][0][3]=0;
1319 _sigmaAM[0][0][0]=0.000929953;
1320 _sigmaAM[0][0][1]=10.4322;
1321 _sigmaAM[0][0][2]=599.042;
1322 _sigmaAM[0][0][3]=302.713;
1323 _sigmaBT[0][0][0]=-0.00237746;
1324 _sigmaBT[0][0][1]=2.84349;
1325 _sigmaBT[0][0][2]=125.522;
1326 _sigmaBT[0][0][3]=144.262;
1327 _sigmaBC[0][0][0]=-0.00170611;
1328 _sigmaBC[0][0][1]=0.260614;
1329 _sigmaBC[0][0][2]=985.412;
1330 _sigmaBC[0][0][3]=806.274;
1331 _sigmaBS[0][0][0]=0;
1332 _sigmaBS[0][0][1]=0;
1333 _sigmaBS[0][0][2]=0;
1334 _sigmaBS[0][0][3]=0;
1335 _sigmaBM[0][0][0]=-0.00252749;
1336 _sigmaBM[0][0][1]=50.861;
1337 _sigmaBM[0][0][2]=673.202;
1338 _sigmaBM[0][0][3]=1011.63;
1339 _sigmaR9[0][0][0]=0.953432;
1340 _sigmaR9[0][0][1]=1814.6;
1341 _sigmaR9[0][0][2]=25838.3;
1342 _sigmaR9[0][0][3]=0;
1343
1344 _meanScale[0][1][0]=0.888925;
1345 _meanScale[0][1][1]=-1.74431e-05;
1346 _meanScale[0][1][2]=2.96023e-05;
1347 _meanScale[0][1][3]=-0.651503;
1348 _meanAC[0][1][0]=-0.00322338;
1349 _meanAC[0][1][1]=0.0220617;
1350 _meanAC[0][1][2]=137.003;
1351 _meanAC[0][1][3]=237.095;
1352 _meanAS[0][1][0]=0.0331431;
1353 _meanAS[0][1][1]=-0.00594756;
1354 _meanAS[0][1][2]=2675.67;
1355 _meanAS[0][1][3]=1.4e+09;
1356 _meanAM[0][1][0]=-0.000636963;
1357 _meanAM[0][1][1]=0.15048;
1358 _meanAM[0][1][2]=395.704;
1359 _meanAM[0][1][3]=306.8;
1360 _meanBC[0][1][0]=-0.00357393;
1361 _meanBC[0][1][1]=0.00449012;
1362 _meanBC[0][1][2]=887.818;
1363 _meanBC[0][1][3]=855.377;
1364 _meanBS[0][1][0]=-297.287;
1365 _meanBS[0][1][1]=0.0956803;
1366 _meanBS[0][1][2]=-4.74338e-20;
1367 _meanBS[0][1][3]=11442.2;
1368 _meanBM[0][1][0]=-0.00320834;
1369 _meanBM[0][1][1]=0.043721;
1370 _meanBM[0][1][2]=132.981;
1371 _meanBM[0][1][3]=171.418;
1372 _meanR9[0][1][0]=0.0136009;
1373 _meanR9[0][1][1]=-0.0214006;
1374 _meanR9[0][1][2]=0.00866824;
1375 _meanR9[0][1][3]=0;
1376
1377 _sigmaScale[0][1][0]=0.445368;
1378 _sigmaScale[0][1][1]=0.0898336;
1379 _sigmaScale[0][1][2]=-0.00333875;
1380 _sigmaScale[0][1][3]=0;
1381 _sigmaAT[0][1][0]=1.25749;
1382 _sigmaAT[0][1][1]=0;
1383 _sigmaAT[0][1][2]=0;
1384 _sigmaAT[0][1][3]=0;
1385 _sigmaAC[0][1][0]=-0.00360692;
1386 _sigmaAC[0][1][1]=-1.04963;
1387 _sigmaAC[0][1][2]=10.3527;
1388 _sigmaAC[0][1][3]=29.0662;
1389 _sigmaAS[0][1][0]=0;
1390 _sigmaAS[0][1][1]=0;
1391 _sigmaAS[0][1][2]=0;
1392 _sigmaAS[0][1][3]=0;
1393 _sigmaAM[0][1][0]=-0.000973088;
1394 _sigmaAM[0][1][1]=12.859;
1395 _sigmaAM[0][1][2]=466.397;
1396 _sigmaAM[0][1][3]=464.686;
1397 _sigmaBT[0][1][0]=-0.0284288;
1398 _sigmaBT[0][1][1]=2.6772;
1399 _sigmaBT[0][1][2]=-0.414022;
1400 _sigmaBT[0][1][3]=-0.424373;
1401 _sigmaBC[0][1][0]=0.00567218;
1402 _sigmaBC[0][1][1]=-0.829286;
1403 _sigmaBC[0][1][2]=48132;
1404 _sigmaBC[0][1][3]=3.1211e+08;
1405 _sigmaBS[0][1][0]=0;
1406 _sigmaBS[0][1][1]=0;
1407 _sigmaBS[0][1][2]=0;
1408 _sigmaBS[0][1][3]=0;
1409 _sigmaBM[0][1][0]=-0.00270505;
1410 _sigmaBM[0][1][1]=6.07197;
1411 _sigmaBM[0][1][2]=149.784;
1412 _sigmaBM[0][1][3]=203.478;
1413 _sigmaR9[0][1][0]=-2.78021;
1414 _sigmaR9[0][1][1]=1.33952;
1415 _sigmaR9[0][1][2]=0;
1416 _sigmaR9[0][1][3]=0;
1417
1418 _meanScale[1][0][0]=0.99928;
1419 _meanScale[1][0][1]=-3.23928e-05;
1420 _meanScale[1][0][2]=0.000126742;
1421 _meanScale[1][0][3]=-0.103714;
1422 _meanAC[1][0][0]=-0.000283383;
1423 _meanAC[1][0][1]=0.0150483;
1424 _meanAC[1][0][2]=1379.81;
1425 _meanAC[1][0][3]=750.912;
1426 _meanAS[1][0][0]=-0.00053446;
1427 _meanAS[1][0][1]=0.0702291;
1428 _meanAS[1][0][2]=835.991;
1429 _meanAS[1][0][3]=1023.41;
1430 _meanAM[1][0][0]=2.63208e-05;
1431 _meanAM[1][0][1]=0.258572;
1432 _meanAM[1][0][2]=2428.89;
1433 _meanAM[1][0][3]=2073.45;
1434 _meanBC[1][0][0]=-0.000345234;
1435 _meanBC[1][0][1]=0.0149896;
1436 _meanBC[1][0][2]=1403.55;
1437 _meanBC[1][0][3]=847.164;
1438 _meanBS[1][0][0]=-0.000411942;
1439 _meanBS[1][0][1]=0.0543678;
1440 _meanBS[1][0][2]=889.136;
1441 _meanBS[1][0][3]=937.071;
1442 _meanBM[1][0][0]=-0.186801;
1443 _meanBM[1][0][1]=-0.00221346;
1444 _meanBM[1][0][2]=3.52258;
1445 _meanBM[1][0][3]=3.17997e+06;
1446 _meanR9[1][0][0]=0.964924;
1447 _meanR9[1][0][1]=31.8205;
1448 _meanR9[1][0][2]=459.004;
1449 _meanR9[1][0][3]=0;
1450
1451 _sigmaScale[1][0][0]=0.344806;
1452 _sigmaScale[1][0][1]=6.93889e-18;
1453 _sigmaScale[1][0][2]=0.0154355;
1454 _sigmaScale[1][0][3]=0;
1455 _sigmaAT[1][0][0]=0.954147;
1456 _sigmaAT[1][0][1]=0;
1457 _sigmaAT[1][0][2]=0;
1458 _sigmaAT[1][0][3]=0;
1459 _sigmaAC[1][0][0]=48.1275;
1460 _sigmaAC[1][0][1]=1.50005e+08;
1461 _sigmaAC[1][0][2]=21231.6;
1462 _sigmaAC[1][0][3]=2.6e+11;
1463 _sigmaAS[1][0][0]=-0.000195931;
1464 _sigmaAS[1][0][1]=2.61977;
1465 _sigmaAS[1][0][2]=1321.33;
1466 _sigmaAS[1][0][3]=1267.31;
1467 _sigmaAM[1][0][0]=0.0277744;
1468 _sigmaAM[1][0][1]=0.316244;
1469 _sigmaAM[1][0][2]=21.1765;
1470 _sigmaAM[1][0][3]=13.0875;
1471 _sigmaBT[1][0][0]=-0.633404;
1472 _sigmaBT[1][0][1]=0;
1473 _sigmaBT[1][0][2]=0;
1474 _sigmaBT[1][0][3]=0;
1475 _sigmaBC[1][0][0]=-0.00320087;
1476 _sigmaBC[1][0][1]=8.94207;
1477 _sigmaBC[1][0][2]=7.49509e+12;
1478 _sigmaBC[1][0][3]=5.00279e+06;
1479 _sigmaBS[1][0][0]=0.000299388;
1480 _sigmaBS[1][0][1]=2.43008;
1481 _sigmaBS[1][0][2]=2885.75;
1482 _sigmaBS[1][0][3]=1072.72;
1483 _sigmaBM[1][0][0]=0.00154631;
1484 _sigmaBM[1][0][1]=23.6989;
1485 _sigmaBM[1][0][2]=1.2565e+07;
1486 _sigmaBM[1][0][3]=43957.4;
1487 _sigmaR9[1][0][0]=98.4538;
1488 _sigmaR9[1][0][1]=1.85379e-07;
1489 _sigmaR9[1][0][2]=-5.66067e-10;
1490 _sigmaR9[1][0][3]=0;
1491
1492 _meanScale[1][1][0]=0.325367;
1493 _meanScale[1][1][1]=8.5347e-05;
1494 _meanScale[1][1][2]=-0.000187217;
1495 _meanScale[1][1][3]=-0.991423;
1496 _meanAC[1][1][0]=-0.00114884;
1497 _meanAC[1][1][1]=0.00816447;
1498 _meanAC[1][1][2]=314.939;
1499 _meanAC[1][1][3]=614.316;
1500 _meanAS[1][1][0]=-0.00877504;
1501 _meanAS[1][1][1]=-0.00376867;
1502 _meanAS[1][1][2]=1471.46;
1503 _meanAS[1][1][3]=3.88578e-16;
1504 _meanAM[1][1][0]=0.000631949;
1505 _meanAM[1][1][1]=0.645715;
1506 _meanAM[1][1][2]=0.0241907;
1507 _meanAM[1][1][3]=0.0376477;
1508 _meanBC[1][1][0]=-0.00501182;
1509 _meanBC[1][1][1]=-5303.12;
1510 _meanBC[1][1][2]=41522.7;
1511 _meanBC[1][1][3]=118612;
1512 _meanBS[1][1][0]=-0.00133119;
1513 _meanBS[1][1][1]=0.0239645;
1514 _meanBS[1][1][2]=308.148;
1515 _meanBS[1][1][3]=752.554;
1516 _meanBM[1][1][0]=-8.08678e-05;
1517 _meanBM[1][1][1]=0.0502046;
1518 _meanBM[1][1][2]=-7.5e+06;
1519 _meanBM[1][1][3]=870.829;
1520 _meanR9[1][1][0]=0.20763;
1521 _meanR9[1][1][1]=-0.0992461;
1522 _meanR9[1][1][2]=-0.114749;
1523 _meanR9[1][1][3]=0;
1524
1525 _sigmaScale[1][1][0]=1.05009;
1526 _sigmaScale[1][1][1]=1.38778e-17;
1527 _sigmaScale[1][1][2]=0.0256383;
1528 _sigmaScale[1][1][3]=0;
1529 _sigmaAT[1][1][0]=-0.668389;
1530 _sigmaAT[1][1][1]=0;
1531 _sigmaAT[1][1][2]=0;
1532 _sigmaAT[1][1][3]=0;
1533 _sigmaAC[1][1][0]=0.00168503;
1534 _sigmaAC[1][1][1]=-0.540635;
1535 _sigmaAC[1][1][2]=95975.1;
1536 _sigmaAC[1][1][3]=-7e+09;
1537 _sigmaAS[1][1][0]=8.02356e-05;
1538 _sigmaAS[1][1][1]=0.854919;
1539 _sigmaAS[1][1][2]=526.113;
1540 _sigmaAS[1][1][3]=666.797;
1541 _sigmaAM[1][1][0]=-0.00504173;
1542 _sigmaAM[1][1][1]=0.910018;
1543 _sigmaAM[1][1][2]=45.1636;
1544 _sigmaAM[1][1][3]=754.491;
1545 _sigmaBT[1][1][0]=-0.816975;
1546 _sigmaBT[1][1][1]=0;
1547 _sigmaBT[1][1][2]=0;
1548 _sigmaBT[1][1][3]=0;
1549 _sigmaBC[1][1][0]=-0.00208737;
1550 _sigmaBC[1][1][1]=3.20678;
1551 _sigmaBC[1][1][2]=214874;
1552 _sigmaBC[1][1][3]=-5.1e+09;
1553 _sigmaBS[1][1][0]=0.0017277;
1554 _sigmaBS[1][1][1]=0.290957;
1555 _sigmaBS[1][1][2]=535.114;
1556 _sigmaBS[1][1][3]=317.952;
1557 _sigmaBM[1][1][0]=-0.0454821;
1558 _sigmaBM[1][1][1]=4.776;
1559 _sigmaBM[1][1][2]=1.9e+09;
1560 _sigmaBM[1][1][3]=14413;
1561 _sigmaR9[1][1][0]=4.83148;
1562 _sigmaR9[1][1][1]=-5.29859;
1563 _sigmaR9[1][1][2]=0;
1564 _sigmaR9[1][1][3]=0;
1565
1566 _initialised=true;
1567 }
1568
1569 assert(_initialised);
1570 return true;
1571 }
1572
1573 // Get the geometry of cracks and gaps from file
1574 bool PhotonFix::initialiseGeometry(const std::string &s, const std::string &infile) {
1575
1576 std::ifstream fin(infile.c_str());
1577 assert(fin);
1578
1579 std::cout << "Reading in here" << std::endl;
1580 for(unsigned i(0);i<169;i++) {
1581 for(unsigned j(0);j<360;j++) {
1582 for(unsigned k(0);k<2;k++) {
1583 fin >> _barrelCGap[i][j][k];
1584 }
1585 }
1586 }
1587
1588 for(unsigned i(0);i<33;i++) {
1589 for(unsigned j(0);j<180;j++) {
1590 for(unsigned k(0);k<2;k++) {
1591 fin >> _barrelSGap[i][j][k];
1592 }
1593 }
1594 }
1595
1596 for(unsigned i(0);i<7;i++) {
1597 for(unsigned j(0);j<18;j++) {
1598 for(unsigned k(0);k<2;k++) {
1599 fin >> _barrelMGap[i][j][k];
1600 }
1601 }
1602 }
1603 for(unsigned i(0);i<100;i++) {
1604 for(unsigned j(0);j<100;j++) {
1605 unsigned k;
1606 fin >> k;
1607 _endcapCrystal[i][j]=(k==0);
1608 }
1609 }
1610
1611 for(unsigned i(0);i<2;i++) {
1612 for(unsigned j(0);j<7080;j++) {
1613 for(unsigned k(0);k<2;k++) {
1614 fin >> _endcapCGap[i][j][k];
1615 }
1616 }
1617 }
1618
1619 for(unsigned i(0);i<2;i++) {
1620 for(unsigned j(0);j<264;j++) {
1621 for(unsigned k(0);k<2;k++) {
1622 fin >> _endcapSGap[i][j][k];
1623 }
1624 }
1625 }
1626
1627 for(unsigned i(0);i<2;i++) {
1628 for(unsigned j(0);j<1;j++) {
1629 for(unsigned k(0);k<2;k++) {
1630 fin >> _endcapMGap[i][j][k];
1631 }
1632 }
1633 }
1634
1635 assert(fin);
1636
1637 return true;
1638 }
1639
1640 const double PhotonFix::_onePi(acos(-1.0));
1641 const double PhotonFix::_twoPi(2.0*acos(-1.0));
1642
1643 bool PhotonFix::_initialised=false;
1644
1645 double PhotonFix::_meanScale[2][2][4];
1646 double PhotonFix::_meanAC[2][2][4];
1647 double PhotonFix::_meanAS[2][2][4];
1648 double PhotonFix::_meanAM[2][2][4];
1649 double PhotonFix::_meanBC[2][2][4];
1650 double PhotonFix::_meanBS[2][2][4];
1651 double PhotonFix::_meanBM[2][2][4];
1652 double PhotonFix::_meanR9[2][2][4];
1653
1654 double PhotonFix::_sigmaScale[2][2][4];
1655 double PhotonFix::_sigmaAT[2][2][4];
1656 double PhotonFix::_sigmaAC[2][2][4];
1657 double PhotonFix::_sigmaAS[2][2][4];
1658 double PhotonFix::_sigmaAM[2][2][4];
1659 double PhotonFix::_sigmaBT[2][2][4];
1660 double PhotonFix::_sigmaBC[2][2][4];
1661 double PhotonFix::_sigmaBS[2][2][4];
1662 double PhotonFix::_sigmaBM[2][2][4];
1663 double PhotonFix::_sigmaR9[2][2][4];
1664
1665 double PhotonFix::_barrelCGap[169][360][2];
1666 double PhotonFix::_barrelSGap[33][180][2];
1667 double PhotonFix::_barrelMGap[7][18][2];
1668
1669 bool PhotonFix::_endcapCrystal[100][100];
1670 double PhotonFix::_endcapCGap[2][7080][2];
1671 double PhotonFix::_endcapSGap[2][264][2];
1672 double PhotonFix::_endcapMGap[2][1][2];