CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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 //
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 // Destructor --
48 //--------------
50 
51 //--------------
52 // Operations --
53 //--------------
54 
55 int L1MuGMTEtaLUT::etabin(float eta, int isys) {
56  int i;
57  for (i = 0; i < (int)NETA; i++)
58  if (eta >= etabins[isys][i] && eta < etabins[isys][i + 1])
59  break;
60  if (i >= (int)NETA)
61  edm::LogWarning("LUTProblem") << "L1MuGMTEtaLUT::etabin(): could not assign eta bin ";
62  return i;
63 }
64 
65 //
66 // project muon eta to calo/vertex
67 //
68 float L1MuGMTEtaLUT::eta(int isys, int isISO, int icharge, float eta, float pt) {
69  int ieta = etabin((float)fabs(eta), isys);
70 
71  if ((isys == DT || isys == bRPC) && pt < 4.)
72  pt = 4.; // cut off
73  if ((isys == CSC || isys == fRPC) && pt < 3.)
74  pt = 3.;
75 
76  float a = fitparams_eta[isISO][isys][ieta][0];
77  float b = fitparams_eta[isISO][isys][ieta][1];
78  float c = fitparams_eta[isISO][isys][ieta][2];
79 
80  float deta = a + b / pt + c / (pt * pt);
81 
82  float neweta;
83  if (eta > 0)
84  neweta = eta - deta;
85  else
86  neweta = eta + deta;
87 
88  return neweta;
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 
106  {// projection to HCAL derived from HCAL positions retrieved in ORCA
107  // calo eta projection parametrization for DT, projection to HCAL in (for MIP)
108  {{0.000622, -0.041158, 0.173116},
109  {0.006699, 0.033410, 0.100972},
110  {-0.013232, 0.067651, -0.601139},
111  {-0.014180, 0.021067, 0.523313},
112  {0.016339, -0.088452, 0.760254},
113  {-0.036318, -0.191343, 2.020133},
114  {0.034405, -0.085665, 1.199408},
115  {0.000000, 0.000000, 0.000000}},
116  // calo eta projection parametrization for CSC, projection to HCAL in (for MIP)
117  {{-0.015401, -0.058141, 1.558118},
118  {-0.004330, -0.070188, 1.284233},
119  {-0.006400, -0.087547, 1.504680},
120  {-0.012328, -0.017183, 0.740447},
121  {-0.008242, 0.065439, 0.103247},
122  {-0.007771, 0.064422, 0.032815},
123  {-0.013519, 0.061566, -0.012504},
124  {-0.019427, 0.058284, -0.137946}},
125  // calo eta projection parametrization for bRPC, projection to HCAL in (for MIP)
126  {{-0.007561, -0.042023, 0.352816},
127  {-0.009209, 0.040731, 0.302872},
128  {-0.009222, 0.187243, -0.778960},
129  {0.005989, 0.166652, -0.389902},
130  {0.002763, 0.015457, 0.659074},
131  {0.003961, 0.024581, 0.356591},
132  {0.007231, -0.006835, 0.780842},
133  {0.009003, -0.096096, 1.400512}},
134  // calo eta projection parametrization for fRPC, projection to HCAL in (for MIP)
135  {{0.001764, -0.005724, 0.996918},
136  {-0.001087, -0.006683, 1.025424},
137  {0.006963, -0.070388, 1.071490},
138  {-0.010473, -0.009773, 0.757894},
139  {-0.003982, 0.044828, 0.188175},
140  {-0.004707, 0.090827, 0.075001},
141  {-0.008527, 0.093006, -0.030012},
142  {-0.002392, 0.070246, 0.021308}}},
143  {// calo eta projection parametrization for DT, projection to vertex (for ISO)
144  {{-0.000091, -0.017684, 0.055423},
145  {-0.001020, -0.043767, 0.895337},
146  {-0.012845, 0.042033, -0.260102},
147  {-0.013225, 0.023254, 0.711623},
148  {0.019014, -0.106147, 1.048216},
149  {-0.037251, -0.186894, 2.284707},
150  {0.032260, -0.064396, 1.457979},
151  {0.000000, 0.000000, 0.000000}},
152  // calo eta projection parametrization for CSC, projection to vertex (for ISO)
153  {{-0.005587, -0.055360, 1.573220},
154  {-0.005393, -0.048236, 1.591642},
155  {-0.006649, -0.091712, 1.716567},
156  {-0.007636, -0.061966, 1.065366},
157  {-0.000338, -0.020505, 0.578064},
158  {-0.001077, -0.015956, 0.384573},
159  {-0.001851, -0.029931, 0.310996},
160  {-0.001878, -0.012289, 0.168514}},
161  // calo eta projection parametrization for bRPC, projection to vertex (for ISO)
162  {{-0.010030, 0.027686, -0.147926},
163  {-0.008563, 0.041026, 0.356772},
164  {-0.010788, 0.166841, -0.458204},
165  {0.009806, 0.109100, 0.080603},
166  {0.000945, 0.028016, 0.798682},
167  {0.006432, 0.007630, 0.704437},
168  {0.007685, -0.004569, 1.044223},
169  {0.005465, -0.063151, 1.631665}},
170  // calo eta projection parametrization for fRPC, projection to vertex (for ISO)
171  {{0.003319, -0.027350, 1.453144},
172  {0.002237, -0.038884, 1.527818},
173  {0.003157, -0.092544, 1.479619},
174  {-0.002126, -0.074455, 1.120056},
175  {-0.002724, -0.011819, 0.628300},
176  {0.002581, -0.017028, 0.607589},
177  {0.002323, 0.025784, 0.253405},
178  {0.006582, 0.008247, 0.258189}}}};
static const int CSC
Definition: L1MuGMTEtaLUT.h:59
const edm::EventSetup & c
static const int bRPC
Definition: L1MuGMTEtaLUT.h:60
static const unsigned int NETA
Definition: L1MuGMTEtaLUT.h:65
L1MuGMTEtaLUT()
constructor
static const int NSYS
Definition: L1MuGMTEtaLUT.h:57
static float etabins[NSYS][NETA+1]
Definition: L1MuGMTEtaLUT.h:70
virtual ~L1MuGMTEtaLUT()
destructor
static const int DT
Definition: L1MuGMTEtaLUT.h:58
static const int fRPC
Definition: L1MuGMTEtaLUT.h:61
static float fitparams_eta[NRP][NSYS][NETA][3]
Definition: L1MuGMTEtaLUT.h:71
static int etabin(float eta, int isys)
static const unsigned int NRP
Definition: L1MuGMTEtaLUT.h:68
double b
Definition: hdecay.h:118
static float eta(int isys, int isISO, int icharge, float eta, float pt)
look up delta-eta
double a
Definition: hdecay.h:119