File indexing completed on 2024-04-06 12:19:56
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTEtaLUT.h"
0022
0023
0024
0025
0026
0027 #include <iostream>
0028 #include <vector>
0029 #include <cmath>
0030
0031
0032
0033
0034
0035 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0036
0037
0038
0039
0040
0041
0042
0043
0044 L1MuGMTEtaLUT::L1MuGMTEtaLUT() {}
0045
0046
0047
0048
0049 L1MuGMTEtaLUT::~L1MuGMTEtaLUT() {}
0050
0051
0052
0053
0054
0055 int L1MuGMTEtaLUT::etabin(float eta, int isys) {
0056 int i;
0057 for (i = 0; i < (int)NETA; i++)
0058 if (eta >= etabins[isys][i] && eta < etabins[isys][i + 1])
0059 break;
0060 if (i >= (int)NETA)
0061 edm::LogWarning("LUTProblem") << "L1MuGMTEtaLUT::etabin(): could not assign eta bin ";
0062 return i;
0063 }
0064
0065
0066
0067
0068 float L1MuGMTEtaLUT::eta(int isys, int isISO, int icharge, float eta, float pt) {
0069 int ieta = etabin((float)fabs(eta), isys);
0070
0071 if ((isys == DT || isys == bRPC) && pt < 4.)
0072 pt = 4.;
0073 if ((isys == CSC || isys == fRPC) && pt < 3.)
0074 pt = 3.;
0075
0076 float a = fitparams_eta[isISO][isys][ieta][0];
0077 float b = fitparams_eta[isISO][isys][ieta][1];
0078 float c = fitparams_eta[isISO][isys][ieta][2];
0079
0080 float deta = a + b / pt + c / (pt * pt);
0081
0082 float neweta;
0083 if (eta > 0)
0084 neweta = eta - deta;
0085 else
0086 neweta = eta + deta;
0087
0088 return neweta;
0089 }
0090
0091
0092
0093
0094
0095
0096
0097
0098 float L1MuGMTEtaLUT::etabins[L1MuGMTEtaLUT::NSYS][L1MuGMTEtaLUT::NETA + 1] = {
0099 {0.00, 0.22, 0.27, 0.58, 0.77, 0.87, 0.92, 1.24, 1.35 },
0100 {0.00, 1.06, 1.26, 1.46, 1.66, 1.86, 2.06, 2.26, 2.46},
0101 {0.00, 0.06, 0.25, 0.41, 0.54, 0.70, 0.83, 0.93, 2.10 },
0102 {0.00 , 1.24, 1.36, 1.48, 1.61, 1.73, 1.85, 1.97, 2.10}
0103 };
0104
0105 float L1MuGMTEtaLUT::fitparams_eta[L1MuGMTEtaLUT::NRP][L1MuGMTEtaLUT::NSYS][L1MuGMTEtaLUT::NETA][3] = {
0106 {
0107
0108 {{0.000622, -0.041158, 0.173116},
0109 {0.006699, 0.033410, 0.100972},
0110 {-0.013232, 0.067651, -0.601139},
0111 {-0.014180, 0.021067, 0.523313},
0112 {0.016339, -0.088452, 0.760254},
0113 {-0.036318, -0.191343, 2.020133},
0114 {0.034405, -0.085665, 1.199408},
0115 {0.000000, 0.000000, 0.000000}},
0116
0117 {{-0.015401, -0.058141, 1.558118},
0118 {-0.004330, -0.070188, 1.284233},
0119 {-0.006400, -0.087547, 1.504680},
0120 {-0.012328, -0.017183, 0.740447},
0121 {-0.008242, 0.065439, 0.103247},
0122 {-0.007771, 0.064422, 0.032815},
0123 {-0.013519, 0.061566, -0.012504},
0124 {-0.019427, 0.058284, -0.137946}},
0125
0126 {{-0.007561, -0.042023, 0.352816},
0127 {-0.009209, 0.040731, 0.302872},
0128 {-0.009222, 0.187243, -0.778960},
0129 {0.005989, 0.166652, -0.389902},
0130 {0.002763, 0.015457, 0.659074},
0131 {0.003961, 0.024581, 0.356591},
0132 {0.007231, -0.006835, 0.780842},
0133 {0.009003, -0.096096, 1.400512}},
0134
0135 {{0.001764, -0.005724, 0.996918},
0136 {-0.001087, -0.006683, 1.025424},
0137 {0.006963, -0.070388, 1.071490},
0138 {-0.010473, -0.009773, 0.757894},
0139 {-0.003982, 0.044828, 0.188175},
0140 {-0.004707, 0.090827, 0.075001},
0141 {-0.008527, 0.093006, -0.030012},
0142 {-0.002392, 0.070246, 0.021308}}},
0143 {
0144 {{-0.000091, -0.017684, 0.055423},
0145 {-0.001020, -0.043767, 0.895337},
0146 {-0.012845, 0.042033, -0.260102},
0147 {-0.013225, 0.023254, 0.711623},
0148 {0.019014, -0.106147, 1.048216},
0149 {-0.037251, -0.186894, 2.284707},
0150 {0.032260, -0.064396, 1.457979},
0151 {0.000000, 0.000000, 0.000000}},
0152
0153 {{-0.005587, -0.055360, 1.573220},
0154 {-0.005393, -0.048236, 1.591642},
0155 {-0.006649, -0.091712, 1.716567},
0156 {-0.007636, -0.061966, 1.065366},
0157 {-0.000338, -0.020505, 0.578064},
0158 {-0.001077, -0.015956, 0.384573},
0159 {-0.001851, -0.029931, 0.310996},
0160 {-0.001878, -0.012289, 0.168514}},
0161
0162 {{-0.010030, 0.027686, -0.147926},
0163 {-0.008563, 0.041026, 0.356772},
0164 {-0.010788, 0.166841, -0.458204},
0165 {0.009806, 0.109100, 0.080603},
0166 {0.000945, 0.028016, 0.798682},
0167 {0.006432, 0.007630, 0.704437},
0168 {0.007685, -0.004569, 1.044223},
0169 {0.005465, -0.063151, 1.631665}},
0170
0171 {{0.003319, -0.027350, 1.453144},
0172 {0.002237, -0.038884, 1.527818},
0173 {0.003157, -0.092544, 1.479619},
0174 {-0.002126, -0.074455, 1.120056},
0175 {-0.002724, -0.011819, 0.628300},
0176 {0.002581, -0.017028, 0.607589},
0177 {0.002323, 0.025784, 0.253405},
0178 {0.006582, 0.008247, 0.258189}}}};