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 private:
00043 static ptdat* pt_lut;
00044 static bool lut_read_in;
00045 const L1MuTriggerScales* trigger_scale;
00046 const L1MuTriggerPtScale* trigger_ptscale;
00047 CSCTFPtMethods ptMethods;
00048
00049 bool read_pt_lut, isBinary, isBeamStartConf;
00050 edm::FileInPath pt_lut_file;
00051 unsigned pt_method, lowQualityFlag;
00052
00053
00054 ptdat calcPt(const ptadd&) const;
00055
00056 unsigned trackQuality(const unsigned& eta, const unsigned& mode, const unsigned& fr) const;
00057 void readLUT();
00058 };
00059
00060 #endif