CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/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 
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   //unsigned trackQuality(const unsigned& eta, const unsigned& mode) const;
00070   unsigned trackQuality(const unsigned& eta, const unsigned& mode, const unsigned& fr) const;
00071   void readLUT();
00072 };
00073 
00074 #endif