CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/L1Trigger/CSCTrackFinder/interface/CSCTFPtLUT.h

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   // handle to csctf pt lut when read from DBS (EventSetup)
00061   const L1MuCSCPtLut* theL1MuCSCPtLut_; 
00062   const L1MuTriggerScales* trigger_scale;
00063   const L1MuTriggerPtScale* trigger_ptscale;
00064   
00065   // to be used when the csctf pt lut is initialized from ParameterSet
00066   CSCTFPtMethods ptMethods;
00067 
00068   // store the entire object, when and *only when we read from local file
00069   // this option is set to false by default and should be used only for
00070   // testing
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   //unsigned trackQuality(const unsigned& eta, const unsigned& mode) const;
00080   unsigned trackQuality(const unsigned& eta, const unsigned& mode, const unsigned& fr) const;
00081   void readLUT();
00082 };
00083 
00084 #endif