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
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
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 }
0055 #endif