CMS 3D CMS Logo

Public Member Functions | Private Attributes

L1MuGMTScales Class Reference

#include <L1MuGMTScales.h>

List of all members.

Public Member Functions

const L1MuScalegetDeltaEtaScale (int idx) const
 get the delta eta scale; idx = 0(DT=RPC), 1(CSC-RPC), 2(DT-CSC), 3(CSC-DT), 4(bRPC-CSC), 5(fRPC-DT)
const L1MuScalegetDeltaPhiScale () const
 get the delta phi scale ( 3 bits)
const L1MuScalegetOvlEtaScale (int isys) const
 get the overlap eta scale (4 bits); isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC)
const L1MuScalegetReducedEtaScale (int isys) const
 get the recuced eta scale for matching in the overlap region (4 bit); isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC)
 L1MuGMTScales (int nbitPackingReducedEta, int nbinsReducedEta, const std::vector< double > &scaleReducedEtaDT, const std::vector< double > &scaleReducedEtaBrlRPC, const std::vector< double > &scaleReducedEtaCSC, const std::vector< double > &scaleReducedEtaFwdRPC, int nbitPackingDeltaEta, bool signedPackingDeltaEta, int nbinsDeltaEta, float minDeltaEta, float maxDeltaEta, int offsetDeltaEta, int nbitPackingDeltaPhi, bool signedPackingDeltaPhi, int nbinsDeltaPhi, float minDeltaPhi, float maxDeltaPhi, int offsetDeltaPhi, int nbitPackingOvlEtaDT, int nbinsOvlEtaDT, float minOvlEtaDT, float maxOvlEtaDT, int nbitPackingOvlEtaCSC, int nbinsOvlEtaCSC, float minOvlEtaCSC, float maxOvlEtaCSC, const std::vector< double > &scaleOvlEtaRPC, int nbitPackingOvlEtaBrlRPC, int nbinsOvlEtaBrlRPC, int nbitPackingOvlEtaFwdRPC, int nbinsOvlEtaFwdRPC)
 L1MuGMTScales ()
 constructor
virtual ~L1MuGMTScales ()
 destructor

Private Attributes

L1MuBinnedScale m_DeltaEtaScale [6]
L1MuBinnedScale m_DeltaPhiScale
L1MuSymmetricBinnedScale m_OvlEtaScale [4]
L1MuSymmetricBinnedScale m_ReducedEtaScale [4]

Detailed Description

Description: Class that creates all scales used inside the GMT

An automatic check is done for the calo eta scales.

Definition at line 32 of file L1MuGMTScales.h.


Constructor & Destructor Documentation

L1MuGMTScales::L1MuGMTScales ( ) [inline]

constructor

Definition at line 36 of file L1MuGMTScales.h.

{}
L1MuGMTScales::L1MuGMTScales ( int  nbitPackingReducedEta,
int  nbinsReducedEta,
const std::vector< double > &  scaleReducedEtaDT,
const std::vector< double > &  scaleReducedEtaBrlRPC,
const std::vector< double > &  scaleReducedEtaCSC,
const std::vector< double > &  scaleReducedEtaFwdRPC,
int  nbitPackingDeltaEta,
bool  signedPackingDeltaEta,
int  nbinsDeltaEta,
float  minDeltaEta,
float  maxDeltaEta,
int  offsetDeltaEta,
int  nbitPackingDeltaPhi,
bool  signedPackingDeltaPhi,
int  nbinsDeltaPhi,
float  minDeltaPhi,
float  maxDeltaPhi,
int  offsetDeltaPhi,
int  nbitPackingOvlEtaDT,
int  nbinsOvlEtaDT,
float  minOvlEtaDT,
float  maxOvlEtaDT,
int  nbitPackingOvlEtaCSC,
int  nbinsOvlEtaCSC,
float  minOvlEtaCSC,
float  maxOvlEtaCSC,
const std::vector< double > &  scaleOvlEtaRPC,
int  nbitPackingOvlEtaBrlRPC,
int  nbinsOvlEtaBrlRPC,
int  nbitPackingOvlEtaFwdRPC,
int  nbinsOvlEtaFwdRPC 
) [inline]

Definition at line 38 of file L1MuGMTScales.h.

References i, m_DeltaEtaScale, m_DeltaPhiScale, m_OvlEtaScale, and m_ReducedEtaScale.

                  {
    
    // used as a Singleton, the constructor is run when the GMT is first used.
    //
   

/*     const float reducedetabins[4][9] = { */
/*       { 0.00, 0.22, 0.27, 0.58, 0.77, 0.87, 0.92, 1.24, 1.3 }, // DT */
/*       { 0.00, 0.06, 0.25, 0.41, 0.54, 0.70, 0.83, 0.93, 1.04}, // bRPC */
/*       { 0.9,  1.06, 1.26, 1.46, 1.66, 1.86, 2.06, 2.26, 2.5 }, // CSC */
/*       { 1.04, 1.24, 1.36, 1.48, 1.61, 1.73, 1.85, 1.97, 2.10}  // fRPC */
/*     }; */
    
/*     for (int i=0; i<4; i++)  */
/*       m_ReducedEtaScale[i] = L1MuSymmetricBinnedScale(4, 8, reducedetabins[i]); */

     m_ReducedEtaScale[0] = L1MuSymmetricBinnedScale( nbitPackingReducedEta,
                                                      nbinsReducedEta,
                                                      scaleReducedEtaDT ) ;
     m_ReducedEtaScale[1] = L1MuSymmetricBinnedScale( nbitPackingReducedEta,
                                                      nbinsReducedEta,
                                                      scaleReducedEtaBrlRPC ) ;
     m_ReducedEtaScale[2] = L1MuSymmetricBinnedScale( nbitPackingReducedEta,
                                                      nbinsReducedEta,
                                                      scaleReducedEtaCSC ) ;
     m_ReducedEtaScale[3] = L1MuSymmetricBinnedScale( nbitPackingReducedEta,
                                                      nbinsReducedEta,
                                                      scaleReducedEtaFwdRPC ) ;
  
    //
    // Scales used in Matching Units
    //
/*     float deta_unit = 0.04; */
/*     float deta_min = -7.5 * deta_unit; */
/*     float deta_max = 7.5 * deta_unit; */
/*     m_DeltaEtaScale[0] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // DT-RPC */
/*     m_DeltaEtaScale[1] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // CSC-RPC */
/*     m_DeltaEtaScale[2] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // DT-CSC */
/*     m_DeltaEtaScale[3] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // CSC-DT */
/*     m_DeltaEtaScale[4] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // CSC-bRPC */
/*     m_DeltaEtaScale[5] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // DT-fRPC */

    for( int i = 0 ; i < 6 ; ++i )
      m_DeltaEtaScale[i] = L1MuBinnedScale( nbitPackingDeltaEta,
                                            signedPackingDeltaEta,
                                            nbinsDeltaEta,
                                            minDeltaEta,
                                            maxDeltaEta,
                                            offsetDeltaEta ) ;

    // delta phi scale
    // m_DeltaPhiScale = L1MuBinnedScale (3, true, 8, -11.25 * M_PI/180., 8.75 * M_PI/180.0, 4); 
    m_DeltaPhiScale = L1MuBinnedScale( nbitPackingDeltaPhi,
                                       signedPackingDeltaPhi,
                                       nbinsDeltaPhi,
                                       minDeltaPhi,
                                       maxDeltaPhi,
                                       offsetDeltaPhi ) ;

    //
    // reduced eta scale for matching in the overlap region
    //
    // reserve highest code for Out Of Range
    // 
/*     const float RpcOvlEtaBins[8] = { */
/*       0.72,  0.83,  0.93,  1.04,  1.14,  1.24,  1.36, 1.48 };   */

/*     m_OvlEtaScale[0] = L1MuSymmetricBinnedScale (4, 7, 1.3 * 18./32. , 1.3); // DT */
/*     // FIXME **** dt scale: two original bins in one new bin */
/*     // one-to-one mapping should be possible with new eta scale */

/*     m_OvlEtaScale[1] = L1MuSymmetricBinnedScale (4, 7, RpcOvlEtaBins) ; // bRPC */
/*     m_OvlEtaScale[2] = L1MuSymmetricBinnedScale (4, 7, 0.9, 1.25);    // CSC */
/*     m_OvlEtaScale[3] = L1MuSymmetricBinnedScale (4, 7, RpcOvlEtaBins) ; // fRPC */

    m_OvlEtaScale[0] = L1MuSymmetricBinnedScale (nbitPackingOvlEtaDT,
                                                 nbinsOvlEtaDT,
                                                 minOvlEtaDT,
                                                 maxOvlEtaDT); // DT
    // FIXME **** dt scale: two original bins in one new bin
    // one-to-one mapping should be possible with new eta scale

    m_OvlEtaScale[1] = L1MuSymmetricBinnedScale (nbitPackingOvlEtaBrlRPC,
                                                 nbinsOvlEtaBrlRPC,
                                                 scaleOvlEtaRPC) ; // bRPC
    m_OvlEtaScale[2] = L1MuSymmetricBinnedScale (nbitPackingOvlEtaCSC,
                                                 nbinsOvlEtaCSC,
                                                 minOvlEtaCSC,
                                                 maxOvlEtaCSC);    // CSC
    m_OvlEtaScale[3] = L1MuSymmetricBinnedScale (nbitPackingOvlEtaFwdRPC,
                                                 nbinsOvlEtaFwdRPC,
                                                 scaleOvlEtaRPC) ; // fRPC

    //
/*     float caloEtaBounds[15] = {  */
/*       -3.000, -2.172, -1.740, -1.392, -1.044, -0.696, -0.348, 0., */
/*       0.348,  0.696, 1.044,  1.392,  1.740,  2.172,  3.000 }; */

/*     std::vector<double> caloEtaBounds ; */
/*     caloEtaBounds.push_back(-3.000) ; */
/*     caloEtaBounds.push_back(-2.172) ; */
/*     caloEtaBounds.push_back(-1.740) ; */
/*     caloEtaBounds.push_back(-1.392) ; */
/*     caloEtaBounds.push_back(-1.044) ; */
/*     caloEtaBounds.push_back(-0.696) ; */
/*     caloEtaBounds.push_back(-0.348) ; */
/*     caloEtaBounds.push_back(0.) ; */
/*     caloEtaBounds.push_back(0.348) ; */
/*     caloEtaBounds.push_back(0.696) ; */
/*     caloEtaBounds.push_back(1.044) ; */
/*     caloEtaBounds.push_back(1.392) ; */
/*     caloEtaBounds.push_back(1.740) ; */
/*     caloEtaBounds.push_back(2.172) ; */
/*     caloEtaBounds.push_back(3.000) ; */

/*     m_CaloEtaScale =  L1MuBinnedScale (4, false, 14, caloEtaBounds); */
  };
virtual L1MuGMTScales::~L1MuGMTScales ( ) [inline, virtual]

destructor

Definition at line 194 of file L1MuGMTScales.h.

                           {
//     for (int i=0; i<4; i++) {
//       delete m_ReducedEtaScale[i];
//       delete m_OvlEtaScale[i];
//     }
//     for (int i=0; i<6; i++) {
//       delete m_DeltaEtaScale[i];
//     }

//     delete m_DeltaPhiScale;
//     delete m_CaloEtaScale;
  };

Member Function Documentation

const L1MuScale* L1MuGMTScales::getDeltaEtaScale ( int  idx) const [inline]

get the delta eta scale; idx = 0(DT=RPC), 1(CSC-RPC), 2(DT-CSC), 3(CSC-DT), 4(bRPC-CSC), 5(fRPC-DT)

Definition at line 214 of file L1MuGMTScales.h.

References m_DeltaEtaScale.

Referenced by L1MuGMTLFDeltaEtaLUT::TheLookupFunction(), L1MuGMTLFMatchQualLUT::TheLookupFunction(), and L1MuGMTLFCOUDeltaEtaLUT::TheLookupFunction().

                                                   { 
    if (idx<0 || idx>5) edm::LogWarning("GMTScaleRangeViolation") << "Error in L1MuGMTScales:: isys out of range: " << idx; 
    return &( m_DeltaEtaScale[idx] ); 
  };
const L1MuScale* L1MuGMTScales::getDeltaPhiScale ( ) const [inline]

get the delta phi scale ( 3 bits)

Definition at line 220 of file L1MuGMTScales.h.

References m_DeltaPhiScale.

Referenced by L1MuGMTLFMatchQualLUT::TheLookupFunction().

{     return &m_DeltaPhiScale;   };
const L1MuScale* L1MuGMTScales::getOvlEtaScale ( int  isys) const [inline]

get the overlap eta scale (4 bits); isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC)

Definition at line 223 of file L1MuGMTScales.h.

References m_OvlEtaScale.

Referenced by L1MuGMTLFOvlEtaConvLUT::TheLookupFunction(), and L1MuGMTLFCOUDeltaEtaLUT::TheLookupFunction().

                                                  { 
    if (isys<0 || isys>3) edm::LogWarning("GMTScaleRangeViolation") << "Error in L1MuGMTScales:: isys out of range: " << isys; 
    return &( m_OvlEtaScale[isys] ); 
  };
const L1MuScale* L1MuGMTScales::getReducedEtaScale ( int  isys) const [inline]

get the recuced eta scale for matching in the overlap region (4 bit); isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC)

Definition at line 208 of file L1MuGMTScales.h.

References m_ReducedEtaScale.

Referenced by L1MuGMTLFPhiProEtaConvLUT::TheLookupFunction(), and L1MuGMTMIAUEtaConvLUT::TheLookupFunction().

                                                      { 
    if (isys<0 || isys>3) edm::LogWarning("GMTScaleRangeViolation") << "Error in L1MuGMTScales:: isys out of range: " << isys; 
    return &( m_ReducedEtaScale[isys] ); 
  };

Member Data Documentation

Definition at line 235 of file L1MuGMTScales.h.

Referenced by getDeltaEtaScale(), and L1MuGMTScales().

Definition at line 236 of file L1MuGMTScales.h.

Referenced by getDeltaPhiScale(), and L1MuGMTScales().

Definition at line 237 of file L1MuGMTScales.h.

Referenced by getOvlEtaScale(), and L1MuGMTScales().

Definition at line 226 of file L1MuGMTScales.h.

Referenced by getReducedEtaScale(), and L1MuGMTScales().