CMS 3D CMS Logo

L1MuGMTEtaLUT.cc
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
3 // Class: L1MuGMTEtaLUT
4 //
5 // Description: Look-up table for GMT Eta Projection Unit
6 //
7 //
8 //
9 // Author :
10 // H. Sakulin CERN EP
11 //
12 // Migrated to CMSSW:
13 // I. Mikulec
14 //
15 //--------------------------------------------------
16 
17 //-----------------------
18 // This Class's Header --
19 //-----------------------
20 
22 
23 //---------------
24 // C++ Headers --
25 //---------------
26 
27 #include <iostream>
28 #include <vector>
29 #include <cmath>
30 
31 //-------------------------------
32 // Collaborating Class Headers --
33 //-------------------------------
34 
36 
37 // --------------------------------
38 // class L1MuGMTEtaLUT
39 //---------------------------------
40 
41 //----------------
42 // Constructors --
43 //----------------
45 }
46 
47 //--------------
48 // Destructor --
49 //--------------
51 
52 }
53 
54 //--------------
55 // Operations --
56 //--------------
57 
58 int L1MuGMTEtaLUT::etabin(float eta, int isys) {
59  int i;
60  for (i=0; i<(int)NETA;i++)
61  if (eta >= etabins[isys][i] && eta < etabins[isys][i+1]) break;
62  if (i>=(int)NETA) edm::LogWarning("LUTProblem") << "L1MuGMTEtaLUT::etabin(): could not assign eta bin ";
63  return i;
64 }
65 
66 
67 //
68 // project muon eta to calo/vertex
69 //
70 float L1MuGMTEtaLUT::eta(int isys, int isISO, int icharge, float eta, float pt) {
71 
72  int ieta = etabin ( (float) fabs(eta), isys );
73 
74  if ( (isys==DT || isys==bRPC) && pt < 4.) pt = 4.; // cut off
75  if ( (isys==CSC || isys==fRPC) && pt < 3.) pt = 3.;
76 
77  float a=fitparams_eta[isISO][isys][ieta][0];
78  float b=fitparams_eta[isISO][isys][ieta][1];
79  float c=fitparams_eta[isISO][isys][ieta][2];
80 
81  float deta = a + b / pt + c / (pt*pt);
82 
83  float neweta;
84  if (eta>0) neweta = eta - deta;
85  else neweta = eta + deta;
86 
87  return neweta;
88  }
89 
90 
91 //
92 // static parameters of LUTs
93 //
94 
95 // 06/2003 changed a few end-of scale values
96 // in order to get less errors when generating LUTs
97 
99  { 0.00, 0.22, 0.27, 0.58, 0.77, 0.87, 0.92, 1.24, 1.35 /*1.24*/ }, // DT
100  { 0.00, 1.06, 1.26, 1.46, 1.66, 1.86, 2.06, 2.26, 2.46 }, // CSC
101  { 0.00, 0.06, 0.25, 0.41, 0.54, 0.70, 0.83, 0.93, 2.10 /* 1.04 */ }, // bRPC
102  { 0.00 /*1.04*/ , 1.24, 1.36, 1.48, 1.61, 1.73, 1.85, 1.97, 2.10} // fRPC
103 };
104 
105 
107  {
108  // projection to HCAL derived from HCAL positions retrieved in ORCA
109  // calo eta projection parametrization for DT, projection to HCAL in (for MIP)
110  {
111  { 0.000622, -0.041158, 0.173116 },
112  { 0.006699, 0.033410, 0.100972 },
113  { -0.013232, 0.067651, -0.601139 },
114  { -0.014180, 0.021067, 0.523313 },
115  { 0.016339, -0.088452, 0.760254 },
116  { -0.036318, -0.191343, 2.020133 },
117  { 0.034405, -0.085665, 1.199408 },
118  { 0.000000, 0.000000, 0.000000 }
119  },
120  // calo eta projection parametrization for CSC, projection to HCAL in (for MIP)
121  {
122  { -0.015401, -0.058141, 1.558118 },
123  { -0.004330, -0.070188, 1.284233 },
124  { -0.006400, -0.087547, 1.504680 },
125  { -0.012328, -0.017183, 0.740447 },
126  { -0.008242, 0.065439, 0.103247 },
127  { -0.007771, 0.064422, 0.032815 },
128  { -0.013519, 0.061566, -0.012504 },
129  { -0.019427, 0.058284, -0.137946 }
130  },
131  // calo eta projection parametrization for bRPC, projection to HCAL in (for MIP)
132  {
133  { -0.007561, -0.042023, 0.352816 },
134  { -0.009209, 0.040731, 0.302872 },
135  { -0.009222, 0.187243, -0.778960 },
136  { 0.005989, 0.166652, -0.389902 },
137  { 0.002763, 0.015457, 0.659074 },
138  { 0.003961, 0.024581, 0.356591 },
139  { 0.007231, -0.006835, 0.780842 },
140  { 0.009003, -0.096096, 1.400512 }
141  },
142  // calo eta projection parametrization for fRPC, projection to HCAL in (for MIP)
143  {
144  { 0.001764, -0.005724, 0.996918 },
145  { -0.001087, -0.006683, 1.025424 },
146  { 0.006963, -0.070388, 1.071490 },
147  { -0.010473, -0.009773, 0.757894 },
148  { -0.003982, 0.044828, 0.188175 },
149  { -0.004707, 0.090827, 0.075001 },
150  { -0.008527, 0.093006, -0.030012 },
151  { -0.002392, 0.070246, 0.021308 }
152  }
153  },
154  {
155  // calo eta projection parametrization for DT, projection to vertex (for ISO)
156  {
157  { -0.000091, -0.017684, 0.055423 },
158  { -0.001020, -0.043767, 0.895337 },
159  { -0.012845, 0.042033, -0.260102 },
160  { -0.013225, 0.023254, 0.711623 },
161  { 0.019014, -0.106147, 1.048216 },
162  { -0.037251, -0.186894, 2.284707 },
163  { 0.032260, -0.064396, 1.457979 },
164  { 0.000000, 0.000000, 0.000000 }
165  },
166  // calo eta projection parametrization for CSC, projection to vertex (for ISO)
167  {
168  { -0.005587, -0.055360, 1.573220 },
169  { -0.005393, -0.048236, 1.591642 },
170  { -0.006649, -0.091712, 1.716567 },
171  { -0.007636, -0.061966, 1.065366 },
172  { -0.000338, -0.020505, 0.578064 },
173  { -0.001077, -0.015956, 0.384573 },
174  { -0.001851, -0.029931, 0.310996 },
175  { -0.001878, -0.012289, 0.168514 }
176  },
177  // calo eta projection parametrization for bRPC, projection to vertex (for ISO)
178  {
179  { -0.010030, 0.027686, -0.147926 },
180  { -0.008563, 0.041026, 0.356772 },
181  { -0.010788, 0.166841, -0.458204 },
182  { 0.009806, 0.109100, 0.080603 },
183  { 0.000945, 0.028016, 0.798682 },
184  { 0.006432, 0.007630, 0.704437 },
185  { 0.007685, -0.004569, 1.044223 },
186  { 0.005465, -0.063151, 1.631665 }
187  },
188  // calo eta projection parametrization for fRPC, projection to vertex (for ISO)
189  {
190  { 0.003319, -0.027350, 1.453144 },
191  { 0.002237, -0.038884, 1.527818 },
192  { 0.003157, -0.092544, 1.479619 },
193  { -0.002126, -0.074455, 1.120056 },
194  { -0.002724, -0.011819, 0.628300 },
195  { 0.002581, -0.017028, 0.607589 },
196  { 0.002323, 0.025784, 0.253405 },
197  { 0.006582, 0.008247, 0.258189 }
198  }
199  }
200 };
201 
static const int CSC
Definition: L1MuGMTEtaLUT.h:64
static const int bRPC
Definition: L1MuGMTEtaLUT.h:65
static const unsigned int NETA
Definition: L1MuGMTEtaLUT.h:70
L1MuGMTEtaLUT()
constructor
static const int NSYS
Definition: L1MuGMTEtaLUT.h:62
static float etabins[NSYS][NETA+1]
Definition: L1MuGMTEtaLUT.h:75
virtual ~L1MuGMTEtaLUT()
destructor
static const int DT
Definition: L1MuGMTEtaLUT.h:63
static const int fRPC
Definition: L1MuGMTEtaLUT.h:66
static float fitparams_eta[NRP][NSYS][NETA][3]
Definition: L1MuGMTEtaLUT.h:76
static int etabin(float eta, int isys)
static const unsigned int NRP
Definition: L1MuGMTEtaLUT.h:73
double b
Definition: hdecay.h:120
static float eta(int isys, int isISO, int icharge, float eta, float pt)
look up delta-eta
double a
Definition: hdecay.h:121