CMS 3D CMS Logo

Public Member Functions | Static Public Member Functions | Static Private Member Functions | Static Private Attributes

L1MuGMTEtaLUT Class Reference

#include <L1MuGMTEtaLUT.h>

List of all members.

Public Member Functions

 L1MuGMTEtaLUT ()
 constructor
virtual ~L1MuGMTEtaLUT ()
 destructor

Static Public Member Functions

static float eta (int isys, int isISO, int icharge, float eta, float pt)
 look up delta-eta

Static Private Member Functions

static int etabin (float eta, int isys)

Static Private Attributes

static const int bRPC = 2
static const int CSC = 1
static const int DT = 0
static float etabins [NSYS][NETA+1]
static float fitparams_eta [NRP][NSYS][NETA][3]
static const int fRPC = 3
static const unsigned int NETA = 8
static const unsigned int NRP = 2
static const int NSYS = 4

Detailed Description

Description: Look-up table for GMT Eta projection unit

Caluclates float delta-eta from charge, eta and pT

Simple static implementation with parametrization for CMS121 geometry

Definition at line 47 of file L1MuGMTEtaLUT.h.


Constructor & Destructor Documentation

L1MuGMTEtaLUT::L1MuGMTEtaLUT ( )

constructor

Definition at line 46 of file L1MuGMTEtaLUT.cc.

                             {
}
L1MuGMTEtaLUT::~L1MuGMTEtaLUT ( ) [virtual]

destructor

Definition at line 52 of file L1MuGMTEtaLUT.cc.

                              { 
  
}

Member Function Documentation

float L1MuGMTEtaLUT::eta ( int  isys,
int  isISO,
int  icharge,
float  eta,
float  pt 
) [static]

look up delta-eta

Definition at line 72 of file L1MuGMTEtaLUT.cc.

References a, b, bRPC, trackerHits::c, CSC, DT, etabin(), fitparams_eta, and fRPC.

                                                                              {

  int ieta = etabin ( (float) fabs(eta), isys );
  
  if ( (isys==DT || isys==bRPC) && pt < 4.) pt = 4.; // cut off
  if ( (isys==CSC || isys==fRPC) && pt < 3.) pt = 3.;

  float a=fitparams_eta[isISO][isys][ieta][0];
  float b=fitparams_eta[isISO][isys][ieta][1];
  float c=fitparams_eta[isISO][isys][ieta][2];

  float deta = a + b / pt + c / (pt*pt);
  
  float neweta;
  if (eta>0) neweta = eta - deta;
  else neweta = eta + deta;

  return neweta;
 }
int L1MuGMTEtaLUT::etabin ( float  eta,
int  isys 
) [static, private]

Definition at line 60 of file L1MuGMTEtaLUT.cc.

References etabins, i, and NETA.

Referenced by eta().

                                             {
  int i;
  for (i=0; i<(int)NETA;i++)
    if (eta >= etabins[isys][i] && eta < etabins[isys][i+1]) break;
  if (i>=(int)NETA) edm::LogWarning("LUTProblem") << "L1MuGMTEtaLUT::etabin(): could not assign eta bin ";
  return i;
}

Member Data Documentation

const int L1MuGMTEtaLUT::bRPC = 2 [static, private]

Definition at line 67 of file L1MuGMTEtaLUT.h.

Referenced by eta().

const int L1MuGMTEtaLUT::CSC = 1 [static, private]

Definition at line 66 of file L1MuGMTEtaLUT.h.

Referenced by eta().

const int L1MuGMTEtaLUT::DT = 0 [static, private]

Definition at line 65 of file L1MuGMTEtaLUT.h.

Referenced by eta().

float L1MuGMTEtaLUT::etabins [static, private]
Initial value:
 {
  { 0.00, 0.22, 0.27, 0.58, 0.77, 0.87, 0.92, 1.24, 1.35  }, 
  { 0.00, 1.06, 1.26, 1.46, 1.66, 1.86, 2.06, 2.26, 2.46 }, 
  { 0.00, 0.06, 0.25, 0.41, 0.54, 0.70, 0.83, 0.93, 2.10  }, 
  { 0.00  , 1.24, 1.36, 1.48, 1.61, 1.73, 1.85, 1.97, 2.10}   
}

Definition at line 77 of file L1MuGMTEtaLUT.h.

Referenced by etabin().

float L1MuGMTEtaLUT::fitparams_eta [static, private]

Definition at line 78 of file L1MuGMTEtaLUT.h.

Referenced by eta().

const int L1MuGMTEtaLUT::fRPC = 3 [static, private]

Definition at line 68 of file L1MuGMTEtaLUT.h.

Referenced by eta().

const unsigned int L1MuGMTEtaLUT::NETA = 8 [static, private]

Definition at line 72 of file L1MuGMTEtaLUT.h.

Referenced by etabin().

const unsigned int L1MuGMTEtaLUT::NRP = 2 [static, private]

Definition at line 75 of file L1MuGMTEtaLUT.h.

const int L1MuGMTEtaLUT::NSYS = 4 [static, private]

Definition at line 64 of file L1MuGMTEtaLUT.h.