#include <L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFSortRankEtaQLUT.h>
Public Types | |
enum | { DT, BRPC, CSC, FRPC } |
Public Member Functions | |
L1MuGMTLFSortRankEtaQLUT () | |
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_rank_etaq (int idx, unsigned eta, unsigned q) const |
specific lookup function for rank_etaq | |
unsigned | SpecificLookup_vlq (int idx, unsigned eta, unsigned q) const |
specific lookup function for vlq | |
virtual | ~L1MuGMTLFSortRankEtaQLUT () |
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. | |
Private Attributes | |
unsigned | m_version |
Private data members (LUT parameters);. |
this class was automatically generated by L1MuGMTLUT::MakeSubClass()
Definition at line 42 of file L1MuGMTLFSortRankEtaQLUT.h.
anonymous enum |
L1MuGMTLFSortRankEtaQLUT::L1MuGMTLFSortRankEtaQLUT | ( | ) | [inline] |
constuctor using function-lookup
Definition at line 48 of file L1MuGMTLFSortRankEtaQLUT.h.
References InitParameters().
00048 : L1MuGMTLUT("LFSortRankEtaQ", 00049 "DT BRPC CSC FRPC", 00050 "eta(6) q(3)", 00051 "vlq(2) rank_etaq(2)", 7, false) { 00052 InitParameters(); 00053 } ;
virtual L1MuGMTLFSortRankEtaQLUT::~L1MuGMTLFSortRankEtaQLUT | ( | ) | [inline, virtual] |
void L1MuGMTLFSortRankEtaQLUT::InitParameters | ( | ) | [private] |
Initialize scales, configuration parameters, alignment constants, ...
Definition at line 37 of file L1MuGMTLFSortRankEtaQLUT.cc.
References L1MuGMTConfig::getVersionSortRankEtaQLUT(), and m_version.
Referenced by L1MuGMTLFSortRankEtaQLUT().
00037 { 00038 m_version = L1MuGMTConfig::getVersionSortRankEtaQLUT(); 00039 }
virtual unsigned L1MuGMTLFSortRankEtaQLUT::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 L1MuGMTLFSortRankEtaQLUT.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 L1MuGMTLFSortRankEtaQLUT::SpecificLookup | ( | int | idx, | |
unsigned | eta, | |||
unsigned | q | |||
) | const [inline] |
specific lookup function for entire output field
Definition at line 75 of file L1MuGMTLFSortRankEtaQLUT.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 L1MuGMTLFSortRankEtaQLUT::SpecificLookup_rank_etaq | ( | int | idx, | |
unsigned | eta, | |||
unsigned | q | |||
) | const [inline] |
specific lookup function for rank_etaq
Definition at line 67 of file L1MuGMTLFSortRankEtaQLUT.h.
References addr, and L1MuGMTLUT::Lookup().
Referenced by L1MuGMTSortRankUnit::sort_rank().
00067 { 00068 std::vector<unsigned> addr(2); 00069 addr[0] = eta; 00070 addr[1] = q; 00071 return Lookup(idx, addr) [1]; 00072 };
unsigned L1MuGMTLFSortRankEtaQLUT::SpecificLookup_vlq | ( | int | idx, | |
unsigned | eta, | |||
unsigned | q | |||
) | const [inline] |
specific lookup function for vlq
Definition at line 59 of file L1MuGMTLFSortRankEtaQLUT.h.
References addr, and L1MuGMTLUT::Lookup().
Referenced by L1MuGMTSortRankUnit::getVeryLowQualityLevel().
00059 { 00060 std::vector<unsigned> addr(2); 00061 addr[0] = eta; 00062 addr[1] = q; 00063 return Lookup(idx, addr) [0]; 00064 };
unsigned L1MuGMTLFSortRankEtaQLUT::TheLookupFunction | ( | int | idx, | |
unsigned | eta, | |||
unsigned | q | |||
) | const [private] |
The lookup function - here the functionality of the LUT is implemented.
Definition at line 58 of file L1MuGMTLFSortRankEtaQLUT.cc.
References L1MuScale::getCenter(), L1MuGMTConfig::getDoOvlRpcAnd(), L1MuTriggerScales::getRegionalEtaScale(), L1MuGMTConfig::getTriggerScales(), and m_version.
Referenced by LookupFunctionPacked().
00058 { 00059 // idx is DT, BRPC, CSC, FRPC 00060 // INPUTS: eta(6) q(3) 00061 // OUTPUTS: vlq(2) rank_etaq(2) 00062 00063 const L1MuTriggerScales* theTriggerScales = L1MuGMTConfig::getTriggerScales(); 00064 00065 int isRPC = idx % 2; 00066 // int isFWD = idx / 2; 00067 00068 float etaValue = fabs ( theTriggerScales->getRegionalEtaScale(idx)->getCenter( eta ) ); 00069 00070 // 00071 // very-low-quality flags 00072 // 00073 // 0 .. no VLQ set 00074 // 1 .. output muon will be quality 2 (disable in single and di-muon trigger) 00075 // 2 .. output muon will be quality 3 (disable in single-muon trigger only) 00076 // 3 .. output muon will be quality 4 (disable in di-muon trigger only) 00077 00078 unsigned vlq = 0; 00079 // RPC selection 00080 if (isRPC) { 00081 if ( ( q == 0 && ( ( etaValue > 1.04 && etaValue < 1.24 ) || // Q0, high rate, high noise 00082 ( etaValue > 1.48 ) ) ) || // Q0, high rate, high noise 00083 ( q == 1 && ( ( etaValue > 0.83 && etaValue < 1.04 ) || // Q1, high rate 00084 ( etaValue > 1.14 && etaValue < 1.24 ) || // Q1, high noise 00085 ( etaValue > 1.36 ) ) ) || // Q1, high rate 00086 ( q == 2 && ( etaValue > 0.83 && etaValue < 0.93 ) ) ) // Q2, high rate 00087 vlq = 1; 00088 } 00089 00090 // CSC selection 00091 if ( idx == 2 ) { // CSC 00092 if (q == 2) { 00093 // if ( etaValue > 1.1 && etaValue < 1.2 ) 00094 //vlq = 1; // disable in single and di-muon trigger 00095 //else 00096 00097 // use m_version to distinguish startup (v=2) and full geometry (v=1) 00098 if ( m_version == 1 || 00099 (m_version == 2 && (etaValue<1.5 || etaValue>1.8)) ) vlq = 2; // disable in single-muon trigger only 00100 } 00101 if (q == 1) { 00102 if (etaValue > 1.2) 00103 vlq = 2; // disable in single-muon trigger only 00104 } 00105 } 00106 00107 if ( L1MuGMTConfig::getDoOvlRpcAnd() ) { 00108 if ( idx == 0 ) { // DT 00109 if ( etaValue > 0.91 ) vlq = 1; 00110 } 00111 if ( idx == 2 ) { // CSC 00112 if ( etaValue < 1.06 ) vlq = 1; 00113 } 00114 } 00115 00116 // 00117 // Rank contribution from eta and quality 00118 // 00119 00120 // by default return maximum 00121 // LUT can later be used to reduce the sort rank of certain regions 00122 unsigned rank_etaq = 3; 00123 00124 return (vlq << 2) | rank_etaq; 00125 }
unsigned L1MuGMTLFSortRankEtaQLUT::m_version [private] |
Private data members (LUT parameters);.
Definition at line 100 of file L1MuGMTLFSortRankEtaQLUT.h.
Referenced by InitParameters(), and TheLookupFunction().