CMS 3D CMS Logo

L1MuGMTScales Class Reference

Description: Class that creates all scales used inside the GMT. More...

#include <CondFormats/L1TObjects/interface/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.

00036 {}

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.

00075                   {
00076     
00077     // used as a Singleton, the constructor is run when the GMT is first used.
00078     //
00079    
00080 
00081 /*     const float reducedetabins[4][9] = { */
00082 /*       { 0.00, 0.22, 0.27, 0.58, 0.77, 0.87, 0.92, 1.24, 1.3 }, // DT */
00083 /*       { 0.00, 0.06, 0.25, 0.41, 0.54, 0.70, 0.83, 0.93, 1.04}, // bRPC */
00084 /*       { 0.9,  1.06, 1.26, 1.46, 1.66, 1.86, 2.06, 2.26, 2.5 }, // CSC */
00085 /*       { 1.04, 1.24, 1.36, 1.48, 1.61, 1.73, 1.85, 1.97, 2.10}  // fRPC */
00086 /*     }; */
00087     
00088 /*     for (int i=0; i<4; i++)  */
00089 /*       m_ReducedEtaScale[i] = L1MuSymmetricBinnedScale(4, 8, reducedetabins[i]); */
00090 
00091      m_ReducedEtaScale[0] = L1MuSymmetricBinnedScale( nbitPackingReducedEta,
00092                                                       nbinsReducedEta,
00093                                                       scaleReducedEtaDT ) ;
00094      m_ReducedEtaScale[1] = L1MuSymmetricBinnedScale( nbitPackingReducedEta,
00095                                                       nbinsReducedEta,
00096                                                       scaleReducedEtaBrlRPC ) ;
00097      m_ReducedEtaScale[2] = L1MuSymmetricBinnedScale( nbitPackingReducedEta,
00098                                                       nbinsReducedEta,
00099                                                       scaleReducedEtaCSC ) ;
00100      m_ReducedEtaScale[3] = L1MuSymmetricBinnedScale( nbitPackingReducedEta,
00101                                                       nbinsReducedEta,
00102                                                       scaleReducedEtaFwdRPC ) ;
00103   
00104     //
00105     // Scales used in Matching Units
00106     //
00107 /*     float deta_unit = 0.04; */
00108 /*     float deta_min = -7.5 * deta_unit; */
00109 /*     float deta_max = 7.5 * deta_unit; */
00110 /*     m_DeltaEtaScale[0] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // DT-RPC */
00111 /*     m_DeltaEtaScale[1] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // CSC-RPC */
00112 /*     m_DeltaEtaScale[2] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // DT-CSC */
00113 /*     m_DeltaEtaScale[3] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // CSC-DT */
00114 /*     m_DeltaEtaScale[4] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // CSC-bRPC */
00115 /*     m_DeltaEtaScale[5] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // DT-fRPC */
00116 
00117     for( int i = 0 ; i < 6 ; ++i )
00118       m_DeltaEtaScale[i] = L1MuBinnedScale( nbitPackingDeltaEta,
00119                                             signedPackingDeltaEta,
00120                                             nbinsDeltaEta,
00121                                             minDeltaEta,
00122                                             maxDeltaEta,
00123                                             offsetDeltaEta ) ;
00124 
00125     // delta phi scale
00126     // m_DeltaPhiScale = L1MuBinnedScale (3, true, 8, -11.25 * M_PI/180., 8.75 * M_PI/180.0, 4); 
00127     m_DeltaPhiScale = L1MuBinnedScale( nbitPackingDeltaPhi,
00128                                        signedPackingDeltaPhi,
00129                                        nbinsDeltaPhi,
00130                                        minDeltaPhi,
00131                                        maxDeltaPhi,
00132                                        offsetDeltaPhi ) ;
00133 
00134     //
00135     // reduced eta scale for matching in the overlap region
00136     //
00137     // reserve highest code for Out Of Range
00138     // 
00139 /*     const float RpcOvlEtaBins[8] = { */
00140 /*       0.72,  0.83,  0.93,  1.04,  1.14,  1.24,  1.36, 1.48 };   */
00141 
00142 /*     m_OvlEtaScale[0] = L1MuSymmetricBinnedScale (4, 7, 1.3 * 18./32. , 1.3); // DT */
00143 /*     // FIXME **** dt scale: two original bins in one new bin */
00144 /*     // one-to-one mapping should be possible with new eta scale */
00145 
00146 /*     m_OvlEtaScale[1] = L1MuSymmetricBinnedScale (4, 7, RpcOvlEtaBins) ; // bRPC */
00147 /*     m_OvlEtaScale[2] = L1MuSymmetricBinnedScale (4, 7, 0.9, 1.25);    // CSC */
00148 /*     m_OvlEtaScale[3] = L1MuSymmetricBinnedScale (4, 7, RpcOvlEtaBins) ; // fRPC */
00149 
00150     m_OvlEtaScale[0] = L1MuSymmetricBinnedScale (nbitPackingOvlEtaDT,
00151                                                  nbinsOvlEtaDT,
00152                                                  minOvlEtaDT,
00153                                                  maxOvlEtaDT); // DT
00154     // FIXME **** dt scale: two original bins in one new bin
00155     // one-to-one mapping should be possible with new eta scale
00156 
00157     m_OvlEtaScale[1] = L1MuSymmetricBinnedScale (nbitPackingOvlEtaBrlRPC,
00158                                                  nbinsOvlEtaBrlRPC,
00159                                                  scaleOvlEtaRPC) ; // bRPC
00160     m_OvlEtaScale[2] = L1MuSymmetricBinnedScale (nbitPackingOvlEtaCSC,
00161                                                  nbinsOvlEtaCSC,
00162                                                  minOvlEtaCSC,
00163                                                  maxOvlEtaCSC);    // CSC
00164     m_OvlEtaScale[3] = L1MuSymmetricBinnedScale (nbitPackingOvlEtaFwdRPC,
00165                                                  nbinsOvlEtaFwdRPC,
00166                                                  scaleOvlEtaRPC) ; // fRPC
00167 
00168     //
00169 /*     float caloEtaBounds[15] = {  */
00170 /*       -3.000, -2.172, -1.740, -1.392, -1.044, -0.696, -0.348, 0., */
00171 /*       0.348,  0.696, 1.044,  1.392,  1.740,  2.172,  3.000 }; */
00172 
00173 /*     std::vector<double> caloEtaBounds ; */
00174 /*     caloEtaBounds.push_back(-3.000) ; */
00175 /*     caloEtaBounds.push_back(-2.172) ; */
00176 /*     caloEtaBounds.push_back(-1.740) ; */
00177 /*     caloEtaBounds.push_back(-1.392) ; */
00178 /*     caloEtaBounds.push_back(-1.044) ; */
00179 /*     caloEtaBounds.push_back(-0.696) ; */
00180 /*     caloEtaBounds.push_back(-0.348) ; */
00181 /*     caloEtaBounds.push_back(0.) ; */
00182 /*     caloEtaBounds.push_back(0.348) ; */
00183 /*     caloEtaBounds.push_back(0.696) ; */
00184 /*     caloEtaBounds.push_back(1.044) ; */
00185 /*     caloEtaBounds.push_back(1.392) ; */
00186 /*     caloEtaBounds.push_back(1.740) ; */
00187 /*     caloEtaBounds.push_back(2.172) ; */
00188 /*     caloEtaBounds.push_back(3.000) ; */
00189 
00190 /*     m_CaloEtaScale =  L1MuBinnedScale (4, false, 14, caloEtaBounds); */
00191   };

virtual L1MuGMTScales::~L1MuGMTScales (  )  [inline, virtual]

destructor

Definition at line 194 of file L1MuGMTScales.h.

00194                            {
00195 //     for (int i=0; i<4; i++) {
00196 //       delete m_ReducedEtaScale[i];
00197 //       delete m_OvlEtaScale[i];
00198 //     }
00199 //     for (int i=0; i<6; i++) {
00200 //       delete m_DeltaEtaScale[i];
00201 //     }
00202 
00203 //     delete m_DeltaPhiScale;
00204 //     delete m_CaloEtaScale;
00205   };


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().

00214                                                    { 
00215     if (idx<0 || idx>5) edm::LogWarning("GMTScaleRangeViolation") << "Error in L1MuGMTScales:: isys out of range: " << idx; 
00216     return &( m_DeltaEtaScale[idx] ); 
00217   };

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().

00220 {     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().

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

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().

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


Member Data Documentation

L1MuBinnedScale L1MuGMTScales::m_DeltaEtaScale[6] [private]

Definition at line 235 of file L1MuGMTScales.h.

Referenced by getDeltaEtaScale(), and L1MuGMTScales().

L1MuBinnedScale L1MuGMTScales::m_DeltaPhiScale [private]

Definition at line 236 of file L1MuGMTScales.h.

Referenced by getDeltaPhiScale(), and L1MuGMTScales().

L1MuSymmetricBinnedScale L1MuGMTScales::m_OvlEtaScale[4] [private]

Definition at line 237 of file L1MuGMTScales.h.

Referenced by getOvlEtaScale(), and L1MuGMTScales().

L1MuSymmetricBinnedScale L1MuGMTScales::m_ReducedEtaScale[4] [private]

Definition at line 226 of file L1MuGMTScales.h.

Referenced by getReducedEtaScale(), and L1MuGMTScales().


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:26:56 2009 for CMSSW by  doxygen 1.5.4