Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTLFCOUDeltaEtaLUT.h"
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTConfig.h"
00032 #include "CondFormats/L1TObjects/interface/L1MuGMTScales.h"
00033 #include "CondFormats/L1TObjects/interface/L1MuPacking.h"
00034
00035
00036
00037
00038
00039 void L1MuGMTLFCOUDeltaEtaLUT::InitParameters() {
00040 }
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 unsigned L1MuGMTLFCOUDeltaEtaLUT::TheLookupFunction (int idx, unsigned eta1, unsigned eta2) const {
00055
00056
00057
00058
00059 const L1MuGMTScales* theGMTScales = L1MuGMTConfig::getGMTScales();
00060
00061
00062 L1MuSignedPacking<4> pack;
00063 unsigned delta_eta_OOR = pack.packedFromIdx (-8);
00064
00065 if (eta1==7 || eta2 ==7) return delta_eta_OOR;
00066
00067 int type1=0, type2=0;
00068 switch (idx) {
00069 case 0: type1 = 0; type2 = 2; break;
00070 case 1: type1 = 2; type2 = 0; break;
00071 case 2: type1 = 1; type2 = 2; break;
00072 case 3: type1 = 3; type2 = 0; break;
00073 }
00074
00075 float etaValue1 = theGMTScales->getOvlEtaScale(type1)->getCenter(eta1);
00076 float etaValue2 = theGMTScales->getOvlEtaScale(type2)->getCenter(eta2);
00077
00078 float delta_eta = etaValue1 - etaValue2;
00079
00080 unsigned delta_eta_4bit = 0;
00081
00082
00083 if (delta_eta < theGMTScales->getDeltaEtaScale(idx+2)->getScaleMin() ||
00084 delta_eta > theGMTScales->getDeltaEtaScale(idx+2)->getScaleMax()) {
00085 delta_eta_4bit = delta_eta_OOR;
00086 }
00087 else {
00088 delta_eta_4bit = theGMTScales->getDeltaEtaScale(idx+2)->getPacked( delta_eta );
00089 }
00090
00091 return delta_eta_4bit;
00092 }
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111