00001
00003
00004
00005
00007 namespace Atlfast{
00008
00010 class JetRecalibrator{
00011 public:
00012
00014 JetRecalibrator(){}
00015
00017 double bCalibrate(double pt){
00018
00019
00020 pt=pt/GeV;
00021
00022
00023 float core, a0, a1, a2, a3, a4, a5;
00024
00025 if(pt < 10.){ return 0;
00026 } else if ( pt < 55.0) {
00027 a0 = 1.2715;
00028 a1 = .12241;
00029 a2 = -.10480E-01;
00030 a3 = +.33310E-03;
00031 a4 = -.47454E-05;
00032 a5 = .25436E-07;
00033 core = a0 + a1*pt + a2*pt*pt + a3*pt*pt*pt
00034 + a4*pt*pt*pt*pt + a5*pt*pt*pt*pt*pt;
00035 core = core * 1.006;
00036 core = core * pt * GeV;
00037 return core;
00038 } else {
00039 a0 = 1.18;
00040 a1 = -.16672E-02;
00041 a2 = .44414E-05;
00042 core = a0+a1*pt + a2*pt*pt;
00043
00044
00045 core = core * pt* GeV;
00046 return core;
00047 }
00048 }
00049
00051 double uCalibrate(float pt) {
00052
00053
00054 pt=pt/GeV;
00055
00056
00057
00058
00059 float core, a0, a1, a2, a3, a4, a5;
00060
00061 if(pt < 10.){ return 0;
00062 } else if ( pt < 45.0) {
00063 a0 = 1.5085;
00064 a1 = .31468E-01;
00065 a2 = -.36973E-02;
00066 a3 = +.11220E-03;
00067 a4 = -.13921E-05;
00068 a5 = .61538E-08;
00069 core = a0 + a1*pt + a2*pt*pt + a3*pt*pt*pt
00070 + a4*pt*pt*pt*pt + a5*pt*pt*pt*pt*pt;
00071 core = core * pt * GeV;
00072 return core;
00073 } else {
00074 a0 = 1.18;
00075 a1 = -.16672E-02;
00076 a2 = .44414E-05 ;
00077 core = a0 + a1*pt + a2*pt*pt;
00078 core = core/1.25;
00079
00080
00081 core = core * pt * GeV;
00082 return core;
00083 }
00084 }
00085 };
00086 }
00087