CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PhotonFix.cc
Go to the documentation of this file.
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 "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
152 
153  // Phi or y crystal, submodule and module dependence
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
199 
200  // Phi or y crystal, submodule and module dependence
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) {
617  if(_initialised) return false;
618 
619 
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) {
1575 
1576  std::ifstream fin("../test/PhotonFix.dat");
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];
static double _meanScale[2][2][4]
Definition: PhotonFix.h:138
static void getParameters(unsigned be, unsigned hl, double *p)
Definition: PhotonFix.cc:383
static double _sigmaBM[2][2][4]
Definition: PhotonFix.h:158
static double _endcapMGap[2][1][2]
Definition: PhotonFix.h:170
int i
Definition: DBlmapReader.cc:9
double xC() const
Definition: PhotonFix.cc:289
double _phi
Definition: PhotonFix.h:127
unsigned _hl
Definition: PhotonFix.h:126
static void dumpGaps(std::ostream &o)
Definition: PhotonFix.cc:557
double fixedEnergy() const
Definition: PhotonFix.cc:139
static double _sigmaAC[2][2][4]
Definition: PhotonFix.h:152
PhotonFix(double e, double eta, double phi, double r9)
Definition: PhotonFix.cc:9
static double _sigmaAT[2][2][4]
Definition: PhotonFix.h:151
static bool initialised()
Definition: PhotonFix.cc:651
static double expCorrection(double a, const double *p)
Definition: PhotonFix.cc:636
static bool _endcapCrystal[100][100]
Definition: PhotonFix.h:167
double rawEnergy() const
Definition: PhotonFix.cc:238
static double aPhi(double f0, double f1)
Definition: PhotonFix.cc:623
double phiS() const
Definition: PhotonFix.cc:274
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
static double _sigmaScale[2][2][4]
Definition: PhotonFix.h:150
double _bC
Definition: PhotonFix.h:128
static double gausCorrection(double a, const double *p)
Definition: PhotonFix.cc:644
double xZ() const
Definition: PhotonFix.cc:284
static double _meanAM[2][2][4]
Definition: PhotonFix.h:142
static bool initialiseGeometry(const std::string &s)
Definition: PhotonFix.cc:2042
double yZ() const
Definition: PhotonFix.cc:304
static void endcapSGap(unsigned i, unsigned j, unsigned k, double c)
Definition: PhotonFix.cc:343
static bool initialise(const std::string &s="Nominal")
Definition: PhotonFix.cc:654
unsigned _be
Definition: PhotonFix.h:126
static double _barrelCGap[169][360][2]
Definition: PhotonFix.h:162
static double asinh(double s)
Definition: PhotonFix.cc:552
T eta() const
static double _meanBM[2][2][4]
Definition: PhotonFix.h:146
void setup()
Definition: PhotonFix.cc:15
static double _sigmaAS[2][2][4]
Definition: PhotonFix.h:153
static void barrelMGap(unsigned i, unsigned j, unsigned k, double c)
Definition: PhotonFix.cc:334
double etaM() const
Definition: PhotonFix.cc:264
static void printParameters(std::ostream &o)
Definition: PhotonFix.cc:479
static void barrelCGap(unsigned i, unsigned j, unsigned k, double c)
Definition: PhotonFix.cc:328
static void endcapMGap(unsigned i, unsigned j, unsigned k, double c)
Definition: PhotonFix.cc:346
double phi() const
Definition: PhotonFix.cc:246
static void barrelSGap(unsigned i, unsigned j, unsigned k, double c)
Definition: PhotonFix.cc:331
static double _meanBS[2][2][4]
Definition: PhotonFix.h:145
static double _sigmaBT[2][2][4]
Definition: PhotonFix.h:155
static const double _onePi
Definition: PhotonFix.h:131
double _aM
Definition: PhotonFix.h:128
double etaS() const
Definition: PhotonFix.cc:259
T sqrt(T t)
Definition: SSEVec.h:46
static void endcapCGap(unsigned i, unsigned j, unsigned k, double c)
Definition: PhotonFix.cc:340
static double _sigmaBC[2][2][4]
Definition: PhotonFix.h:156
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
static double _endcapSGap[2][264][2]
Definition: PhotonFix.h:169
double _r9
Definition: PhotonFix.h:127
int j
Definition: DBlmapReader.cc:9
static void endcapCrystal(unsigned i, unsigned j, bool c)
Definition: PhotonFix.cc:337
double _bM
Definition: PhotonFix.h:128
double f[11][100]
static double _meanBC[2][2][4]
Definition: PhotonFix.h:144
static void setParameters(unsigned be, unsigned hl, const double *p)
Definition: PhotonFix.cc:357
double _eta
Definition: PhotonFix.h:127
static const double _twoPi
Definition: PhotonFix.h:132
int k[5][pyjets_maxn]
double yM() const
Definition: PhotonFix.cc:319
double etaC() const
Definition: PhotonFix.cc:254
double sigmaEnergy() const
Definition: PhotonFix.cc:178
static bool initialiseParameters(const std::string &s)
Definition: PhotonFix.cc:663
double yS() const
Definition: PhotonFix.cc:314
static double _endcapCGap[2][7080][2]
Definition: PhotonFix.h:168
double _aS
Definition: PhotonFix.h:128
static double _sigmaBS[2][2][4]
Definition: PhotonFix.h:157
static bool _initialised
Definition: PhotonFix.h:135
double _bS
Definition: PhotonFix.h:128
double yC() const
Definition: PhotonFix.cc:309
double b
Definition: hdecay.h:120
double eta() const
Definition: PhotonFix.cc:242
static double _sigmaR9[2][2][4]
Definition: PhotonFix.h:159
static double _meanR9[2][2][4]
Definition: PhotonFix.h:147
static double _barrelSGap[33][180][2]
Definition: PhotonFix.h:163
static double _barrelMGap[7][18][2]
Definition: PhotonFix.h:164
double phiC() const
Definition: PhotonFix.cc:269
double a
Definition: hdecay.h:121
double r9() const
Definition: PhotonFix.cc:250
double phiM() const
Definition: PhotonFix.cc:279
double _aC
Definition: PhotonFix.h:128
double xM() const
Definition: PhotonFix.cc:299
tuple cout
Definition: gather_cfg.py:121
static double dPhi(double f0, double f1)
Definition: PhotonFix.cc:616
double _e
Definition: PhotonFix.h:127
static double _meanAS[2][2][4]
Definition: PhotonFix.h:141
static void dumpParameters(std::ostream &o)
Definition: PhotonFix.cc:409
static double _meanAC[2][2][4]
Definition: PhotonFix.h:140
void print() const
Definition: PhotonFix.cc:351
static double _sigmaAM[2][2][4]
Definition: PhotonFix.h:154
double xS() const
Definition: PhotonFix.cc:294
static double GetaPhi(double f0, double f1)
Definition: PhotonFix.cc:324
Definition: DDAxes.h:10