00001
00002
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef L1TriggerGlobalMuonTrigger_L1MuGMTMIAUPhiPro2LUT_h
00021 #define L1TriggerGlobalMuonTrigger_L1MuGMTMIAUPhiPro2LUT_h
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLUT.h"
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 class L1MuGMTMIAUPhiPro2LUT : public L1MuGMTLUT {
00044
00045 public:
00046 enum {MIP_DT, MIP_BRPC, ISO_DT, ISO_BRPC, MIP_CSC, MIP_FRPC, ISO_CSC, ISO_FRPC};
00047
00049 L1MuGMTMIAUPhiPro2LUT() : L1MuGMTLUT("MIAUPhiPro2",
00050 "MIP_DT MIP_BRPC ISO_DT ISO_BRPC MIP_CSC MIP_FRPC ISO_CSC ISO_FRPC",
00051 "cphi_start(5) cphi_fine(1) cphi_ofs(3) charge(1)",
00052 "phi_sel(18)", 11, false) {
00053 InitParameters();
00054 } ;
00055
00057 virtual ~L1MuGMTMIAUPhiPro2LUT() {};
00058
00060 unsigned SpecificLookup_phi_sel (int idx, unsigned cphi_start, unsigned cphi_fine, unsigned cphi_ofs, unsigned charge) const {
00061 std::vector<unsigned> addr(4);
00062 addr[0] = cphi_start;
00063 addr[1] = cphi_fine;
00064 addr[2] = cphi_ofs;
00065 addr[3] = charge;
00066 return Lookup(idx, addr) [0];
00067 };
00068
00070 unsigned SpecificLookup (int idx, unsigned cphi_start, unsigned cphi_fine, unsigned cphi_ofs, unsigned charge) const {
00071 std::vector<unsigned> addr(4);
00072 addr[0] = cphi_start;
00073 addr[1] = cphi_fine;
00074 addr[2] = cphi_ofs;
00075 addr[3] = charge;
00076 return LookupPacked(idx, addr);
00077 };
00078
00079
00080
00082
00083 virtual unsigned LookupFunctionPacked (int idx, unsigned address) const {
00084 std::vector<unsigned> addr = u2vec(address, m_Inputs);
00085 return TheLookupFunction(idx ,addr[0] ,addr[1] ,addr[2] ,addr[3]);
00086
00087 };
00088
00089 private:
00091 void InitParameters();
00092
00094 unsigned TheLookupFunction (int idx, unsigned cphi_start, unsigned cphi_fine, unsigned cphi_ofs, unsigned charge) const;
00095
00097 int m_IsolationCellSizePhi;
00098 };
00099 #endif
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118