CMS 3D CMS Logo

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