00001 #ifndef CSCTrackFinder_CSCTFPtMethods_h
00002 #define CSCTrackFinder_CSCTFPtMethods_h
00003
00004 #include <CondFormats/L1TObjects/interface/L1MuTriggerPtScale.h>
00005
00006 class L1MuTriggerPtScale ;
00007
00008 class CSCTFPtMethods
00009 {
00010 public:
00011 enum {kMaxParameters = 4};
00013 enum {kME1andME2=1, kME1andME3, kME2andME3, kME2andME4,
00014 kME3andME4, kME1andME2ovr, kME2andMB1, kME2andMB2};
00015
00016 CSCTFPtMethods( const L1MuTriggerPtScale* ptScale = 0 ) ;
00017
00022 static const float AkLowEta_Fit2[kME2andMB2][kMaxParameters];
00023 static const float AkHighEta_Fit2[kME2andMB2][kMaxParameters];
00024
00025 static const float BkLowEta_Fit2[kME2andMB2][kMaxParameters];
00026 static const float BkHighEta_Fit2[kME2andMB2][kMaxParameters];
00027
00030 static const float AkLowEta_Fit1[kME2andMB2][kMaxParameters];
00031 static const float AkHighEta_Fit1[kME2andMB2][kMaxParameters];
00032
00033 static const float kGlobalScaleFactor;
00035 static const float FRCorrLowEta[kME2andMB2][2];
00036 static const float FRCorrHighEta[kME2andMB2][2];
00037
00039 static double AB_mu12FnoME11[4][15];
00040 static double AB_mu13FnoME11[4][15];
00041 static double AB_mu14FnoME11[4][15];
00042 static double AB_mu12RnoME11[4][15];
00043 static double AB_mu13RnoME11[4][15];
00044 static double AB_mu14RnoME11[4][15];
00045 static double AB_mu12FME11[4][15];
00046 static double AB_mu13FME11[4][15];
00047 static double AB_mu14FME11[4][15];
00048 static double AB_mu12RME11[4][15];
00049 static double AB_mu13RME11[4][15];
00050 static double AB_mu14RME11[4][15];
00051 static double AB_sig12FnoME11[4][15];
00052 static double AB_sig13FnoME11[4][15];
00053 static double AB_sig14FnoME11[4][15];
00054 static double AB_sig12RnoME11[4][15];
00055 static double AB_sig13RnoME11[4][15];
00056 static double AB_sig14RnoME11[4][15];
00057 static double AB_sig12FME11[4][15];
00058 static double AB_sig13FME11[4][15];
00059 static double AB_sig14FME11[4][15];
00060 static double AB_sig12RME11[4][15];
00061 static double AB_sig13RME11[4][15];
00062 static double AB_sig14RME11[4][15];
00063
00064 static double AB_mu12F[4][15];
00065 static double AB_mu13F[4][15];
00066 static double AB_mu14F[4][15];
00067 static double AB_mu12R[4][15];
00068 static double AB_mu13R[4][15];
00069 static double AB_mu14R[4][15];
00070 static double AB_mu23[4][15];
00071 static double AB_mu24[4][15];
00072 static double AB_mu34[4][15];
00073 static double AB_mu51[4][15];
00074 static double AB_mu52[4][15];
00075 static double AB_mu53[4][15];
00076 static double AB_mu5[4][15];
00077
00078 static double AB_sig12F[4][15];
00079 static double AB_sig13F[4][15];
00080 static double AB_sig14F[4][15];
00081 static double AB_sig12R[4][15];
00082 static double AB_sig13R[4][15];
00083 static double AB_sig14R[4][15];
00084 static double AB_sig23[4][15];
00085 static double AB_sig24[4][15];
00086 static double AB_sig34[4][15];
00087 static double AB_sig51[4][15];
00088 static double AB_sig52[4][15];
00089 static double AB_sig53[4][15];
00090 static double AB_sig5[4][15];
00091
00092 static double AB_rho123F[5][15];
00093 static double AB_rho124F[5][15];
00094 static double AB_rho134F[5][15];
00095 static double AB_rho123R[5][15];
00096 static double AB_rho124R[5][15];
00097 static double AB_rho134R[5][15];
00098 static double AB_rho234[5][15];
00099 static double AB_rho512[5][15];
00100 static double AB_rho513[5][15];
00101 static double AB_rho523[5][15];
00102 static double AB_rho51B[5][15];
00103 static double AB_rho52B[5][15];
00104 static double AB_rho53B[5][15];
00106 static const double A_mu12Front[4][15];
00107 static const double A_sig12Front[3][15];
00108 static const double A_mu13Front[4][15];
00109 static const double A_sig13Front[3][15];
00110 static const double A_mu14Front[4][15];
00111 static const double A_sig14Front[3][15];
00112
00113 static const double A_mu12Rare[4][15];
00114 static const double A_sig12Rare[3][15];
00115 static const double A_mu13Rare[4][15];
00116 static const double A_sig13Rare[3][15];
00117 static const double A_mu14Rare[4][15];
00118 static const double A_sig14Rare[3][15];
00119
00120 static const double A_mu51[4][15];
00121 static const double A_sig51[3][15];
00122 static const double A_mu52[4][15];
00123 static const double A_sig52[3][15];
00124 static const double A_mu53[4][15];
00125 static const double A_sig53[3][15];
00126
00127 static const double A_mu23[4][15];
00128 static const double A_sig23[3][15];
00129 static const double A_mu24[4][15];
00130 static const double A_sig24[3][15];
00131 static const double A_mu34[4][15];
00132 static const double A_sig34[3][15];
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142 static const double A_rho123FrontCSCTF[5][15];
00143 static const double A_rho124FrontCSCTF[5][15];
00144 static const double A_rho134FrontCSCTF[5][15];
00145
00146 static const double A_rho123RareCSCTF[5][15];
00147 static const double A_rho124RareCSCTF[5][15];
00148 static const double A_rho134RareCSCTF[5][15];
00149
00150 static const double A_rho234CSCTF[5][15];
00151
00152 static const double A_rho512[5][15];
00153 static const double A_rho513[5][15];
00154 static const double A_rho523[5][15];
00155
00156
00157
00159 float Pt2Stn(int type, float eta, float dphi, int fr=-1) const;
00160 float Pt2Stn2010(int type, float eta, float dphi, int fr=-1, int method=11) const;
00161 float Pt2Stn2011(int type, float eta, float dphi, int fr=-1, int method=11, int phiSign=2) const;
00162 float Pt2Stn2012(int type, float eta, float dphi, int PtbyMLH, float &theLH, int fr=-1, int method=11) const;
00163 float Pt2Stn2012_DT(int type, float eta, float dphi, int PtbyMLH, float &theLH,int fr=-1, int method=11, int phiSign=2) const;
00164 double Likelihood2(double *phi12, double *par_m12, double *par_sig12, double *v) const;
00165 double Likelihood2_2011(double *phi12, double *par_m12, double *par_sig12, double *v) const;
00166
00168 float Pt3Stn(int type, float eta, float dphi1, float dphi2, int fr=-1) const;
00169 float Pt3Stn2010(int type, float eta, float dphi1, float dphi2, int fr=-1, int method=11) const;
00170 float Pt3Stn2011(int type, float eta, float dphi1, float dphi2, int fr=-1, int method=11) const;
00171 float Pt3Stn2012(int type, float eta, float dphi1, float dphi2, int PtbyMLH, float &theLH, int fr=-1, int method=11) const;
00172 float Pt3Stn2012_DT(int type, float eta, float dphi1, float dphi2, int PtbyMLH, float &theLH, int fr=-1, int method=11) const;
00173 double Likelihood(double *phi12, double *phi23, double *par_m12, double *par_m23, double *par_sig12, double *par_sig23, double *par_rho, double *v) const;
00174 double Likelihood2011(double *phi12, double *phi23, double *par_m12, double *par_m23, double *par_sig12, double *par_sig23, double *par_rho, double *v) const;
00177 static const float ptbins[29];
00178 static const float etabins[16];
00179 static const float dphifr0[4][15][28];
00180 static const float dphifr1[4][15][28];
00181 static const float sigmafr0[4][15][28];
00182 static const float sigmafr1[4][15][28];
00183
00184 float Pt2StnChiSq(int type, float eta, int dphi, int fr) const;
00185 float Pt3StnChiSq(int type, float eta, int dphi1, int dphi2, int fr) const;
00186
00189 float Pt2StnHybrid(int type, float eta, int dphi, int fr) const;
00190 float Pt3StnHybrid(int type, float eta, int dphi1, int dphi2, int fr) const;
00191
00202 bool chargeValid(unsigned Pt, unsigned Quality, unsigned Eta, unsigned method) const;
00203
00205 float PtEff90(float pt, float eta, int mode) const;
00206
00207 private:
00208 const L1MuTriggerPtScale* trigger_scale;
00209 };
00210
00211 #endif