CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes
L1GctMet Class Reference

Stores Level-1 missing Et in (Ex, Ey) form, allowing it to be retrieved as (magnitude, angle) More...

#include <L1GctMet.h>

Classes

struct  etmiss_internal
 
struct  etmiss_vec
 

Public Types

typedef L1GctWheelEnergyFpga::etComponentType etComponentType
 
typedef L1GctUnsignedInt< L1GctEtMiss::kEtMissPhiNBitsetMissPhiType
 
typedef L1GctUnsignedInt< L1GctEtMiss::kEtMissNBitsetMissType
 
enum  metAlgoType { cordicTranslate, useHtMissLut, oldGct, floatingPoint }
 

Public Member Functions

const double componentLsb () const
 
const L1CaloEtScaleetScale () const
 
metAlgoType getAlgoType () const
 
unsigned getBitShift () const
 
etComponentType getExComponent () const
 
etComponentType getEyComponent () const
 
const L1GctHtMissLutgetHtMissLut () const
 
 L1GctMet (const etComponentType &ex, const etComponentType &ey, const metAlgoType algo=cordicTranslate)
 
 L1GctMet (const unsigned ex=0, const unsigned ey=0, const metAlgoType algo=cordicTranslate)
 
etmiss_vec metVector () const
 
void setAlgoType (const metAlgoType algo)
 
void setBitShift (const unsigned nbits)
 
void setComponents (const etComponentType &ex, const etComponentType &ey)
 
void setComponents (const unsigned ex, const unsigned ey)
 
void setEtComponentLsb (const double lsb)
 
void setEtScale (const L1CaloEtScale *const fn)
 
void setExComponent (const etComponentType &ex)
 
void setExComponent (const unsigned ex)
 
void setEyComponent (const etComponentType &ey)
 
void setEyComponent (const unsigned ey)
 
 ~L1GctMet ()
 

Private Types

enum  etComponentShift { kExOrEyMissComponentShift = 4 }
 

Private Member Functions

int cordicShiftAndRoundBits (const int e, const unsigned nBits) const
 
etmiss_internal cordicTranslateAlgo (const int ex, const int ey, const bool of) const
 
etmiss_internal floatingPointAlgo (const int ex, const int ey) const
 
const bool inputOverFlow () const
 
etmiss_internal oldGctAlgo (const int ex, const int ey) const
 
etmiss_internal useHtMissLutAlgo (const int ex, const int ey, const bool of) const
 

Private Attributes

metAlgoType m_algoType
 
unsigned short m_bitShift
 
etComponentType m_exComponent
 
etComponentType m_eyComponent
 
L1GctHtMissLutm_htMissLut
 

Detailed Description

Stores Level-1 missing Et in (Ex, Ey) form, allowing it to be retrieved as (magnitude, angle)

Author
Greg Heath
Date
April 2008

Allows the implementation of alternative algorithms

Definition at line 20 of file L1GctMet.h.

Member Typedef Documentation

◆ etComponentType

Definition at line 26 of file L1GctMet.h.

◆ etMissPhiType

Definition at line 25 of file L1GctMet.h.

◆ etMissType

Definition at line 24 of file L1GctMet.h.

Member Enumeration Documentation

◆ etComponentShift

Enumerator
kExOrEyMissComponentShift 

Definition at line 76 of file L1GctMet.h.

◆ metAlgoType

Enumerator
cordicTranslate 
useHtMissLut 
oldGct 
floatingPoint 

Definition at line 22 of file L1GctMet.h.

Constructor & Destructor Documentation

◆ L1GctMet() [1/2]

L1GctMet::L1GctMet ( const unsigned  ex = 0,
const unsigned  ey = 0,
const metAlgoType  algo = cordicTranslate 
)

Definition at line 7 of file L1GctMet.cc.

◆ L1GctMet() [2/2]

L1GctMet::L1GctMet ( const etComponentType ex,
const etComponentType ey,
const metAlgoType  algo = cordicTranslate 
)

Definition at line 10 of file L1GctMet.cc.

◆ ~L1GctMet()

L1GctMet::~L1GctMet ( )

Definition at line 13 of file L1GctMet.cc.

13 {}

Member Function Documentation

◆ componentLsb()

const double L1GctMet::componentLsb ( ) const

Definition at line 310 of file L1GctMet.cc.

310 { return m_htMissLut->componentLsb(); }

References L1GctHtMissLut::componentLsb(), and m_htMissLut.

◆ cordicShiftAndRoundBits()

int L1GctMet::cordicShiftAndRoundBits ( const int  e,
const unsigned  nBits 
) const
private

Definition at line 148 of file L1GctMet.cc.

148  {
149  int r;
150  if (nBits == 0) {
151  r = e;
152  } else {
153  r = (((e >> (nBits - 1)) + 1) >> 1);
154  }
155  return r;
156 }

References MillePedeFileConverter_cfg::e, and alignCSCRings::r.

Referenced by cordicTranslateAlgo().

◆ cordicTranslateAlgo()

L1GctMet::etmiss_internal L1GctMet::cordicTranslateAlgo ( const int  ex,
const int  ey,
const bool  of 
) const
private

Definition at line 66 of file L1GctMet.cc.

66  {
67  //---------------------------------------------------------------------------------
68  //
69  // This is an implementation of the CORDIC algorithm (COordinate Rotation for DIgital Computers)
70  //
71  // Starting from an initial two-component vector ex, ey, we perform successively smaller rotations
72  // to transform the y component to zero. At the end of the procedure, the x component is the magnitude
73  // of the original vector, scaled by a known constant factor. The azimuth angle phi is the sum of the
74  // rotations applied.
75  //
76  // The algorithm can be used in a number of different variants for calculation of trigonometric
77  // and hyperbolic functions as well as exponentials, logarithms and square roots. This variant
78  // is called the "vector translation" mode in the Xilinx documentation.
79  //
80  // Original references:
81  // Volder, J., "The CORDIC Trigonometric Computing Technique" IRE Trans. Electronic Computing, Vol.
82  // EC-8, Sept. 1959, pp330-334
83  // Walther, J.S., "A Unified Algorithm for Elementary Functions," Spring Joint computer conf., 1971,
84  // proc., pp379-385
85  //
86  // Other information sources: http://www.xilinx.com/support/documentation/ip_documentation/cordic.pdf;
87  // http://www.fpga-guru.com/files/crdcsrvy.pdf; and http://en.wikipedia.org/wiki/CORDIC
88  //
89  //---------------------------------------------------------------------------------
90 
91  etmiss_internal result;
92 
93  static const int of_val = 0x1FFF; // set components to 8191 (decimal) if there's an overflow on the input
94 
95  static const int n_iterations = 6;
96  // The angle units here are 1/32 of a 5 degree bin.
97  // So a 90 degree rotation is 32*18=576 or 240 hex.
98  const int cordic_angles[n_iterations] = {0x120, 0x0AA, 0x05A, 0x02E, 0x017, 0x00B};
99  const int cordic_starting_angle_090 = 0x240;
100  const int cordic_starting_angle_270 = 0x6C0;
101  const int cordic_angle_360 = 0x900;
102 
103  const int cordic_scale_factor = 0x26E; // decimal 622
104 
105  int x, y;
106  int dx, dy;
107  int z;
108 
109  if (of) {
110  x = of_val;
111  y = -of_val;
112  z = cordic_starting_angle_090;
113  } else {
114  if (ey >= 0) {
115  x = ey;
116  y = -ex;
117  z = cordic_starting_angle_090;
118  } else {
119  x = -ey;
120  y = ex;
121  z = cordic_starting_angle_270;
122  }
123  }
124 
125  for (int i = 0; i < n_iterations; i++) {
128  if (y >= 0) {
129  x = x + dx;
130  y = y - dy;
131  z = z + cordic_angles[i];
132  } else {
133  x = x - dx;
134  y = y + dy;
135  z = z - cordic_angles[i];
136  }
137  }
138 
139  int scaled_magnitude = x * cordic_scale_factor;
140  int adjusted_angle = ((z < 0) ? (z + cordic_angle_360) : z) % cordic_angle_360;
141  result.mag = scaled_magnitude >> 10;
142  result.phi = adjusted_angle >> 5;
143  if (result.mag > (unsigned)of_val)
144  result.mag = (unsigned)of_val;
145  return result;
146 }

References cordicShiftAndRoundBits(), PVValHelper::dx, PVValHelper::dy, mps_fire::i, mps_fire::result, x, y, and z.

Referenced by metVector().

◆ etScale()

const L1CaloEtScale * L1GctMet::etScale ( ) const

Definition at line 308 of file L1GctMet.cc.

308 { return m_htMissLut->etScale(); }

References L1GctHtMissLut::etScale(), and m_htMissLut.

◆ floatingPointAlgo()

L1GctMet::etmiss_internal L1GctMet::floatingPointAlgo ( const int  ex,
const int  ey 
) const
private

Definition at line 284 of file L1GctMet.cc.

284  {
285  etmiss_internal result;
286 
287  double fx = static_cast<double>(ex);
288  double fy = static_cast<double>(ey);
289  double fmag = sqrt(fx * fx + fy * fy);
290  double fphi = 36. * atan2(fy, fx) / M_PI;
291 
292  result.mag = static_cast<unsigned>(fmag);
293  if (fphi >= 0) {
294  result.phi = static_cast<unsigned>(fphi);
295  } else {
296  result.phi = static_cast<unsigned>(fphi + 72.);
297  }
298 
299  return result;
300 }

References multPhiCorr_741_25nsDY_cfi::fx, multPhiCorr_741_25nsDY_cfi::fy, M_PI, mps_fire::result, and mathSSE::sqrt().

Referenced by metVector().

◆ getAlgoType()

metAlgoType L1GctMet::getAlgoType ( ) const
inline

Definition at line 58 of file L1GctMet.h.

58 { return m_algoType; }

References m_algoType.

◆ getBitShift()

unsigned L1GctMet::getBitShift ( ) const
inline

Definition at line 63 of file L1GctMet.h.

63 { return m_bitShift; }

References m_bitShift.

◆ getExComponent()

etComponentType L1GctMet::getExComponent ( ) const
inline

Definition at line 53 of file L1GctMet.h.

53 { return m_exComponent; }

References m_exComponent.

◆ getEyComponent()

etComponentType L1GctMet::getEyComponent ( ) const
inline

Definition at line 54 of file L1GctMet.h.

54 { return m_eyComponent; }

References m_eyComponent.

◆ getHtMissLut()

const L1GctHtMissLut* L1GctMet::getHtMissLut ( ) const
inline

Definition at line 66 of file L1GctMet.h.

66 { return m_htMissLut; }

References m_htMissLut.

Referenced by L1GctGlobalEnergyAlgos::getHtMissLut().

◆ inputOverFlow()

const bool L1GctMet::inputOverFlow ( ) const
private

Private method to check for an overflow condition on the input components Allows the check to depend on the algorithm type

Definition at line 314 of file L1GctMet.cc.

314  {
316 
317  if (m_algoType == useHtMissLut) {
318  static const int maxComponentInput =
320 
321  // Emulate the (symmetric) overflow condition used in the firmware
322  result |= (m_exComponent.value() > maxComponentInput) || (m_exComponent.value() < -maxComponentInput) ||
323  (m_eyComponent.value() > maxComponentInput) || (m_eyComponent.value() < -maxComponentInput);
324  }
325 
326  return result;
327 }

References kExOrEyMissComponentShift, L1GctHtMissLut::kHxOrHyMissComponentNBits, m_algoType, m_exComponent, m_eyComponent, L1GctTwosComplement< nBits >::overFlow(), mps_fire::result, useHtMissLut, and L1GctTwosComplement< nBits >::value().

Referenced by metVector().

◆ metVector()

L1GctMet::etmiss_vec L1GctMet::metVector ( ) const

Definition at line 16 of file L1GctMet.cc.

16  {
17  etmiss_vec result;
18  etmiss_internal algoResult;
19  switch (m_algoType) {
20  case cordicTranslate:
21  algoResult = cordicTranslateAlgo(
23  break;
24 
25  case useHtMissLut:
26  algoResult = useHtMissLutAlgo(
28  break;
29 
30  case oldGct:
32  break;
33 
34  case floatingPoint:
36  break;
37 
38  default:
39  algoResult.mag = 0;
40  algoResult.phi = 0;
41  break;
42  }
43 
44  // The parameter m_bitShift allows us to discard additional LSB
45  // in order to change the output scale.
46  result.mag.setValue(algoResult.mag >> (m_bitShift));
47  result.phi.setValue(algoResult.phi);
48 
49  result.mag.setOverFlow(result.mag.overFlow() || inputOverFlow());
50 
51  return result;
52 }

References cordicTranslate, cordicTranslateAlgo(), floatingPoint, floatingPointAlgo(), inputOverFlow(), m_algoType, m_bitShift, m_exComponent, m_eyComponent, L1GctMet::etmiss_internal::mag, oldGct, oldGctAlgo(), L1GctTwosComplement< nBits >::overFlow(), L1GctMet::etmiss_internal::phi, mps_fire::result, useHtMissLut, useHtMissLutAlgo(), and L1GctTwosComplement< nBits >::value().

Referenced by L1GctGlobalEnergyAlgos::process().

◆ oldGctAlgo()

L1GctMet::etmiss_internal L1GctMet::oldGctAlgo ( const int  ex,
const int  ey 
) const
private

Definition at line 198 of file L1GctMet.cc.

198  {
199  //---------------------------------------------------------------------------------
200  //
201  // Calculates magnitude and direction of missing Et, given measured Ex and Ey.
202  //
203  // The algorithm used is suitable for implementation in hardware, using integer
204  // multiplication, addition and comparison and bit shifting operations.
205  //
206  // Proceed in two stages. The first stage gives a result that lies between
207  // 92% and 100% of the true Et, with the direction measured in 45 degree bins.
208  // The final precision depends on the number of factors used in corrFact.
209  // The present version with eleven factors gives a precision of 1% on Et, and
210  // finds the direction to the nearest 5 degrees.
211  //
212  //---------------------------------------------------------------------------------
213  etmiss_internal result;
214 
215  unsigned eneCoarse, phiCoarse;
216  unsigned eneCorect, phiCorect;
217 
218  const unsigned root2fact = 181;
219  const unsigned corrFact[11] = {24, 39, 51, 60, 69, 77, 83, 89, 95, 101, 106};
220  const unsigned corrDphi[11] = {0, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4};
221 
222  std::vector<bool> s(3);
223  unsigned Mx, My, Mw;
224 
225  unsigned Dx, Dy;
226  unsigned eFact;
227 
228  unsigned b, phibin;
229  bool midphi = false;
230 
231  // Here's the coarse calculation, with just one multiply operation
232  //
233  My = static_cast<unsigned>(abs(ey));
234  Mx = static_cast<unsigned>(abs(ex));
235  Mw = (((Mx + My) * root2fact) + 0x80) >> 8;
236 
237  s.at(0) = (ey < 0);
238  s.at(1) = (ex < 0);
239  s.at(2) = (My > Mx);
240 
241  phibin = 0;
242  b = 0;
243  for (int i = 0; i < 3; i++) {
244  if (s.at(i)) {
245  b = 1 - b;
246  }
247  phibin = 2 * phibin + b;
248  }
249 
250  eneCoarse = std::max(std::max(Mx, My), Mw);
251  phiCoarse = phibin * 9;
252 
253  // For the fine calculation we multiply both input components
254  // by all the factors in the corrFact list in order to find
255  // the required corrections to the energy and angle
256  //
257  for (eFact = 0; eFact < 10; eFact++) {
258  Dx = (Mx * corrFact[eFact]) >> 8;
259  Dy = (My * corrFact[eFact]) >> 8;
260  if ((Dx >= My) || (Dy >= Mx)) {
261  midphi = false;
262  break;
263  }
264  if ((Mx + Dx) >= (My - Dy) && (My + Dy) >= (Mx - Dx)) {
265  midphi = true;
266  break;
267  }
268  }
269  eneCorect = (eneCoarse * (128 + eFact)) >> 7;
270  if (midphi ^ (b == 1)) {
271  phiCorect = phiCoarse + 8 - corrDphi[eFact];
272  } else {
273  phiCorect = phiCoarse + corrDphi[eFact];
274  }
275 
276  // Store the result of the calculation
277  //
278  result.mag = eneCorect;
279  result.phi = phiCorect;
280 
281  return result;
282 }

References funct::abs(), b, PixelTestBeamValidation_cfi::Dx, PixelTestBeamValidation_cfi::Dy, mps_fire::i, SiStripPI::max, HLTMuonOfflineAnalyzer_cfi::phiCoarse, mps_fire::result, and alignCSCRings::s.

Referenced by metVector().

◆ setAlgoType()

void L1GctMet::setAlgoType ( const metAlgoType  algo)
inline

Definition at line 57 of file L1GctMet.h.

57 { m_algoType = algo; }

References m_algoType.

◆ setBitShift()

void L1GctMet::setBitShift ( const unsigned  nbits)
inline

Definition at line 62 of file L1GctMet.h.

62 { m_bitShift = nbits; }

References m_bitShift.

Referenced by L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos().

◆ setComponents() [1/2]

void L1GctMet::setComponents ( const etComponentType ex,
const etComponentType ey 
)
inline

Definition at line 45 of file L1GctMet.h.

45  {
46  setExComponent(ex);
47  setEyComponent(ey);
48  }

References setExComponent(), and setEyComponent().

◆ setComponents() [2/2]

void L1GctMet::setComponents ( const unsigned  ex,
const unsigned  ey 
)
inline

Definition at line 41 of file L1GctMet.h.

41  {
42  setExComponent(ex);
43  setEyComponent(ey);
44  }

References setExComponent(), and setEyComponent().

Referenced by L1GctGlobalEnergyAlgos::process().

◆ setEtComponentLsb()

void L1GctMet::setEtComponentLsb ( const double  lsb)

Definition at line 304 of file L1GctMet.cc.

304  {
305  m_htMissLut->setExEyLsb(lsb * static_cast<double>(1 << kExOrEyMissComponentShift));
306 }

References kExOrEyMissComponentShift, m_htMissLut, and L1GctHtMissLut::setExEyLsb().

Referenced by L1GctGlobalEnergyAlgos::setJetFinderParams().

◆ setEtScale()

void L1GctMet::setEtScale ( const L1CaloEtScale *const  fn)

◆ setExComponent() [1/2]

void L1GctMet::setExComponent ( const etComponentType ex)
inline

Definition at line 51 of file L1GctMet.h.

51 { m_exComponent = ex; }

References m_exComponent.

◆ setExComponent() [2/2]

void L1GctMet::setExComponent ( const unsigned  ex)

Definition at line 54 of file L1GctMet.cc.

54  {
57 }

References groupFilesInBlocks::temp.

Referenced by setComponents().

◆ setEyComponent() [1/2]

void L1GctMet::setEyComponent ( const etComponentType ey)
inline

Definition at line 52 of file L1GctMet.h.

52 { m_eyComponent = ey; }

References m_eyComponent.

◆ setEyComponent() [2/2]

void L1GctMet::setEyComponent ( const unsigned  ey)

Definition at line 59 of file L1GctMet.cc.

59  {
62 }

References groupFilesInBlocks::temp.

Referenced by setComponents().

◆ useHtMissLutAlgo()

L1GctMet::etmiss_internal L1GctMet::useHtMissLutAlgo ( const int  ex,
const int  ey,
const bool  of 
) const
private

Definition at line 158 of file L1GctMet.cc.

158  {
159  // The firmware discards the LSB of the input values, before forming
160  // the address for the LUT. We do the same here.
161  static const int maxComponent = 1 << L1GctHtMissLut::kHxOrHyMissComponentNBits;
162  static const int componentMask = maxComponent - 1;
163  static const int maxPosComponent = componentMask >> 1;
164 
165  static const int maxInput = 1 << (L1GctHtMissLut::kHxOrHyMissComponentNBits + kExOrEyMissComponentShift - 1);
166 
167  static const unsigned resultMagMask = (1 << L1GctHtMissLut::kHtMissMagnitudeNBits) - 1;
168  static const unsigned resultPhiMask = (1 << L1GctHtMissLut::kHtMissAngleNBits) - 1;
169 
170  etmiss_internal result;
171 
172  if (m_htMissLut == nullptr) {
173  result.mag = 0;
174  result.phi = 0;
175 
176  } else {
177  // Extract the bit fields of the input components to be used for the LUT address
178  int hxCompBits = (ex >> kExOrEyMissComponentShift) & componentMask;
179  int hyCompBits = (ey >> kExOrEyMissComponentShift) & componentMask;
180 
181  if (of || (abs(ex) >= maxInput) || (abs(ey) >= maxInput)) {
182  hxCompBits = maxPosComponent;
183  hyCompBits = maxPosComponent;
184  }
185 
186  // Perform the table lookup to get the missing Ht magnitude and phi
187  uint16_t lutAddress = static_cast<uint16_t>((hxCompBits << L1GctHtMissLut::kHxOrHyMissComponentNBits) | hyCompBits);
188 
189  uint16_t lutData = m_htMissLut->lutValue(lutAddress);
190 
191  result.mag = static_cast<unsigned>(lutData >> L1GctHtMissLut::kHtMissAngleNBits) & resultMagMask;
192  result.phi = static_cast<unsigned>(lutData) & resultPhiMask;
193  }
194 
195  return result;
196 }

References funct::abs(), kExOrEyMissComponentShift, L1GctHtMissLut::kHtMissAngleNBits, L1GctHtMissLut::kHtMissMagnitudeNBits, L1GctHtMissLut::kHxOrHyMissComponentNBits, L1GctLut< NAddressBits, NDataBits >::lutValue(), m_htMissLut, and mps_fire::result.

Referenced by metVector().

Member Data Documentation

◆ m_algoType

metAlgoType L1GctMet::m_algoType
private

Definition at line 89 of file L1GctMet.h.

Referenced by getAlgoType(), inputOverFlow(), metVector(), and setAlgoType().

◆ m_bitShift

unsigned short L1GctMet::m_bitShift
private

Definition at line 90 of file L1GctMet.h.

Referenced by getBitShift(), metVector(), and setBitShift().

◆ m_exComponent

etComponentType L1GctMet::m_exComponent
private

Definition at line 87 of file L1GctMet.h.

Referenced by getExComponent(), inputOverFlow(), metVector(), and setExComponent().

◆ m_eyComponent

etComponentType L1GctMet::m_eyComponent
private

Definition at line 88 of file L1GctMet.h.

Referenced by getEyComponent(), inputOverFlow(), metVector(), and setEyComponent().

◆ m_htMissLut

L1GctHtMissLut* L1GctMet::m_htMissLut
private
L1GctMet::etComponentType
L1GctWheelEnergyFpga::etComponentType etComponentType
Definition: L1GctMet.h:26
L1GctHtMissLut::componentLsb
const double componentLsb() const
Definition: L1GctHtMissLut.h:55
DDAxes::y
HLTMuonOfflineAnalyzer_cfi.phiCoarse
phiCoarse
Definition: HLTMuonOfflineAnalyzer_cfi.py:106
mps_fire.i
i
Definition: mps_fire.py:355
L1GctMet::etmiss_internal::mag
unsigned mag
Definition: L1GctMet.h:79
L1GctMet::setExComponent
void setExComponent(const unsigned ex)
Definition: L1GctMet.cc:54
L1GctMet::cordicShiftAndRoundBits
int cordicShiftAndRoundBits(const int e, const unsigned nBits) const
Definition: L1GctMet.cc:148
multPhiCorr_741_25nsDY_cfi.fx
fx
Definition: multPhiCorr_741_25nsDY_cfi.py:9
L1GctMet::m_eyComponent
etComponentType m_eyComponent
Definition: L1GctMet.h:88
L1GctTwosComplement::value
int value() const
access value as signed int
Definition: L1GctTwosComplement.h:170
DDAxes::x
PixelTestBeamValidation_cfi.Dy
Dy
Definition: PixelTestBeamValidation_cfi.py:90
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
L1GctMet::useHtMissLutAlgo
etmiss_internal useHtMissLutAlgo(const int ex, const int ey, const bool of) const
Definition: L1GctMet.cc:158
L1GctMet::m_htMissLut
L1GctHtMissLut * m_htMissLut
Definition: L1GctMet.h:92
L1GctMet::floatingPoint
Definition: L1GctMet.h:22
cmsdt::algo
algo
Definition: constants.h:164
alignCSCRings.s
s
Definition: alignCSCRings.py:92
L1GctMet::inputOverFlow
const bool inputOverFlow() const
Definition: L1GctMet.cc:314
L1GctHtMissLut::etScale
const L1CaloEtScale * etScale() const
Return the Lut functions and parameters.
Definition: L1GctHtMissLut.h:54
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
DDAxes::z
L1GctHtMissLut::kHtMissAngleNBits
Definition: L1GctHtMissLut.h:24
b
double b
Definition: hdecay.h:118
multPhiCorr_741_25nsDY_cfi.fy
fy
Definition: multPhiCorr_741_25nsDY_cfi.py:11
L1GctMet::kExOrEyMissComponentShift
Definition: L1GctMet.h:76
L1GctLut::lutValue
uint16_t lutValue(const uint16_t lutAddress) const
Access the look-up table contents for a given Address.
Definition: L1GctLut.h:102
L1GctMet::setEyComponent
void setEyComponent(const unsigned ey)
Definition: L1GctMet.cc:59
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
L1GctMet::m_bitShift
unsigned short m_bitShift
Definition: L1GctMet.h:90
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:50
L1GctMet::m_algoType
metAlgoType m_algoType
Definition: L1GctMet.h:89
L1GctHtMissLut::kHxOrHyMissComponentNBits
Definition: L1GctHtMissLut.h:24
PVValHelper::dy
Definition: PVValidationHelpers.h:49
L1GctHtMissLut::setExEyLsb
void setExEyLsb(const double lsb)
Definition: L1GctHtMissLut.h:51
alignCSCRings.r
r
Definition: alignCSCRings.py:93
L1GctMet::cordicTranslateAlgo
etmiss_internal cordicTranslateAlgo(const int ex, const int ey, const bool of) const
Definition: L1GctMet.cc:66
L1GctHtMissLut
LUT for conversion of Ht components x and y to magnitude and angle.
Definition: L1GctHtMissLut.h:20
L1GctMet::m_exComponent
etComponentType m_exComponent
Definition: L1GctMet.h:87
L1GctMet::cordicTranslate
Definition: L1GctMet.h:22
L1GctTwosComplement::overFlow
bool overFlow() const
access overflow
Definition: L1GctTwosComplement.h:62
L1GctMet::useHtMissLut
Definition: L1GctMet.h:22
personalPlayback.fn
fn
Definition: personalPlayback.py:515
L1GctHtMissLut::kHtMissMagnitudeNBits
Definition: L1GctHtMissLut.h:24
L1GctHtMissLut::setEtScale
void setEtScale(const L1CaloEtScale *const fn)
Set the functions.
Definition: L1GctHtMissLut.h:45
mps_fire.result
result
Definition: mps_fire.py:303
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
L1GctMet::oldGctAlgo
etmiss_internal oldGctAlgo(const int ex, const int ey) const
Definition: L1GctMet.cc:198
L1GctMet::oldGct
Definition: L1GctMet.h:22
PVValHelper::dx
Definition: PVValidationHelpers.h:48
L1GctMet::floatingPointAlgo
etmiss_internal floatingPointAlgo(const int ex, const int ey) const
Definition: L1GctMet.cc:284
PixelTestBeamValidation_cfi.Dx
Dx
Definition: PixelTestBeamValidation_cfi.py:84
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37