Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 //-------------------------------------------------
0002 //
0003 /** \class L1MuGMTEtaProjectionUnit
0004  *  L1 Global Muon Trigger Eta projection unit.
0005  *
0006  *  Projects a muon from the muon system to the 
0007  *  calorimeter or vertex and selects one or more
0008  *  calorimeter regions in eta to be checked for 
0009  *  MIP and Isolation.
0010  */
0011 //
0012 //
0013 //   Author :
0014 //   H. Sakulin            CERN EP
0015 //
0016 //   Migrated to CMSSW:
0017 //   I. Mikulec
0018 //
0019 //--------------------------------------------------
0020 #ifndef L1TriggerGlobalMuonTrigger_L1MuGMTEtaProjectionUnit_h
0021 #define L1TriggerGlobalMuonTrigger_L1MuGMTEtaProjectionUnit_h
0022 
0023 //---------------
0024 // C++ Headers --
0025 //---------------
0026 
0027 #include <vector>
0028 #include <bitset>
0029 
0030 //----------------------
0031 // Base Class Headers --
0032 //----------------------
0033 
0034 //------------------------------------
0035 // Collaborating Class Declarations --
0036 //------------------------------------
0037 
0038 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTConfig.h"
0039 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTMatrix.h"
0040 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h"
0041 
0042 class L1MuGMTMipIsoAU;
0043 class L1MuGMTCand;
0044 
0045 //              ---------------------
0046 //              -- Class Interface --
0047 //              ---------------------
0048 
0049 class L1MuGMTEtaProjectionUnit {
0050 public:
0051   /// constructor
0052   L1MuGMTEtaProjectionUnit(const L1MuGMTMipIsoAU& miau, int id);
0053 
0054   /// destructor
0055   virtual ~L1MuGMTEtaProjectionUnit();
0056 
0057   /// run eta projection unit
0058   void run();
0059 
0060   /// clear eta projection unit
0061   void reset();
0062 
0063   /// print results after eta projection
0064   void print() const;
0065 
0066   /// return identifier
0067   inline int id() const { return m_id; }
0068 
0069   /// return eta select bit (idx: 0..13)
0070   inline bool isSelected(int idx) const { return m_eta_select[idx]; }
0071 
0072 private:
0073   void load();
0074 
0075 private:
0076   typedef std::bitset<14> TEtaBits;
0077 
0078   const L1MuGMTMipIsoAU& m_MIAU;
0079 
0080   // index: (0..31: 16*isFWD + 8*isISO + 4* isRPC + nr )
0081   int m_id;
0082 
0083   const L1MuRegionalCand* m_mu;
0084 
0085   int m_ieta;    // region index of central region
0086   float m_feta;  // fine grain eta inside central region
0087 
0088   TEtaBits m_eta_select;
0089 };
0090 
0091 #endif