Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:57

0001 //-------------------------------------------------
0002 //
0003 //   Class: L1MuGMTPhiLUT
0004 /**
0005  *   Description: Look-up table for GMT Phi projection unit
0006  *
0007  *                Caluclates float delta-phi from charge, eta and pT 
0008  *
0009  *                Simple static implementation with parametrization for
0010  *                CMS121 geometry
0011 */
0012 //
0013 //
0014 //   Author :
0015 //   H. Sakulin            CERN EP
0016 //
0017 //   Migrated to CMSSW:
0018 //   I. Mikulec
0019 //
0020 //--------------------------------------------------
0021 #ifndef L1TriggerGlobalMuonTrigger_L1MuGMTPhiLUT_h
0022 #define L1TriggerGlobalMuonTrigger_L1MuGMTPhiLUT_h
0023 
0024 //---------------
0025 // C++ Headers --
0026 //---------------
0027 
0028 #include <vector>
0029 #include <cmath>
0030 
0031 //----------------------
0032 // Base Class Headers --
0033 //----------------------
0034 
0035 //------------------------------------
0036 // Collaborating Class Declarations --
0037 //------------------------------------
0038 
0039 //              ---------------------
0040 //              -- Class Interface --
0041 //              ---------------------
0042 
0043 class L1MuGMTPhiLUT {
0044 public:
0045   /// constructor
0046   L1MuGMTPhiLUT();
0047 
0048   /// destructor
0049   virtual ~L1MuGMTPhiLUT();
0050 
0051   //FIXME: two versions
0052 
0053   /// look up delta-phi with integer eta
0054   static float dphi(int isys, int isISO, int icharge, int ieta, float pt);
0055 
0056   /// look up delta-phi
0057   static float dphi(int isys, int isISO, int icharge, float eta, float pt) {
0058     return dphi(isys, isISO, icharge, etabin((float)fabs(eta), isys), pt);
0059   };
0060 
0061 private:
0062   static int etabin(float eta, int isys);
0063 
0064 private:
0065   static const int NSYS = 4;
0066   static const int DT = 0;
0067   static const int CSC = 1;
0068   static const int bRPC = 2;
0069   static const int fRPC = 3;
0070 
0071   // 3-bit eta, in hardware 4th bit is reserved for
0072   // positive / negative endcap asymmetries
0073   static const unsigned int NETA = 8;
0074 
0075   // 2 reference planes 0: calo, 1: vertex
0076   static const unsigned int NRP = 2;
0077 
0078   static float etabins[NSYS][NETA + 1];
0079   static float fitparams_phi[NRP][NSYS][NETA][2][3];
0080 };
0081 
0082 #endif