CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes | Friends
L1MuGMTScales Class Reference

#include <L1MuGMTScales.h>

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) More...
 
const L1MuScalegetDeltaPhiScale () const
 get the delta phi scale ( 3 bits) More...
 
const L1MuScalegetOvlEtaScale (int isys) const
 get the overlap eta scale (4 bits); isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC) More...
 
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) More...
 
 L1MuGMTScales ()
 constructor More...
 
 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)
 
virtual ~L1MuGMTScales ()
 destructor More...
 

Private Member Functions

template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Attributes

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

Friends

class boost::serialization::access
 
template<typename CondSerializationT , typename Enabled >
struct cond::serialization::access
 

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 34 of file L1MuGMTScales.h.

Constructor & Destructor Documentation

L1MuGMTScales::L1MuGMTScales ( )
inline

constructor

Definition at line 37 of file L1MuGMTScales.h.

37 {}
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 39 of file L1MuGMTScales.h.

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

76  {
77  // used as a Singleton, the constructor is run when the GMT is first used.
78  //
79 
80  /* const float reducedetabins[4][9] = { */
81  /* { 0.00, 0.22, 0.27, 0.58, 0.77, 0.87, 0.92, 1.24, 1.3 }, // DT */
82  /* { 0.00, 0.06, 0.25, 0.41, 0.54, 0.70, 0.83, 0.93, 1.04}, // bRPC */
83  /* { 0.9, 1.06, 1.26, 1.46, 1.66, 1.86, 2.06, 2.26, 2.5 }, // CSC */
84  /* { 1.04, 1.24, 1.36, 1.48, 1.61, 1.73, 1.85, 1.97, 2.10} // fRPC */
85  /* }; */
86 
87  /* for (int i=0; i<4; i++) */
88  /* m_ReducedEtaScale[i] = L1MuSymmetricBinnedScale(4, 8, reducedetabins[i]); */
89 
90  m_ReducedEtaScale[0] = L1MuSymmetricBinnedScale(nbitPackingReducedEta, nbinsReducedEta, scaleReducedEtaDT);
91  m_ReducedEtaScale[1] = L1MuSymmetricBinnedScale(nbitPackingReducedEta, nbinsReducedEta, scaleReducedEtaBrlRPC);
92  m_ReducedEtaScale[2] = L1MuSymmetricBinnedScale(nbitPackingReducedEta, nbinsReducedEta, scaleReducedEtaCSC);
93  m_ReducedEtaScale[3] = L1MuSymmetricBinnedScale(nbitPackingReducedEta, nbinsReducedEta, scaleReducedEtaFwdRPC);
94 
95  //
96  // Scales used in Matching Units
97  //
98  /* float deta_unit = 0.04; */
99  /* float deta_min = -7.5 * deta_unit; */
100  /* float deta_max = 7.5 * deta_unit; */
101  /* m_DeltaEtaScale[0] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // DT-RPC */
102  /* m_DeltaEtaScale[1] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // CSC-RPC */
103  /* m_DeltaEtaScale[2] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // DT-CSC */
104  /* m_DeltaEtaScale[3] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // CSC-DT */
105  /* m_DeltaEtaScale[4] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // CSC-bRPC */
106  /* m_DeltaEtaScale[5] = L1MuBinnedScale (4, true, 15, deta_min, deta_max, 7); // DT-fRPC */
107 
108  for (int i = 0; i < 6; ++i)
110  nbitPackingDeltaEta, signedPackingDeltaEta, nbinsDeltaEta, minDeltaEta, maxDeltaEta, offsetDeltaEta);
111 
112  // delta phi scale
113  // m_DeltaPhiScale = L1MuBinnedScale (3, true, 8, -11.25 * M_PI/180., 8.75 * M_PI/180.0, 4);
115  nbitPackingDeltaPhi, signedPackingDeltaPhi, nbinsDeltaPhi, minDeltaPhi, maxDeltaPhi, offsetDeltaPhi);
116 
117  //
118  // reduced eta scale for matching in the overlap region
119  //
120  // reserve highest code for Out Of Range
121  //
122  /* const float RpcOvlEtaBins[8] = { */
123  /* 0.72, 0.83, 0.93, 1.04, 1.14, 1.24, 1.36, 1.48 }; */
124 
125  /* m_OvlEtaScale[0] = L1MuSymmetricBinnedScale (4, 7, 1.3 * 18./32. , 1.3); // DT */
126  /* // FIXME **** dt scale: two original bins in one new bin */
127  /* // one-to-one mapping should be possible with new eta scale */
128 
129  /* m_OvlEtaScale[1] = L1MuSymmetricBinnedScale (4, 7, RpcOvlEtaBins) ; // bRPC */
130  /* m_OvlEtaScale[2] = L1MuSymmetricBinnedScale (4, 7, 0.9, 1.25); // CSC */
131  /* m_OvlEtaScale[3] = L1MuSymmetricBinnedScale (4, 7, RpcOvlEtaBins) ; // fRPC */
132 
133  m_OvlEtaScale[0] = L1MuSymmetricBinnedScale(nbitPackingOvlEtaDT, nbinsOvlEtaDT, minOvlEtaDT,
134  maxOvlEtaDT); // DT
135  // FIXME **** dt scale: two original bins in one new bin
136  // one-to-one mapping should be possible with new eta scale
137 
138  m_OvlEtaScale[1] = L1MuSymmetricBinnedScale(nbitPackingOvlEtaBrlRPC, nbinsOvlEtaBrlRPC,
139  scaleOvlEtaRPC); // bRPC
140  m_OvlEtaScale[2] = L1MuSymmetricBinnedScale(nbitPackingOvlEtaCSC,
141  nbinsOvlEtaCSC,
142  minOvlEtaCSC,
143  maxOvlEtaCSC); // CSC
144  m_OvlEtaScale[3] = L1MuSymmetricBinnedScale(nbitPackingOvlEtaFwdRPC, nbinsOvlEtaFwdRPC,
145  scaleOvlEtaRPC); // fRPC
146 
147  //
148  /* float caloEtaBounds[15] = { */
149  /* -3.000, -2.172, -1.740, -1.392, -1.044, -0.696, -0.348, 0., */
150  /* 0.348, 0.696, 1.044, 1.392, 1.740, 2.172, 3.000 }; */
151 
152  /* std::vector<double> caloEtaBounds ; */
153  /* caloEtaBounds.push_back(-3.000) ; */
154  /* caloEtaBounds.push_back(-2.172) ; */
155  /* caloEtaBounds.push_back(-1.740) ; */
156  /* caloEtaBounds.push_back(-1.392) ; */
157  /* caloEtaBounds.push_back(-1.044) ; */
158  /* caloEtaBounds.push_back(-0.696) ; */
159  /* caloEtaBounds.push_back(-0.348) ; */
160  /* caloEtaBounds.push_back(0.) ; */
161  /* caloEtaBounds.push_back(0.348) ; */
162  /* caloEtaBounds.push_back(0.696) ; */
163  /* caloEtaBounds.push_back(1.044) ; */
164  /* caloEtaBounds.push_back(1.392) ; */
165  /* caloEtaBounds.push_back(1.740) ; */
166  /* caloEtaBounds.push_back(2.172) ; */
167  /* caloEtaBounds.push_back(3.000) ; */
168 
169  /* m_CaloEtaScale = L1MuBinnedScale (4, false, 14, caloEtaBounds); */
170  };
L1MuSymmetricBinnedScale m_ReducedEtaScale[4]
L1MuSymmetricBinnedScale m_OvlEtaScale[4]
L1MuBinnedScale m_DeltaEtaScale[6]
L1MuBinnedScale m_DeltaPhiScale
virtual L1MuGMTScales::~L1MuGMTScales ( )
inlinevirtual

destructor

Definition at line 173 of file L1MuGMTScales.h.

173  {
174  // for (int i=0; i<4; i++) {
175  // delete m_ReducedEtaScale[i];
176  // delete m_OvlEtaScale[i];
177  // }
178  // for (int i=0; i<6; i++) {
179  // delete m_DeltaEtaScale[i];
180  // }
181 
182  // delete m_DeltaPhiScale;
183  // delete m_CaloEtaScale;
184  };

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 194 of file L1MuGMTScales.h.

References m_DeltaEtaScale.

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

194  {
195  if (idx < 0 || idx > 5)
196  edm::LogWarning("GMTScaleRangeViolation") << "Error in L1MuGMTScales:: isys out of range: " << idx;
197  return &(m_DeltaEtaScale[idx]);
198  };
L1MuBinnedScale m_DeltaEtaScale[6]
Log< level::Warning, false > LogWarning
const L1MuScale* L1MuGMTScales::getDeltaPhiScale ( ) const
inline

get the delta phi scale ( 3 bits)

Definition at line 201 of file L1MuGMTScales.h.

References m_DeltaPhiScale.

Referenced by L1MuGMTLFMatchQualLUT::TheLookupFunction().

201 { return &m_DeltaPhiScale; };
L1MuBinnedScale 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 204 of file L1MuGMTScales.h.

References m_OvlEtaScale.

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

204  {
205  if (isys < 0 || isys > 3)
206  edm::LogWarning("GMTScaleRangeViolation") << "Error in L1MuGMTScales:: isys out of range: " << isys;
207  return &(m_OvlEtaScale[isys]);
208  };
L1MuSymmetricBinnedScale m_OvlEtaScale[4]
Log< level::Warning, false > LogWarning
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 187 of file L1MuGMTScales.h.

References m_ReducedEtaScale.

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

187  {
188  if (isys < 0 || isys > 3)
189  edm::LogWarning("GMTScaleRangeViolation") << "Error in L1MuGMTScales:: isys out of range: " << isys;
190  return &(m_ReducedEtaScale[isys]);
191  };
L1MuSymmetricBinnedScale m_ReducedEtaScale[4]
Log< level::Warning, false > LogWarning
template<class Archive >
void L1MuGMTScales::serialize ( Archive &  ar,
const unsigned int  version 
)
private

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Definition at line 220 of file L1MuGMTScales.h.

template<typename CondSerializationT , typename Enabled >
friend struct cond::serialization::access
friend

Definition at line 220 of file L1MuGMTScales.h.

Member Data Documentation

L1MuBinnedScale L1MuGMTScales::m_DeltaEtaScale[6]
private

Definition at line 215 of file L1MuGMTScales.h.

Referenced by getDeltaEtaScale(), and L1MuGMTScales().

L1MuBinnedScale L1MuGMTScales::m_DeltaPhiScale
private

Definition at line 216 of file L1MuGMTScales.h.

Referenced by getDeltaPhiScale(), and L1MuGMTScales().

L1MuSymmetricBinnedScale L1MuGMTScales::m_OvlEtaScale[4]
private

Definition at line 217 of file L1MuGMTScales.h.

Referenced by getOvlEtaScale(), and L1MuGMTScales().

L1MuSymmetricBinnedScale L1MuGMTScales::m_ReducedEtaScale[4]
private

Definition at line 208 of file L1MuGMTScales.h.

Referenced by getReducedEtaScale(), and L1MuGMTScales().