10 _e(e), _eta(eta), _phi(phi), _r9(r9) {
31 for(
unsigned i(0);
i<169;
i++) {
32 for(
unsigned j(0);
j<360;
j++) {
35 double r2(de*de+df*df);
51 for(
unsigned i(0);
i<33;
i++) {
52 for(
unsigned j(0);
j<180;
j++) {
55 double r2(de*de+df*df);
71 for(
unsigned i(0);
i<7;
i++) {
72 for(
unsigned j(0);
j<18;
j++) {
75 double r2(de*de+df*df);
91 unsigned iz(
_eta>=0.0?0:1);
92 double r[2]={
xZ(),
yZ()};
95 for(
unsigned i(0);
i<7080;
i++) {
98 double r2(dx*dx+dy*dy);
102 if(r[0]>0.0)
_aC= dx;
104 if(r[1]>0.0)
_bC= dy;
110 for(
unsigned i(0);
i<264;
i++) {
113 double r2(dx*dx+dy*dy);
117 if(r[0]>0.0)
_aS= dx;
119 if(r[1]>0.0)
_bS= dy;
125 for(
unsigned i(0);
i<1;
i++) {
128 double r2(dx*dx+dy*dy);
132 if(iz==0) {
_aM= dx;
_bM= dy;}
330 std::cout <<
"PhotonFix: e,eta,phi,r9 = " << _e <<
", " <<
_eta <<
", " <<
_phi <<
", " <<
_r9 <<
", gaps "
331 <<
_aC <<
", " <<
_aS <<
", " <<
_aM <<
", "
332 <<
_bC <<
", " <<
_bS <<
", " <<
_bM << std::endl;
336 for(
unsigned i(0);
i<4;
i++) {
360 for(
unsigned i(0);
i<4;
i++) {
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;
389 for(
unsigned i(0);
i<4;
i++) {
390 o <<
" _meanAC[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_meanAC[be][hl][
i] <<
";" << std::endl;
392 for(
unsigned i(0);
i<4;
i++) {
393 o <<
" _meanAS[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_meanAS[be][hl][
i] <<
";" << std::endl;
395 for(
unsigned i(0);
i<4;
i++) {
396 o <<
" _meanAM[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_meanAM[be][hl][
i] <<
";" << std::endl;
398 for(
unsigned i(0);
i<4;
i++) {
399 o <<
" _meanBC[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_meanBC[be][hl][
i] <<
";" << std::endl;
401 for(
unsigned i(0);
i<4;
i++) {
402 o <<
" _meanBS[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_meanBS[be][hl][
i] <<
";" << std::endl;
404 for(
unsigned i(0);
i<4;
i++) {
405 o <<
" _meanBM[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_meanBM[be][hl][
i] <<
";" << std::endl;
407 for(
unsigned i(0);
i<4;
i++) {
408 o <<
" _meanR9[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_meanR9[be][hl][
i] <<
";" << std::endl;
412 for(
unsigned i(0);
i<4;
i++) {
413 o <<
" _sigmaScale[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_sigmaScale[be][hl][
i] <<
";" << std::endl;
415 for(
unsigned i(0);
i<4;
i++) {
416 o <<
" _sigmaAT[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_sigmaAT[be][hl][
i] <<
";" << std::endl;
418 for(
unsigned i(0);
i<4;
i++) {
419 o <<
" _sigmaAC[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_sigmaAC[be][hl][
i] <<
";" << std::endl;
421 for(
unsigned i(0);
i<4;
i++) {
422 o <<
" _sigmaAS[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_sigmaAS[be][hl][
i] <<
";" << std::endl;
424 for(
unsigned i(0);
i<4;
i++) {
425 o <<
" _sigmaAM[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_sigmaAM[be][hl][
i] <<
";" << std::endl;
427 for(
unsigned i(0);
i<4;
i++) {
428 o <<
" _sigmaBT[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_sigmaBT[be][hl][
i] <<
";" << std::endl;
430 for(
unsigned i(0);
i<4;
i++) {
431 o <<
" _sigmaBC[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_sigmaBC[be][hl][
i] <<
";" << std::endl;
433 for(
unsigned i(0);
i<4;
i++) {
434 o <<
" _sigmaBS[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_sigmaBS[be][hl][
i] <<
";" << std::endl;
436 for(
unsigned i(0);
i<4;
i++) {
437 o <<
" _sigmaBM[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_sigmaBM[be][hl][
i] <<
";" << std::endl;
439 for(
unsigned i(0);
i<4;
i++) {
440 o <<
" _sigmaR9[" << be <<
"][" << hl <<
"][" <<
i <<
"]=" <<
_sigmaR9[be][hl][
i] <<
";" << std::endl;
448 o <<
"PhotonFix::printParameters()" << std::endl;
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;
455 o <<
" Mean scaling ";
456 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_meanScale[be][hl][
i];
458 o <<
" Mean " << (be==0?
"Eta ":
"ZetaX") <<
" crystal ";
459 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_meanAC[be][hl][
i];
461 o <<
" Mean " << (be==0?
"Eta ":
"ZetaX") <<
" submodule";
462 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_meanAS[be][hl][
i];
464 o <<
" Mean " << (be==0?
"Eta ":
"ZetaX") <<
" module ";
465 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_meanAM[be][hl][
i];
467 o <<
" Mean " << (be==0?
"Phi ":
"ZetaY") <<
" crystal ";
468 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_meanBC[be][hl][
i];
470 o <<
" Mean " << (be==0?
"Phi ":
"ZetaY") <<
" submodule";
471 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_meanBS[be][hl][
i];
473 o <<
" Mean " << (be==0?
"Phi ":
"ZetaY") <<
" module ";
474 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_meanBM[be][hl][
i];
477 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_meanR9[be][hl][
i];
480 o <<
" Sigma scaling ";
481 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_sigmaScale[be][hl][
i];
483 o <<
" Sigma " << (be==0?
"Eta ":
"ZetaX") <<
" total ";
484 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_sigmaAT[be][hl][
i];
486 o <<
" Sigma " << (be==0?
"Eta ":
"ZetaX") <<
" crystal ";
487 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_sigmaAC[be][hl][
i];
489 o <<
" Sigma " << (be==0?
"Eta ":
"ZetaX") <<
" submodule";
490 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_sigmaAS[be][hl][
i];
492 o <<
" Sigma " << (be==0?
"Eta ":
"ZetaX") <<
" module ";
493 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_sigmaAM[be][hl][
i];
495 o <<
" Sigma " << (be==0?
"Eta ":
"ZetaY") <<
" total ";
496 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_sigmaBT[be][hl][
i];
498 o <<
" Sigma " << (be==0?
"Eta ":
"ZetaY") <<
" crystal ";
499 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_sigmaBC[be][hl][
i];
501 o <<
" Sigma " << (be==0?
"Phi ":
"ZetaY") <<
" submodule";
502 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_sigmaBS[be][hl][
i];
504 o <<
" Sigma " << (be==0?
"Phi ":
"ZetaY") <<
" module ";
505 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_sigmaBM[be][hl][
i];
508 for(
unsigned i(0);
i<4;
i++) o << std::setw(14) <<
_sigmaR9[be][hl][
i];
515 if(s>=0.0)
return log(
sqrt(s*s+1.0)+s);
516 else return -
log(
sqrt(s*s+1.0)-s);
520 o << std::setprecision(15);
522 for(
unsigned i(0);
i<169;
i++) {
523 for(
unsigned j(0);
j<360;
j++) {
524 for(
unsigned k(0);
k<2;
k++) {
530 for(
unsigned i(0);
i<33;
i++) {
531 for(
unsigned j(0);
j<180;
j++) {
532 for(
unsigned k(0);
k<2;
k++) {
538 for(
unsigned i(0);
i<7;
i++) {
539 for(
unsigned j(0);
j<18;
j++) {
540 for(
unsigned k(0);
k<2;
k++) {
546 for(
unsigned i(0);
i<100;
i++) {
547 for(
unsigned j(0);
j<100;
j++) {
549 else o << 1 << std::endl;
553 for(
unsigned i(0);
i<2;
i++) {
554 for(
unsigned j(0);
j<7080;
j++) {
555 for(
unsigned k(0);
k<2;
k++) {
561 for(
unsigned i(0);
i<2;
i++) {
562 for(
unsigned j(0);
j<264;
j++) {
563 for(
unsigned k(0);
k<2;
k++) {
569 for(
unsigned i(0);
i<2;
i++) {
570 for(
unsigned j(0);
j<1;
j++) {
571 for(
unsigned k(0);
k<2;
k++) {
586 double af(0.5*(f0+f1));
599 if(p[1]==0.0 || p[2]==0.0 || p[3]==0.0)
return 0.0;
602 if(
b>=0.0)
return p[1]*
exp(-fabs(p[2])*
b);
603 else return p[1]*
exp( fabs(p[3])*
b);
607 if(p[1]==0.0 || p[2]==0.0 || p[3]==0.0)
return 0.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);
629 for(
unsigned be(0);be<2;be++) {
630 for(
unsigned hl(0);hl<2;hl++) {
631 for(
unsigned i(0);
i<4;
i++) {
1066 _meanBS[0][1][2]=-8.88573e-27;
1122 _meanAC[1][0][0]=-0.000177563;
1126 _meanAS[1][0][0]=-0.000533039;
1134 _meanBC[1][0][0]=-0.000518186;
1138 _meanBS[1][0][0]=-0.000750734;
1216 _meanBM[1][1][0]=-0.000404987;
1356 _meanAM[0][1][0]=-0.000636963;
1366 _meanBS[0][1][2]=-4.74338e-20;
1422 _meanAC[1][0][0]=-0.000283383;
1434 _meanBC[1][0][0]=-0.000345234;
1438 _meanBS[1][0][0]=-0.000411942;
1516 _meanBM[1][1][0]=-8.08678e-05;
1576 std::ifstream
fin(
"../test/PhotonFix.dat");
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++) {
1588 for(
unsigned i(0);
i<33;
i++) {
1589 for(
unsigned j(0);
j<180;
j++) {
1590 for(
unsigned k(0);
k<2;
k++) {
1596 for(
unsigned i(0);
i<7;
i++) {
1597 for(
unsigned j(0);
j<18;
j++) {
1598 for(
unsigned k(0);
k<2;
k++) {
1603 for(
unsigned i(0);
i<100;
i++) {
1604 for(
unsigned j(0);
j<100;
j++) {
1611 for(
unsigned i(0);
i<2;
i++) {
1612 for(
unsigned j(0);
j<7080;
j++) {
1613 for(
unsigned k(0);
k<2;
k++) {
1619 for(
unsigned i(0);
i<2;
i++) {
1620 for(
unsigned j(0);
j<264;
j++) {
1621 for(
unsigned k(0);
k<2;
k++) {
1627 for(
unsigned i(0);
i<2;
i++) {
1628 for(
unsigned j(0);
j<1;
j++) {
1629 for(
unsigned k(0);
k<2;
k++) {
static double _meanScale[2][2][4]
static void getParameters(unsigned be, unsigned hl, double *p)
static double _sigmaBM[2][2][4]
static double _endcapMGap[2][1][2]
static void dumpGaps(std::ostream &o)
double fixedEnergy() const
static double _sigmaAC[2][2][4]
PhotonFix(double e, double eta, double phi, double r9)
static double _sigmaAT[2][2][4]
static bool initialised()
static double expCorrection(double a, const double *p)
static bool _endcapCrystal[100][100]
static double aPhi(double f0, double f1)
Sin< T >::type sin(const T &t)
static double _sigmaScale[2][2][4]
static double gausCorrection(double a, const double *p)
static double _meanAM[2][2][4]
static bool initialiseGeometry(const std::string &s)
static void endcapSGap(unsigned i, unsigned j, unsigned k, double c)
static bool initialise(const std::string &s="Nominal")
static double _barrelCGap[169][360][2]
static double asinh(double s)
static double _meanBM[2][2][4]
static double _sigmaAS[2][2][4]
static void barrelMGap(unsigned i, unsigned j, unsigned k, double c)
static void printParameters(std::ostream &o)
static void barrelCGap(unsigned i, unsigned j, unsigned k, double c)
static void endcapMGap(unsigned i, unsigned j, unsigned k, double c)
static void barrelSGap(unsigned i, unsigned j, unsigned k, double c)
static double _meanBS[2][2][4]
static double _sigmaBT[2][2][4]
static const double _onePi
static void endcapCGap(unsigned i, unsigned j, unsigned k, double c)
static double _sigmaBC[2][2][4]
Cos< T >::type cos(const T &t)
static double _endcapSGap[2][264][2]
static void endcapCrystal(unsigned i, unsigned j, bool c)
static double _meanBC[2][2][4]
static void setParameters(unsigned be, unsigned hl, const double *p)
static const double _twoPi
double sigmaEnergy() const
static bool initialiseParameters(const std::string &s)
static double _endcapCGap[2][7080][2]
static double _sigmaBS[2][2][4]
static double _sigmaR9[2][2][4]
static double _meanR9[2][2][4]
static double _barrelSGap[33][180][2]
static double _barrelMGap[7][18][2]
static double dPhi(double f0, double f1)
static double _meanAS[2][2][4]
static void dumpParameters(std::ostream &o)
static double _meanAC[2][2][4]
static double _sigmaAM[2][2][4]
static double GetaPhi(double f0, double f1)