16 m_name(
"FastL1MuCand"), m_empty(
true),
17 m_phi(0), m_eta(31), m_pt(0), m_charge(0), m_quality(0),
18 m_rank(0), m_smearedPt(0) { }
95 if ( fabs(etaValue) > 1.04 )
131 float mindiff = 1000.0;
133 if (phi < 0.) {phi = 2*
M_PI +
phi; }
134 for (
int i = 0;
i < 144;
i++ ) {
136 if ( diff <= mindiff ) {
155 float mindiff = 1000.0;
157 for (
int i = 0;
i < 63;
i++ ) {
159 if ( diff <= mindiff ) {
180 float mindiff = 1000.0;
182 for (
int i = 0;
i < 32;
i++ ) {
184 if ( diff <= mindiff ) {
225 if (
this != &cand ) {
264 if (
m_pt != cand.
m_pt )
return false;
281 if (
m_pt != cand.
m_pt )
return true;
298 cout.setf(ios::showpoint);
299 cout.setf(ios::right,ios::adjustfield);
301 <<
"pt = " << setw(5) << setprecision(1) <<
ptValue() <<
" GeV " 302 <<
"charge = " << setw(2) <<
charge() <<
" " 303 <<
"eta = " << setw(5) << setprecision(2) <<
etaValue() <<
" " 304 <<
"phi = " << setw(5) << setprecision(3) <<
phiValue() <<
" rad " 305 <<
"rank = " << setw(6) <<
rank() << endl;
320 <<
"pt = " << setw(5) << setprecision(1) <<
id.ptValue() <<
" GeV " 321 <<
"charge = " << setw(2) <<
id.charge() <<
" " 322 <<
"eta = " << setw(5) << setprecision(2) <<
id.etaValue() <<
" " 323 <<
"phi = " << setw(5) << setprecision(3) <<
id.phiValue() <<
" rad ";
336 0.0, 0.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0,
337 4.5, 5.0, 6.0, 7.0, 8.0, 10.0, 12.0, 14.0,
338 16.0, 18.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0,
339 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 120.0, 140.0 };
343 -2.40, -2.35, -2.30, -2.25, -2.20, -2.15, -2.10, -2.05,
344 -2.00, -1.95, -1.90, -1.85, -1.80, -1.75, -1.70, -1.60,
345 -1.50, -1.40, -1.30, -1.20, -1.10, -1.00, -0.90, -0.80,
346 -0.70, -0.60, -0.50, -0.40, -0.30, -0.20, -0.10, 0.00,
347 0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80,
348 0.90, 1.00, 1.10, 1.20, 1.30, 1.40, 1.50, 1.60,
349 1.70, 1.75, 1.80, 1.85, 1.90, 1.95, 2.00, 2.05,
350 2.10, 2.15, 2.20, 2.25, 2.30, 2.35, 2.40 };
354 0.0000, 0.0436, 0.0873, 0.1309, 0.1745, 0.2182,
355 0.2618, 0.3054, 0.3491, 0.3927, 0.4363, 0.4800,
356 0.5236, 0.5672, 0.6109, 0.6545, 0.6981, 0.7418,
357 0.7854, 0.8290, 0.8727, 0.9163, 0.9599, 1.0036,
358 1.0472, 1.0908, 1.1345, 1.1781, 1.2217, 1.2654,
359 1.3090, 1.3526, 1.3963, 1.4399, 1.4835, 1.5272,
360 1.5708, 1.6144, 1.6581, 1.7017, 1.7453, 1.7890,
361 1.8326, 1.8762, 1.9199, 1.9635, 2.0071, 2.0508,
362 2.0944, 2.1380, 2.1817, 2.2253, 2.2689, 2.3126,
363 2.3562, 2.3998, 2.4435, 2.4871, 2.5307, 2.5744,
364 2.6180, 2.6616, 2.7053, 2.7489, 2.7925, 2.8362,
365 2.8798, 2.9234, 2.9671, 3.0107, 3.0543, 3.0980,
366 3.1416, 3.1852, 3.2289, 3.2725, 3.3161, 3.3598,
367 3.4034, 3.4470, 3.4907, 3.5343, 3.5779, 3.6216,
368 3.6652, 3.7088, 3.7525, 3.7961, 3.8397, 3.8834,
369 3.9270, 3.9706, 4.0143, 4.0579, 4.1015, 4.1452,
370 4.1888, 4.2324, 4.2761, 4.3197, 4.3633, 4.4070,
371 4.4506, 4.4942, 4.5379, 4.5815, 4.6251, 4.6688,
372 4.7124, 4.7560, 4.7997, 4.8433, 4.8869, 4.9306,
373 4.9742, 5.0178, 5.0615, 5.1051, 5.1487, 5.1924,
374 5.2360, 5.2796, 5.3233, 5.3669, 5.4105, 5.4542,
375 5.4978, 5.5414, 5.5851, 5.6287, 5.6723, 5.7160,
376 5.7596, 5.8032, 5.8469, 5.8905, 5.9341, 5.9778,
377 6.0214, 6.0650, 6.1087, 6.1523, 6.1959, 6.2396 };
void setPtPacked(unsigned pt)
set packed pt-code of muon candidate
unsigned int eta() const
get eta-code
unsigned int rank() const
get rank
unsigned int phiIndex() const
get phi-code
int charge() const
get charge
unsigned int etaIndex() const
get eta-code
float charge() const
charge
SimpleL1MuGMTCand & operator=(const SimpleL1MuGMTCand &)
assignment operator
void print() const
print parameters of muon candidate
bool operator!=(const SimpleL1MuGMTCand &) const
unequal operator
bool operator==(const SimpleL1MuGMTCand &) const
equal operator
unsigned int pt() const
get pt-code
static const float etaScale[63]
void setPhiValue(float phiVal)
Setters for physical values.
void setFwdBit(unsigned int fwdbit)
set forward bit (1=forward, 0=barrel)
math::XYZTLorentzVector LorentzVector
static const float ptScale[32]
void reset()
reset muon candidate
void setCharge(int charge)
set charge and packed code of muon candidate
void setBx(int bx)
set bunch crossing identifier
bool empty() const
is it an empty muon candidate?
~SimpleL1MuGMTCand() override
destructor
friend std::ostream & operator<<(std::ostream &, const SimpleL1MuGMTCand &)
output stream operator
void setChargePacked(unsigned ch)
set packed charge/synchronization word of muon candidate (0=POS, 1=NEG, 2=UNDEF, 3=SYNC) ...
void setPt(float pt)
set pt-value and packed code of muon candidate
void setEta(float eta)
set eta-value and packed code of muon candidate
void setQuality(unsigned quality)
set quality of muon candidate
void setEtaPacked(unsigned eta)
set packed eta-code of muon candidate
void setEtaValue(float etaVal)
Set Eta Value (need to set type, first)
const LorentzVector getMomentum() const
void setRPCBit(unsigned int rpcbit)
set RPC bit (1=RPC, 0=DT/CSC or matched)
SimpleL1MuGMTCand()
constructor
const math::XYZTLorentzVectorD & momentum() const
void setMomentum(const LorentzVector &m)
unsigned int phi() const
get phi-code
void setPhi(float phi)
set phi-value and packed code of muon candidate
void setPtValue(float ptVal)
Set Pt Value.
static const float phiScale[144]
void setPhiPacked(unsigned phi)
set packed phi-code of muon candidate