CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/TopQuarkAnalysis/TopObjectResolutions/interface/Electron.h

Go to the documentation of this file.
00001 #ifndef TopObjetcResolutionsElectron_h
00002 #define TopObjetcResolutionsElectron_h
00003 
00004 namespace res{
00005   class HelperElectron {
00006 
00007   public:
00008     HelperElectron(){};
00009     ~HelperElectron(){};
00010 
00011     inline double pt (double pt, double eta);
00012     inline double eta(double pt, double eta);
00013     inline double phi(double pt, double eta);
00014           inline double a(double pt, double eta);
00015     inline double b(double pt, double eta);
00016     inline double c(double pt, double eta);
00017     inline double d(double pt, double eta);
00018     inline double et(double pt, double eta);
00019     inline double theta(double pt, double eta);
00020   };
00021 }
00022 
00023 inline double res::HelperElectron::pt(double pt, double eta)
00024 {
00025   double res=0.2*sqrt(pt);
00026   if( fabs(eta)<=0.8 ) 
00027     res+=-0.28*fabs(eta)+0.54;
00028   else if( 0.8<fabs(eta) && fabs(eta)<=1.4 ) 
00029     res+= 1.52*fabs(eta)-1.07;
00030   else  
00031     res+=-0.158*eta*eta +0.97;
00032   return res;
00033 }
00034 
00035 inline double res::HelperElectron::a(double pt, double eta)
00036 {
00037   double res = 1000.;
00038         if(fabs(eta)<0.17) res = 0.0114228+0.1135*exp(-(0.111787*pt));
00039         else if(fabs(eta)<0.35) res = 0.010297+0.0163219*exp(-(0.0248655*pt));
00040         else if(fabs(eta)<0.5) res = 0.0081634+0.0230718*exp(-(0.0250963*pt));
00041         else if(fabs(eta)<0.7) res = 0.0122627+0.0228103*exp(-(0.0420525*pt));
00042         else if(fabs(eta)<0.9) res = 0.0124118+0.0384051*exp(-(0.0545988*pt));
00043         else if(fabs(eta)<1.15) res = 0.0133398+0.0307574*exp(-(0.0316605*pt));
00044         else if(fabs(eta)<1.3) res = 0.0144956+0.0355239*exp(-(0.0273916*pt));
00045         else if(fabs(eta)<1.6) res = -13.9017+13.9315*exp(-(7.01823e-06*pt));
00046         else if(fabs(eta)<1.9) res = 0.0106309+0.0230149*exp(-(0.00792017*pt));
00047         else if(fabs(eta)<2.5) res = 0.0187822+0.119922*exp(-(0.140598*pt));
00048   return res;
00049 }
00050 
00051 inline double res::HelperElectron::b(double pt, double eta)
00052 {
00053   double res = 1000.;
00054         if(fabs(eta)<0.17) res = -36.5147+36.516*exp(-(-9.36847e-06*pt));
00055         else if(fabs(eta)<0.35) res = -0.132294+0.134289*exp(-(-0.0021212*pt));
00056         else if(fabs(eta)<0.5) res = -96.9689+96.9704*exp(-(-2.83158e-06*pt));
00057         else if(fabs(eta)<0.7) res = -122.755+122.757*exp(-(-1.90859e-06*pt));
00058         else if(fabs(eta)<0.9) res = -226.455+226.457*exp(-(-8.91395e-07*pt));
00059         else if(fabs(eta)<1.15) res = -249.279+249.281*exp(-(-7.57645e-07*pt));
00060         else if(fabs(eta)<1.3) res = -16.7465+16.7481*exp(-(-1.17848e-05*pt));
00061         else if(fabs(eta)<1.6) res = -128.535+128.537*exp(-(-1.52236e-06*pt));
00062         else if(fabs(eta)<1.9) res = -66.1731+66.1762*exp(-(-2.49121e-06*pt));
00063         else if(fabs(eta)<2.5) res = -0.0199509+0.0237796*exp(-(-0.00591733*pt));
00064   return res;
00065 }
00066 
00067 inline double res::HelperElectron::c(double pt, double eta)
00068 {
00069   double res = 1000.;
00070         if(fabs(eta)<0.17) res = -68.6101+68.6161*exp(-(-7.88064e-07*pt));
00071         else if(fabs(eta)<0.35) res = -130.219+130.224*exp(-(-8.39696e-07*pt));
00072         else if(fabs(eta)<0.5) res = -262.825+262.83*exp(-(-4.26008e-07*pt));
00073         else if(fabs(eta)<0.7) res = -47.898+47.9041*exp(-(-2.07568e-06*pt));
00074         else if(fabs(eta)<0.9) res = -178.795+178.799*exp(-(-5.78263e-07*pt));
00075         else if(fabs(eta)<1.15) res = -249.26+249.267*exp(-(-3.16408e-07*pt));
00076         else if(fabs(eta)<1.3) res = -173.603+173.606*exp(-(-1.58982e-06*pt));
00077         else if(fabs(eta)<1.6) res = -98.726+98.7326*exp(-(-2.67151e-06*pt));
00078         else if(fabs(eta)<1.9) res = -82.6028+82.6122*exp(-(-2.79483e-06*pt));
00079         else if(fabs(eta)<2.5) res = -119.94+119.95*exp(-(-1.69882e-06*pt));
00080   return res;
00081 }
00082 
00083 inline double res::HelperElectron::d(double pt, double eta)
00084 {
00085   double res = 1000.;
00086         if(fabs(eta)<0.17) res = 0.0114197+0.081753*exp(-(0.0969625*pt));
00087         else if(fabs(eta)<0.35) res = 0.0097562+0.0137737*exp(-(0.0187112*pt));
00088         else if(fabs(eta)<0.5) res = 0.00844899+0.021595*exp(-(0.0241679*pt));
00089         else if(fabs(eta)<0.7) res = 0.0124758+0.0243678*exp(-(0.0459914*pt));
00090         else if(fabs(eta)<0.9) res = 0.0117518+0.0357218*exp(-(0.0463595*pt));
00091         else if(fabs(eta)<1.15) res = 0.0133048+0.0292511*exp(-(0.0305812*pt));
00092         else if(fabs(eta)<1.3) res = 0.0144949+0.0337369*exp(-(0.0269872*pt));
00093         else if(fabs(eta)<1.6) res = 0.0137634+0.0343427*exp(-(0.0208025*pt));
00094         else if(fabs(eta)<1.9) res = 0.00572644+0.0270719*exp(-(0.00536847*pt));
00095         else if(fabs(eta)<2.5) res = 0.0189177+0.169591*exp(-(0.152597*pt));
00096   return res;
00097 }
00098 
00099 inline double res::HelperElectron::theta(double pt, double eta)
00100 {
00101   double res = 1000.;
00102         if(fabs(eta)<0.17) res = 0.000282805+0.000157786*exp(-(0.0343273*pt));
00103         else if(fabs(eta)<0.35) res = 0.000184362+4.34076e-05*exp(-(-0.0131909*pt));
00104         else if(fabs(eta)<0.5) res = 0.000249332+5.83114e-05*exp(-(0.0508729*pt));
00105         else if(fabs(eta)<0.7) res = -6.56357e-05+0.000325051*exp(-(0.00177319*pt));
00106         else if(fabs(eta)<0.9) res = 0.000182277+0.000125324*exp(-(0.0581923*pt));
00107         else if(fabs(eta)<1.15) res = 0.000140771+0.000407914*exp(-(0.0971668*pt));
00108         else if(fabs(eta)<1.3) res = 0.000125551+0.001266*exp(-(0.180176*pt));
00109         else if(fabs(eta)<1.6) res = 0.000107631+101920*exp(-(1.17024*pt));
00110         else if(fabs(eta)<1.9) res = 8.33927e-05+158936*exp(-(1.20127*pt));
00111         else if(fabs(eta)<2.5) res = 6.55271e-05+0.12459*exp(-(0.437044*pt));
00112   return res;
00113 }
00114 
00115 inline double res::HelperElectron::phi(double pt, double eta)
00116 {
00117   double res = 1000.;
00118         if(fabs(eta)<0.17) res = 0.000175676+0.000471783*exp(-(0.0383161*pt));
00119         else if(fabs(eta)<0.35) res = 0.000202185+0.00048635*exp(-(0.0373331*pt));
00120         else if(fabs(eta)<0.5) res = 0.000150868+0.000444216*exp(-(0.0268835*pt));
00121         else if(fabs(eta)<0.7) res = 0.000243624+0.00182347*exp(-(0.0850746*pt));
00122         else if(fabs(eta)<0.9) res = 0.000254463+0.000431233*exp(-(0.0446507*pt));
00123         else if(fabs(eta)<1.15) res = 0.000309592+0.000918965*exp(-(0.0555677*pt));
00124         else if(fabs(eta)<1.3) res = 0.000502204+0.000277996*exp(-(0.076721*pt));
00125         else if(fabs(eta)<1.6) res = 0.000361181+0.000655126*exp(-(0.0238519*pt));
00126         else if(fabs(eta)<1.9) res = 0.000321587+0.00155721*exp(-(0.0337709*pt));
00127         else if(fabs(eta)<2.5) res = 0.000819101+0.00205336*exp(-(0.0992806*pt));
00128   return res;
00129 }
00130 
00131 inline double res::HelperElectron::et(double pt, double eta)
00132 {
00133   double res = 1000.; 
00134         if(fabs(eta)<0.17) res = 0.326238+0.00760789*pt;
00135         else if(fabs(eta)<0.35) res = 0.40493+0.00659958*pt;
00136         else if(fabs(eta)<0.5) res = 0.369785+0.00690331*pt;
00137         else if(fabs(eta)<0.7) res = 0.437539+0.00703808*pt;
00138         else if(fabs(eta)<0.9) res = 0.456138+0.0078252*pt;
00139         else if(fabs(eta)<1.15) res = 0.518685+0.00907836*pt;
00140         else if(fabs(eta)<1.3) res = 0.733672+0.00953255*pt;
00141         else if(fabs(eta)<1.6) res = 1.02678+0.0116056*pt;
00142         else if(fabs(eta)<1.9) res = 0.948368+0.00977619*pt;
00143         else if(fabs(eta)<2.5) res = 0.418302+0.0127816*pt;
00144   return res;
00145 }
00146 
00147 inline double res::HelperElectron::eta(double pt, double eta)
00148 {
00149   double res = 1000.;
00150         if(fabs(eta)<0.17) res = 0.000266154+0.000104322*exp(-(0.0140464*pt));
00151         else if(fabs(eta)<0.35) res = -0.251539+0.251791*exp(-(-7.37147e-07*pt));
00152         else if(fabs(eta)<0.5) res = 0.000290074+1.54664e-12*exp(-(-0.115541*pt));
00153         else if(fabs(eta)<0.7) res = 8.37182e-05+0.000233453*exp(-(0.00602386*pt));
00154         else if(fabs(eta)<0.9) res = 0.000229422+0.000114253*exp(-(0.0188935*pt));
00155         else if(fabs(eta)<1.15) res = 0.000191525+0.000404238*exp(-(0.0554545*pt));
00156         else if(fabs(eta)<1.3) res = 0.000195461+1.43699e-07*exp(-(-0.0315088*pt));
00157         else if(fabs(eta)<1.6) res = 0.000223422+2.05169e+07*exp(-(1.41408*pt));
00158         else if(fabs(eta)<1.9) res = -0.867114+0.867336*exp(-(4.08639e-07*pt));
00159         else if(fabs(eta)<2.5) res = -0.866567+0.866746*exp(-(-8.62871e-07*pt));
00160   return res;
00161 }
00162 
00163 #endif