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/L1MuGMTLFPhiProLUT.h"
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTConfig.h"
00032 #include "CondFormats/L1TObjects/interface/L1MuTriggerScales.h"
00033 #include "CondFormats/L1TObjects/interface/L1MuTriggerPtScale.h"
00034 #include "CondFormats/L1TObjects/interface/L1MuPacking.h"
00035
00036 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTPhiLUT.h"
00037
00038
00039
00040
00041
00042 void L1MuGMTLFPhiProLUT::InitParameters() {
00043 }
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 unsigned L1MuGMTLFPhiProLUT::TheLookupFunction (int idx, unsigned eta, unsigned pt, unsigned charge) const {
00060
00061
00062
00063
00064
00065 const L1MuTriggerPtScale* theTriggerPtScale = L1MuGMTConfig::getTriggerPtScale();
00066
00067
00068 static bool doProjection = L1MuGMTConfig::getPropagatePhi();
00069
00070 if (!doProjection) return 0;
00071
00072 int isRPC = idx % 2;
00073 int isFWD = idx / 2;
00074
00075 int isys = isFWD + 2 * isRPC;
00076 int ch_idx = (charge == 0) ? 1 : 0;
00077
00078
00079 if (eta>7) eta -= 8;
00080
00081 float dphi = L1MuGMTPhiLUT::dphi (isys, 1, ch_idx, (int) eta,
00082 theTriggerPtScale->getPtScale()->getLowEdge(pt) );
00083
00084
00085 int dphi_int = (int) ( (-dphi + 1.25 / 180. * M_PI + 2* M_PI ) / ( 2.5 / 180. * M_PI ) ) - 144;
00086
00087 L1MuSignedPacking<9> PhiPacking;
00088 return PhiPacking.packedFromIdx(dphi_int);
00089 }
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108