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