CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/L1Trigger/CSCTrackFinder/interface/CSCTFPtMethods.h

Go to the documentation of this file.
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   static const double A_mu23CSCTF[4][15];
00136   static const double A_sig23CSCTF[3][15];
00137   static const double A_mu24CSCTF[4][15];
00138   static const double A_sig24CSCTF[3][15];
00139   static const double A_mu34CSCTF[4][15];
00140   static const double A_sig34CSCTF[3][15];
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 // don't care about Mode 12: 1-2-b1 yet, should add A_mu12CSCTF or A_mu51CSCTF depending how calculate dphi12
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