Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:20:46

0001 #ifndef __l1microgmtconfiguration_h
0002 #define __l1microgmtconfiguration_h
0003 
0004 #include "FWCore/Framework/interface/Frameworkfwd.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006 
0007 #include "DataFormats/L1Trigger/interface/Muon.h"
0008 #include "DataFormats/L1TMuon/interface/RegionalMuonCandFwd.h"
0009 #include "DataFormats/L1TMuon/interface/MuonCaloSumFwd.h"
0010 #include "L1Trigger/L1TMuon/interface/GMTInternalMuonFwd.h"
0011 
0012 #include <map>
0013 #include <utility>
0014 
0015 namespace l1t {
0016   class MicroGMTConfiguration {
0017   public:
0018     // All possible inputs for LUTs
0019     enum input_t {
0020       PT,
0021       PT_COARSE,
0022       PHI,
0023       ETA,
0024       ETA_COARSE,
0025       QUALITY,
0026       DELTA_ETA_RED,
0027       DELTA_PHI_RED,
0028       ENERGYSUM,
0029       ETA_FINE_BIT
0030     };
0031     enum output_t { ETA_OUT, PHI_OUT };
0032 
0033     typedef std::pair<input_t, int> PortType;
0034     typedef RegionalMuonCandBxCollection InputCollection;
0035     typedef MuonBxCollection OutputCollection;
0036     typedef Muon OutMuon;
0037     typedef GMTInternalMuon InterMuon;
0038     typedef GMTInternalMuonCollection InterMuonCollection;
0039     typedef GMTInternalMuonList InterMuonList;
0040     typedef MuonCaloSum CaloInput;
0041     typedef MuonCaloSumBxCollection CaloInputCollection;
0042     // Two's complement for a given bit-length
0043     static unsigned getTwosComp(const int signedInt, const int width);
0044 
0045     static int calcGlobalPhi(int locPhi, tftype t, int proc);
0046 
0047     static int setOutputMuonQuality(int muQual, tftype type, int haloBit, unsigned fwVersion);
0048 
0049     static int calcMuonHwEtaExtra(const l1t::Muon& mu);
0050     static int calcMuonHwPhiExtra(const l1t::Muon& mu);
0051     static double calcMuonEtaExtra(const l1t::Muon& mu);
0052     static double calcMuonPhiExtra(const l1t::Muon& mu);
0053   };
0054 }  // namespace l1t
0055 #endif /* defined (__l1microgmtconfiguration_h) */