Go to the documentation of this file.00001 #ifndef CSCTrackFinder_CSCTFPtLUT_h
00002 #define CSCTrackFinder_CSCTFPtLUT_h
00003
00004 #include <FWCore/ParameterSet/interface/ParameterSet.h>
00005 #include <L1Trigger/CSCTrackFinder/interface/CSCTrackFinderDataTypes.h>
00006 #include <CondFormats/L1TObjects/interface/L1MuTriggerScales.h>
00007 #include <CondFormats/L1TObjects/interface/L1MuTriggerPtScale.h>
00008 #include <L1Trigger/CSCTrackFinder/interface/CSCTFPtMethods.h>
00009 #include <FWCore/ParameterSet/interface/FileInPath.h>
00011 #include <FWCore/Framework/interface/EventSetup.h>
00013
00014 class CSCTFPtLUT
00015 {
00016 public:
00018 CSCTFPtLUT(const edm::EventSetup& c);
00020
00021 CSCTFPtLUT(const edm::ParameterSet&,
00022 const L1MuTriggerScales* scales,
00023 const L1MuTriggerPtScale* ptScale);
00024
00025 CSCTFPtLUT(const CSCTFPtLUT&);
00026 ~CSCTFPtLUT() { if(pt_lut) delete [] pt_lut; pt_lut = NULL; }
00027
00028 CSCTFPtLUT& operator=(const CSCTFPtLUT&);
00029
00030 ptdat Pt(const ptadd&) const;
00031
00032 ptdat Pt(const unsigned&) const;
00033
00034 ptdat Pt(const unsigned& delta_phi_12, const unsigned& delta_phi23,
00035 const unsigned& track_eta, const unsigned& track_mode,
00036 const unsigned& track_fr, const unsigned& delta_phi_sign) const;
00037
00038 ptdat Pt(const unsigned& delta_phi_12, const unsigned& track_eta,
00039 const unsigned& track_mode, const unsigned& track_fr,
00040 const unsigned& delta_phi_sign) const;
00041
00042 static const int dPhiNLBMap_5bit[32];
00043 static const int dPhiNLBMap_7bit[128];
00044 static const int dPhiNLBMap_8bit[256];
00045
00046
00047 static const int dEtaCut_Low[24];
00048 static const int dEtaCut_Mid[24];
00049 static const int dEtaCut_High_A[24];
00050 static const int dEtaCut_High_B[24];
00051 static const int dEtaCut_High_C[24];
00052 static const int dEtaCut_Open[24];
00053
00054 static const int getPtbyMLH;
00055
00056 private:
00057 static ptdat* pt_lut;
00058 static bool lut_read_in;
00059 const L1MuTriggerScales* trigger_scale;
00060 const L1MuTriggerPtScale* trigger_ptscale;
00061 CSCTFPtMethods ptMethods;
00062
00063 bool read_pt_lut, isBinary, isBeamStartConf;
00064 edm::FileInPath pt_lut_file;
00065 unsigned pt_method, lowQualityFlag;
00066
00067
00068 ptdat calcPt(const ptadd&) const;
00069
00070 unsigned trackQuality(const unsigned& eta, const unsigned& mode, const unsigned& fr) const;
00071 void readLUT();
00072 };
00073
00074 #endif