CMS 3D CMS Logo

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

38 {}
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 40 of file L1MuGMTScales.h.

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

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

destructor

Definition at line 196 of file L1MuGMTScales.h.

196  {
197 // for (int i=0; i<4; i++) {
198 // delete m_ReducedEtaScale[i];
199 // delete m_OvlEtaScale[i];
200 // }
201 // for (int i=0; i<6; i++) {
202 // delete m_DeltaEtaScale[i];
203 // }
204 
205 // delete m_DeltaPhiScale;
206 // delete m_CaloEtaScale;
207  };

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

References training_settings::idx, and m_DeltaEtaScale.

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

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

get the delta phi scale ( 3 bits)

Definition at line 222 of file L1MuGMTScales.h.

References m_DeltaPhiScale.

Referenced by L1MuGMTLFMatchQualLUT::TheLookupFunction().

222 { 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 225 of file L1MuGMTScales.h.

References m_OvlEtaScale.

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

225  {
226  if (isys<0 || isys>3) edm::LogWarning("GMTScaleRangeViolation") << "Error in L1MuGMTScales:: isys out of range: " << isys;
227  return &( m_OvlEtaScale[isys] );
228  };
L1MuSymmetricBinnedScale m_OvlEtaScale[4]
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 210 of file L1MuGMTScales.h.

References m_ReducedEtaScale.

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

210  {
211  if (isys<0 || isys>3) edm::LogWarning("GMTScaleRangeViolation") << "Error in L1MuGMTScales:: isys out of range: " << isys;
212  return &( m_ReducedEtaScale[isys] );
213  };
L1MuSymmetricBinnedScale m_ReducedEtaScale[4]
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 242 of file L1MuGMTScales.h.

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

Definition at line 242 of file L1MuGMTScales.h.

Member Data Documentation

L1MuBinnedScale L1MuGMTScales::m_DeltaEtaScale[6]
private

Definition at line 237 of file L1MuGMTScales.h.

Referenced by getDeltaEtaScale(), and L1MuGMTScales().

L1MuBinnedScale L1MuGMTScales::m_DeltaPhiScale
private

Definition at line 238 of file L1MuGMTScales.h.

Referenced by getDeltaPhiScale(), and L1MuGMTScales().

L1MuSymmetricBinnedScale L1MuGMTScales::m_OvlEtaScale[4]
private

Definition at line 239 of file L1MuGMTScales.h.

Referenced by getOvlEtaScale(), and L1MuGMTScales().

L1MuSymmetricBinnedScale L1MuGMTScales::m_ReducedEtaScale[4]
private

Definition at line 228 of file L1MuGMTScales.h.

Referenced by getReducedEtaScale(), and L1MuGMTScales().