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 #include "CondFormats/L1TObjects/interface/L1MuCSCPtLut.h"
00014 #include "CondFormats/DataRecord/interface/L1MuCSCPtLutRcd.h"
00015
00016 class CSCTFPtLUT
00017 {
00018 public:
00020 CSCTFPtLUT(const edm::EventSetup& c);
00022
00023 CSCTFPtLUT(const edm::ParameterSet&,
00024 const L1MuTriggerScales* scales,
00025 const L1MuTriggerPtScale* ptScale);
00026
00027 CSCTFPtLUT(const CSCTFPtLUT&);
00028 ~CSCTFPtLUT() {}
00029
00030 CSCTFPtLUT& operator=(const CSCTFPtLUT&);
00031
00032 ptdat Pt(const ptadd&) const;
00033
00034 ptdat Pt(const unsigned&) const;
00035
00036 ptdat Pt(const unsigned& delta_phi_12, const unsigned& delta_phi23,
00037 const unsigned& track_eta, const unsigned& track_mode,
00038 const unsigned& track_fr, const unsigned& delta_phi_sign) const;
00039
00040 ptdat Pt(const unsigned& delta_phi_12, const unsigned& track_eta,
00041 const unsigned& track_mode, const unsigned& track_fr,
00042 const unsigned& delta_phi_sign) const;
00043
00044 static const int dPhiNLBMap_5bit[32];
00045 static const int dPhiNLBMap_7bit[128];
00046 static const int dPhiNLBMap_8bit[256];
00047
00048
00049 static const int dEtaCut_Low[24];
00050 static const int dEtaCut_Mid[24];
00051 static const int dEtaCut_High_A[24];
00052 static const int dEtaCut_High_B[24];
00053 static const int dEtaCut_High_C[24];
00054 static const int dEtaCut_Open[24];
00055
00056 static const int getPtbyMLH;
00057
00058 private:
00059
00060
00061 const L1MuCSCPtLut* theL1MuCSCPtLut_;
00062 const L1MuTriggerScales* trigger_scale;
00063 const L1MuTriggerPtScale* trigger_ptscale;
00064
00065
00066 CSCTFPtMethods ptMethods;
00067
00068
00069
00070
00071 ptdat* pt_lut;
00072
00073 bool read_pt_lut_es, read_pt_lut_file, isBinary, isBeamStartConf;
00074 edm::FileInPath pt_lut_file;
00075 unsigned pt_method, lowQualityFlag;
00076
00077
00078 ptdat calcPt(const ptadd&) const;
00079
00080 unsigned trackQuality(const unsigned& eta, const unsigned& mode, const unsigned& fr) const;
00081 void readLUT();
00082 };
00083
00084 #endif