CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 #ifndef TopObjetcResolutionsMuon_h
00002 #define TopObjetcResolutionsMuon_h
00003 
00004 namespace res{
00005   class HelperMuon {
00006 
00007   public:
00008     HelperMuon(){};
00009     ~HelperMuon(){};
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::HelperMuon::pt(double pt, double eta)
00024 {
00025   double res = 1.5e-4*(pt*pt)+0.534*fabs(eta)+1.9e-2;
00026   return res;
00027 }
00028 
00029 inline double res::HelperMuon::a(double pt, double eta)
00030 {
00031   double res = 1000.;
00032         if(fabs(eta)<0.17) res = -0.00163044+0.00921744*exp(-(-0.00517804*pt));
00033         else if(fabs(eta)<0.35) res = -38.9811+38.9892*exp(-(-1.58728e-06*pt));
00034         else if(fabs(eta)<0.5) res = -17.254+17.2634*exp(-(-2.86961e-06*pt));
00035         else if(fabs(eta)<0.7) res = 0.00651163+0.0038473*exp(-(-0.00716166*pt));
00036         else if(fabs(eta)<0.9) res = -14.9098+14.9207*exp(-(-3.61147e-06*pt));
00037         else if(fabs(eta)<1.15) res = -0.0130723+0.028881*exp(-(-0.00143687*pt));
00038         else if(fabs(eta)<1.3) res = 0.0102039+0.00629269*exp(-(-0.00659229*pt));
00039         else if(fabs(eta)<1.6) res = -26.1501+26.1657*exp(-(-2.75489e-06*pt));
00040         else if(fabs(eta)<1.9) res = -26.1006+26.1168*exp(-(-2.65457e-06*pt));
00041         else if(fabs(eta)<2.5) res = -110.342+110.361*exp(-(-1.3011e-06*pt));
00042   return res;
00043 }
00044 
00045 inline double res::HelperMuon::b(double pt, double eta)
00046 {
00047   double res = 1000.;
00048         if(fabs(eta)<0.17) res = -25.2075+25.2104*exp(-(-1.10483e-05*pt));
00049         else if(fabs(eta)<0.35) res = -117.663+117.666*exp(-(-1.71416e-06*pt));
00050         else if(fabs(eta)<0.5) res = -21.8718+21.8742*exp(-(-8.13178e-06*pt));
00051         else if(fabs(eta)<0.7) res = -35.0557+35.0573*exp(-(-5.75421e-06*pt));
00052         else if(fabs(eta)<0.9) res = -6.37721+6.38003*exp(-(-2.51376e-05*pt));
00053         else if(fabs(eta)<1.15) res = -73.9844+73.9873*exp(-(-1.75066e-06*pt));
00054         else if(fabs(eta)<1.3) res = -32.7368+32.7402*exp(-(-3.28819e-06*pt));
00055         else if(fabs(eta)<1.6) res = -46.9103+46.9132*exp(-(-2.64771e-06*pt));
00056         else if(fabs(eta)<1.9) res = -63.3183+63.3218*exp(-(-1.56186e-06*pt));
00057         else if(fabs(eta)<2.5) res = -13.913+13.9174*exp(-(-6.62559e-06*pt));
00058   return res;
00059 }
00060 
00061 inline double res::HelperMuon::c(double pt, double eta)
00062 {
00063   double res = 1000.;
00064         if(fabs(eta)<0.17) res = -0.00784191+0.0107731*exp(-(-0.00262573*pt));
00065         else if(fabs(eta)<0.35) res = -4.16489+4.16781*exp(-(-8.18221e-06*pt));
00066         else if(fabs(eta)<0.5) res = -0.00758502+0.0109898*exp(-(-0.0023199*pt));
00067         else if(fabs(eta)<0.7) res = -0.0190548+0.0222179*exp(-(-0.00140706*pt));
00068         else if(fabs(eta)<0.9) res = -7.74332+7.74699*exp(-(-3.61138e-06*pt));
00069         else if(fabs(eta)<1.15) res = 0.00239644+0.00222721*exp(-(-0.00729116*pt));
00070         else if(fabs(eta)<1.3) res = -50.7222+50.7266*exp(-(-5.72416e-07*pt));
00071         else if(fabs(eta)<1.6) res = -9.91368+9.91795*exp(-(-3.8653e-06*pt));
00072         else if(fabs(eta)<1.9) res = 0.000103356+0.00464674*exp(-(-0.00750142*pt));
00073         else if(fabs(eta)<2.5) res = -0.00425536+0.00971869*exp(-(-0.00546016*pt));
00074   return res;
00075 }
00076 
00077 inline double res::HelperMuon::d(double pt, double eta)
00078 {
00079   double res = 1000.;
00080         if(fabs(eta)<0.17) res = -0.00146069+0.00904233*exp(-(-0.00524103*pt));
00081         else if(fabs(eta)<0.35) res = -34.455+34.4631*exp(-(-1.78448e-06*pt));
00082         else if(fabs(eta)<0.5) res = -15.3417+15.3511*exp(-(-3.23796e-06*pt));
00083         else if(fabs(eta)<0.7) res = 0.00639493+0.00393752*exp(-(-0.00707984*pt));
00084         else if(fabs(eta)<0.9) res = -12.855+12.866*exp(-(-4.16994e-06*pt));
00085         else if(fabs(eta)<1.15) res = -0.00526993+0.0211877*exp(-(-0.00186356*pt));
00086         else if(fabs(eta)<1.3) res = 0.0105021+0.00600376*exp(-(-0.00677709*pt));
00087         else if(fabs(eta)<1.6) res = -23.5742+23.5898*exp(-(-3.0526e-06*pt));
00088         else if(fabs(eta)<1.9) res = -27.317+27.3331*exp(-(-2.56587e-06*pt));
00089         else if(fabs(eta)<2.5) res = -112.151+112.17*exp(-(-1.25452e-06*pt));
00090   return res;
00091 }
00092 
00093 inline double res::HelperMuon::theta(double pt, double eta)
00094 {
00095   double res = 1000.;
00096         if(fabs(eta)<0.17) res = 0.000327129+0.000101907*exp(-(0.0172489*pt));
00097         else if(fabs(eta)<0.35) res = 0.00025588+9.99049e-05*exp(-(0.0189315*pt));
00098         else if(fabs(eta)<0.5) res = 0.000215701+0.000109968*exp(-(0.0406069*pt));
00099         else if(fabs(eta)<0.7) res = 0.000196151+5.66998e-05*exp(-(0.0263501*pt));
00100         else if(fabs(eta)<0.9) res = 0.000106579+0.000113065*exp(-(0.00377145*pt));
00101         else if(fabs(eta)<1.15) res = 0.000120697+0.0001408*exp(-(0.0520758*pt));
00102         else if(fabs(eta)<1.3) res = 9.57227e-05+0.000205436*exp(-(0.0633277*pt));
00103         else if(fabs(eta)<1.6) res = 8.56706e-05+0.000117908*exp(-(0.0582652*pt));
00104         else if(fabs(eta)<1.9) res = 6.62861e-05+0.000110841*exp(-(0.0640963*pt));
00105         else if(fabs(eta)<2.5) res = 6.3783e-05+0.000122656*exp(-(0.0974097*pt));
00106   return res;
00107 }
00108 
00109 inline double res::HelperMuon::phi(double pt, double eta)
00110 {
00111   double res = 1000.;
00112         if(fabs(eta)<0.17) res = 7.21523e-05+0.000293781*exp(-(0.0518546*pt));
00113         else if(fabs(eta)<0.35) res = 7.15456e-05+0.000290324*exp(-(0.0496431*pt));
00114         else if(fabs(eta)<0.5) res = 7.25417e-05+0.000322288*exp(-(0.0497559*pt));
00115         else if(fabs(eta)<0.7) res = 7.24273e-05+0.000301504*exp(-(0.0480936*pt));
00116         else if(fabs(eta)<0.9) res = 7.23791e-05+0.0003355*exp(-(0.0454216*pt));
00117         else if(fabs(eta)<1.15) res = 8.13896e-05+0.000432844*exp(-(0.0480919*pt));
00118         else if(fabs(eta)<1.3) res = 7.93329e-05+0.000333341*exp(-(0.0367028*pt));
00119         else if(fabs(eta)<1.6) res = 9.34279e-05+0.000372581*exp(-(0.0429296*pt));
00120         else if(fabs(eta)<1.9) res = 0.000112312+0.000479423*exp(-(0.0513205*pt));
00121         else if(fabs(eta)<2.5) res = 0.000144398+0.000432592*exp(-(0.0400788*pt));
00122   return res;
00123 }
00124 
00125 inline double res::HelperMuon::et(double pt, double eta)
00126 {
00127   double res = 1000.; 
00128         if(fabs(eta)<0.17) res = -0.0552605+0.0115814*pt;
00129         else if(fabs(eta)<0.35) res = -0.05039+0.0122729*pt;
00130         else if(fabs(eta)<0.5) res = -0.0435167+0.0128949*pt;
00131         else if(fabs(eta)<0.7) res = -0.038473+0.0129088*pt;
00132         else if(fabs(eta)<0.9) res = -0.0333693+0.0140788*pt;
00133         else if(fabs(eta)<1.15) res = -0.0102406+0.0180217*pt;
00134         else if(fabs(eta)<1.3) res = -0.0244845+0.0190696*pt;
00135         else if(fabs(eta)<1.6) res = -0.055785+0.0205605*pt;
00136         else if(fabs(eta)<1.9) res = -0.0457006+0.0204167*pt;
00137         else if(fabs(eta)<2.5) res = -0.0399952+0.027388*pt;
00138   return res;
00139 }
00140 
00141 inline double res::HelperMuon::eta(double pt, double eta)
00142 {
00143   double res = 1000.;
00144         if(fabs(eta)<0.17) res = 0.000322451+0.000107167*exp(-(0.0156347*pt));
00145         else if(fabs(eta)<0.35) res = 0.000271279+0.000106197*exp(-(0.0235732*pt));
00146         else if(fabs(eta)<0.5) res = 0.000235783+0.000146536*exp(-(0.0491182*pt));
00147         else if(fabs(eta)<0.7) res = 0.000241657+0.00012571*exp(-(0.0681321*pt));
00148         else if(fabs(eta)<0.9) res = 0.000218419+0.000380006*exp(-(0.0749053*pt));
00149         else if(fabs(eta)<1.15) res = 0.000184903+0.000217257*exp(-(0.0520574*pt));
00150         else if(fabs(eta)<1.3) res = 0.000169888+0.000490542*exp(-(0.0747289*pt));
00151         else if(fabs(eta)<1.6) res = 0.000179318+0.000290048*exp(-(0.0613212*pt));
00152         else if(fabs(eta)<1.9) res = 0.000144481+0.000260476*exp(-(0.0392984*pt));
00153         else if(fabs(eta)<2.5) res = 0.000158888+0.000442249*exp(-(0.0537515*pt));
00154   return res;
00155 }
00156 
00157 #endif