#include <L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFMergeRankEtaQLUT.h>
Public Types | |
enum | { DT, BRPC, CSC, FRPC } |
Public Member Functions | |
L1MuGMTLFMergeRankEtaQLUT () | |
constuctor using function-lookup | |
virtual unsigned | LookupFunctionPacked (int idx, unsigned address) const |
access to lookup function with packed input and output | |
unsigned | SpecificLookup (int idx, unsigned eta, unsigned q) const |
specific lookup function for entire output field | |
unsigned | SpecificLookup_flag (int idx, unsigned eta, unsigned q) const |
specific lookup function for flag | |
unsigned | SpecificLookup_rank_etaq (int idx, unsigned eta, unsigned q) const |
specific lookup function for rank_etaq | |
virtual | ~L1MuGMTLFMergeRankEtaQLUT () |
destructor | |
Private Member Functions | |
void | InitParameters () |
Initialize scales, configuration parameters, alignment constants, ... | |
unsigned | TheLookupFunction (int idx, unsigned eta, unsigned q) const |
The lookup function - here the functionality of the LUT is implemented. |
this class was automatically generated by L1MuGMTLUT::MakeSubClass()
Definition at line 42 of file L1MuGMTLFMergeRankEtaQLUT.h.
anonymous enum |
L1MuGMTLFMergeRankEtaQLUT::L1MuGMTLFMergeRankEtaQLUT | ( | ) | [inline] |
constuctor using function-lookup
Definition at line 48 of file L1MuGMTLFMergeRankEtaQLUT.h.
References InitParameters().
00048 : L1MuGMTLUT("LFMergeRankEtaQ", 00049 "DT BRPC CSC FRPC", 00050 "eta(6) q(3)", 00051 "flag(1) rank_etaq(7)", 8, false) { 00052 InitParameters(); 00053 } ;
virtual L1MuGMTLFMergeRankEtaQLUT::~L1MuGMTLFMergeRankEtaQLUT | ( | ) | [inline, virtual] |
void L1MuGMTLFMergeRankEtaQLUT::InitParameters | ( | ) | [private] |
Initialize scales, configuration parameters, alignment constants, ...
Definition at line 38 of file L1MuGMTLFMergeRankEtaQLUT.cc.
Referenced by L1MuGMTLFMergeRankEtaQLUT().
virtual unsigned L1MuGMTLFMergeRankEtaQLUT::LookupFunctionPacked | ( | int | idx, | |
unsigned | address | |||
) | const [inline, virtual] |
access to lookup function with packed input and output
Reimplemented from L1MuGMTLUT.
Definition at line 86 of file L1MuGMTLFMergeRankEtaQLUT.h.
References addr, L1MuGMTLUT::m_Inputs, TheLookupFunction(), and L1MuGMTLUT::u2vec().
00086 { 00087 std::vector<unsigned> addr = u2vec(address, m_Inputs); 00088 return TheLookupFunction(idx ,addr[0] ,addr[1]); 00089 00090 };
unsigned L1MuGMTLFMergeRankEtaQLUT::SpecificLookup | ( | int | idx, | |
unsigned | eta, | |||
unsigned | q | |||
) | const [inline] |
specific lookup function for entire output field
Definition at line 75 of file L1MuGMTLFMergeRankEtaQLUT.h.
References addr, and L1MuGMTLUT::LookupPacked().
00075 { 00076 std::vector<unsigned> addr(2); 00077 addr[0] = eta; 00078 addr[1] = q; 00079 return LookupPacked(idx, addr); 00080 };
unsigned L1MuGMTLFMergeRankEtaQLUT::SpecificLookup_flag | ( | int | idx, | |
unsigned | eta, | |||
unsigned | q | |||
) | const [inline] |
specific lookup function for flag
Definition at line 59 of file L1MuGMTLFMergeRankEtaQLUT.h.
References addr, and L1MuGMTLUT::Lookup().
Referenced by L1MuGMTMerger::merge_rank().
00059 { 00060 std::vector<unsigned> addr(2); 00061 addr[0] = eta; 00062 addr[1] = q; 00063 return Lookup(idx, addr) [0]; 00064 };
unsigned L1MuGMTLFMergeRankEtaQLUT::SpecificLookup_rank_etaq | ( | int | idx, | |
unsigned | eta, | |||
unsigned | q | |||
) | const [inline] |
specific lookup function for rank_etaq
Definition at line 67 of file L1MuGMTLFMergeRankEtaQLUT.h.
References addr, and L1MuGMTLUT::Lookup().
Referenced by L1MuGMTMerger::merge_rank().
00067 { 00068 std::vector<unsigned> addr(2); 00069 addr[0] = eta; 00070 addr[1] = q; 00071 return Lookup(idx, addr) [1]; 00072 };
unsigned L1MuGMTLFMergeRankEtaQLUT::TheLookupFunction | ( | int | idx, | |
unsigned | eta, | |||
unsigned | q | |||
) | const [private] |
The lookup function - here the functionality of the LUT is implemented.
Definition at line 45 of file L1MuGMTLFMergeRankEtaQLUT.cc.
References L1MuScale::getCenter(), L1MuTriggerScales::getRegionalEtaScale(), and L1MuGMTConfig::getTriggerScales().
Referenced by LookupFunctionPacked().
00045 { 00046 // idx is DT, BRPC, CSC, FRPC 00047 // INPUTS: eta(6) q(3) 00048 // OUTPUTS: flag(1) rank_etaq(7) 00049 00050 const L1MuTriggerScales* theTriggerScales = L1MuGMTConfig::getTriggerScales(); 00051 00052 // int isRPC = idx % 2; 00053 // int isFWD = idx / 2; 00054 00055 float etaValue = theTriggerScales->getRegionalEtaScale(idx)->getCenter( eta ); 00056 00057 00058 unsigned flag = 0; 00059 switch (idx) { 00060 case 0: // DT 00061 if ( (q==1 || q==4 || q==6 || q==7) || 00062 ( (q==2 || q==3) && (fabs(etaValue) < 0.9) ) ) flag=1; 00063 break; 00064 case 1: // bRPC 00065 if (q==0) flag=1; 00066 break; 00067 case 2: // CSC 00068 if ( (q==2 || fabs(etaValue) < 1.2) || 00069 q==3) flag =1; 00070 break; 00071 case 3: // fRPC 00072 if (q==3) flag =1; 00073 } 00074 00075 unsigned rank_etaq = 0; 00076 00077 return flag << 7 | rank_etaq; 00078 }