File indexing completed on 2024-04-06 12:19:43
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include "L1Trigger/DTTrackFinder/interface/L1MuDTTrackSegPhi.h"
0019
0020
0021
0022
0023
0024 #include <iostream>
0025 #include <iomanip>
0026 #include <cmath>
0027
0028
0029
0030
0031
0032 #include "L1Trigger/DTTrackFinder/interface/L1MuDTTrackSegLoc.h"
0033
0034 using namespace std;
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044 L1MuDTTrackSegPhi::L1MuDTTrackSegPhi()
0045 : m_location(), m_phi(0), m_phib(0), m_quality(Null), m_tag(false), m_bx(0), m_etaFlag(false) {}
0046
0047 L1MuDTTrackSegPhi::L1MuDTTrackSegPhi(
0048 int wheel_id, int sector_id, int station_id, int phi, int phib, TSQuality quality, bool tag, int bx, bool etaFlag)
0049 : m_location(wheel_id, sector_id, station_id),
0050 m_phi(phi),
0051 m_phib(phib),
0052 m_quality(quality),
0053 m_tag(false),
0054 m_bx(bx),
0055 m_etaFlag(etaFlag) {
0056 if (phi < -2048 || phi > 2047) {
0057
0058 }
0059 if (phib < -512 || phib > 511) {
0060
0061 }
0062 if (quality > 7) {
0063
0064 }
0065 }
0066
0067 L1MuDTTrackSegPhi::L1MuDTTrackSegPhi(
0068 const L1MuDTTrackSegLoc& id, int phi, int phib, TSQuality quality, bool tag, int bx, bool etaFlag)
0069 : m_location(id), m_phi(phi), m_phib(phib), m_quality(quality), m_tag(tag), m_bx(bx), m_etaFlag(etaFlag) {
0070 if (phi < -2048 || phi > 2047) {
0071
0072 }
0073 if (phib < -512 || phib > 511) {
0074
0075 }
0076 if (quality > 7) {
0077
0078 }
0079 }
0080
0081 L1MuDTTrackSegPhi::L1MuDTTrackSegPhi(const L1MuDTTrackSegPhi& id)
0082 : m_location(id.m_location),
0083 m_phi(id.m_phi),
0084 m_phib(id.m_phib),
0085 m_quality(id.m_quality),
0086 m_tag(id.m_tag),
0087 m_bx(id.m_bx),
0088 m_etaFlag(id.m_etaFlag) {}
0089
0090
0091
0092
0093 L1MuDTTrackSegPhi::~L1MuDTTrackSegPhi() {}
0094
0095
0096
0097
0098
0099
0100
0101
0102 void L1MuDTTrackSegPhi::reset() {
0103 m_phi = 0;
0104 m_phib = 0;
0105 m_quality = Null;
0106 m_tag = false;
0107 m_bx = 0;
0108 m_etaFlag = false;
0109 }
0110
0111
0112
0113
0114 double L1MuDTTrackSegPhi::phiValue() const {
0115 double tmp = static_cast<double>(m_location.sector()) * M_PI / 6;
0116 tmp += static_cast<double>(m_phi) / 4096;
0117 return (tmp > 0) ? tmp : (2 * M_PI + tmp);
0118 }
0119
0120
0121
0122
0123 double L1MuDTTrackSegPhi::phibValue() const { return static_cast<double>(m_phib) / 512; }
0124
0125
0126
0127
0128 L1MuDTTrackSegPhi& L1MuDTTrackSegPhi::operator=(const L1MuDTTrackSegPhi& id) {
0129 if (this != &id) {
0130 m_location = id.m_location;
0131 m_phi = id.m_phi;
0132 m_phib = id.m_phib;
0133 m_quality = id.m_quality;
0134 m_tag = id.m_tag;
0135 m_bx = id.m_bx;
0136 m_etaFlag = id.m_etaFlag;
0137 }
0138 return *this;
0139 }
0140
0141
0142
0143
0144 bool L1MuDTTrackSegPhi::operator==(const L1MuDTTrackSegPhi& id) const {
0145 if (m_location != id.m_location)
0146 return false;
0147 if (m_phi != id.m_phi)
0148 return false;
0149 if (m_phib != id.m_phib)
0150 return false;
0151 if (m_quality != id.m_quality)
0152 return false;
0153 if (m_bx != id.m_bx)
0154 return false;
0155 return true;
0156 }
0157
0158
0159
0160
0161 bool L1MuDTTrackSegPhi::operator!=(const L1MuDTTrackSegPhi& id) const {
0162 if (m_location != id.m_location)
0163 return true;
0164 if (m_phi != id.m_phi)
0165 return true;
0166 if (m_phib != id.m_phib)
0167 return true;
0168 if (m_quality != id.m_quality)
0169 return true;
0170 if (m_bx != id.m_bx)
0171 return true;
0172 return false;
0173 }
0174
0175
0176
0177
0178 ostream& operator<<(ostream& s, const L1MuDTTrackSegPhi::TSQuality& quality) {
0179 switch (quality) {
0180 case L1MuDTTrackSegPhi::Li:
0181 return s << "Li ";
0182 case L1MuDTTrackSegPhi::Lo:
0183 return s << "Lo ";
0184 case L1MuDTTrackSegPhi::Hi:
0185 return s << "Hi ";
0186 case L1MuDTTrackSegPhi::Ho:
0187 return s << "Ho ";
0188 case L1MuDTTrackSegPhi::LL:
0189 return s << "LL ";
0190 case L1MuDTTrackSegPhi::HL:
0191 return s << "HL ";
0192 case L1MuDTTrackSegPhi::HH:
0193 return s << "HH ";
0194 case L1MuDTTrackSegPhi::Null:
0195 return s << "Null ";
0196 default:
0197 return s << "unknown TS phi Quality ";
0198 }
0199 }
0200
0201
0202
0203
0204 ostream& operator<<(ostream& s, const L1MuDTTrackSegPhi& id) {
0205 s.setf(ios::right, ios::adjustfield);
0206 s << (id.m_location) << "\t"
0207 << "phi : " << setw(5) << id.m_phi << " "
0208 << "phib : " << setw(4) << id.m_phib << " "
0209 << "quality : " << setw(4) << id.m_quality;
0210
0211 return s;
0212 }