File indexing completed on 2024-04-06 12:04:27
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTCand.h"
0022
0023
0024
0025
0026
0027 #include <iostream>
0028 #include <iomanip>
0029 #include <cmath>
0030
0031
0032
0033
0034
0035 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0036
0037
0038
0039
0040
0041 using namespace std;
0042
0043 const float L1MuGMTCand::m_invalidValue = -10.;
0044
0045
0046
0047
0048
0049 L1MuGMTCand::L1MuGMTCand() : m_name("L1MuGMTCand"), m_bx(0), m_dataWord(0) {
0050 m_phiValue = m_invalidValue;
0051 m_etaValue = m_invalidValue;
0052 m_ptValue = m_invalidValue;
0053 }
0054
0055 L1MuGMTCand::L1MuGMTCand(const L1MuGMTCand& mu)
0056 : m_name(mu.m_name),
0057 m_bx(mu.m_bx),
0058 m_dataWord(mu.m_dataWord),
0059 m_phiValue(mu.m_phiValue),
0060 m_etaValue(mu.m_etaValue),
0061 m_ptValue(mu.m_ptValue) {}
0062
0063 L1MuGMTCand::L1MuGMTCand(unsigned data, int bx) : m_name("L1MuGMTCand"), m_bx(bx), m_dataWord(data) {
0064 m_phiValue = m_invalidValue;
0065 m_etaValue = m_invalidValue;
0066 m_ptValue = m_invalidValue;
0067 }
0068
0069
0070
0071
0072 L1MuGMTCand::~L1MuGMTCand() { reset(); }
0073
0074
0075
0076
0077
0078
0079
0080
0081 void L1MuGMTCand::reset() {
0082 m_bx = 0;
0083 m_dataWord = 0;
0084 m_phiValue = m_invalidValue;
0085 m_etaValue = m_invalidValue;
0086 m_ptValue = m_invalidValue;
0087 }
0088
0089
0090
0091
0092 float L1MuGMTCand::phiValue() const {
0093 if (m_phiValue == m_invalidValue) {
0094 edm::LogWarning("ValueInvalid") << "L1MuGMTCand::phiValue requested physical value is invalid";
0095 }
0096 return m_phiValue;
0097 }
0098
0099
0100
0101
0102 float L1MuGMTCand::etaValue() const {
0103 if (m_etaValue == m_invalidValue) {
0104 edm::LogWarning("ValueInvalid") << "L1MuGMTCand::etaValue requested physical value is invalid";
0105 }
0106 return m_etaValue;
0107 }
0108
0109
0110
0111
0112 float L1MuGMTCand::ptValue() const {
0113 if (m_ptValue == m_invalidValue) {
0114 edm::LogWarning("ValueInvalid") << "L1MuRegionalCand::ptValue requested physical value is invalid";
0115 }
0116 return m_ptValue;
0117 }
0118
0119
0120
0121
0122 bool L1MuGMTCand::operator==(const L1MuGMTCand& cand) const {
0123 if (m_bx != cand.m_bx)
0124 return false;
0125 if (m_dataWord != cand.m_dataWord)
0126 return false;
0127 return true;
0128 }
0129
0130
0131
0132
0133 bool L1MuGMTCand::operator!=(const L1MuGMTCand& cand) const {
0134 if (m_bx != cand.m_bx)
0135 return true;
0136 if (m_dataWord != cand.m_dataWord)
0137 return true;
0138 return false;
0139 }
0140
0141
0142
0143
0144 void L1MuGMTCand::print() const {
0145 if (!empty()) {
0146 if (m_phiValue == m_invalidValue || m_etaValue == m_invalidValue || m_ptValue == m_invalidValue) {
0147 edm::LogVerbatim("GMT_Candidate_info") << setiosflags(ios::right | ios::adjustfield | ios::showpoint | ios::fixed)
0148 << "bx = " << setw(2) << bx() << " " << endl
0149 << "pt(index) = " << setw(2) << ptIndex() << " "
0150 << "charge = " << setw(2) << charge() << " "
0151 << "eta(index) = " << setw(2) << etaIndex() << " "
0152 << "phi(index) = " << setw(3) << phiIndex() << " "
0153 << "quality = " << setw(1) << quality() << " "
0154 << "isolated = " << setw(1) << isol() << " "
0155 << "mip = " << setw(1) << mip() << endl;
0156 } else {
0157 edm::LogVerbatim("GMT_Candidate_info") << setiosflags(ios::right | ios::adjustfield | ios::showpoint | ios::fixed)
0158 << "bx = " << setw(2) << bx() << " " << endl
0159 << "pt = " << setw(5) << setprecision(1) << ptValue() << " GeV "
0160 << "charge = " << setw(2) << charge() << " "
0161 << "eta = " << setw(5) << setprecision(2) << etaValue() << " "
0162 << "phi = " << setw(5) << setprecision(3) << phiValue() << " rad "
0163 << "quality = " << setw(1) << quality() << " "
0164 << "isolated = " << setw(1) << isol() << " "
0165 << "mip = " << setw(1) << mip() << endl;
0166 }
0167 }
0168 }
0169
0170
0171
0172
0173 ostream& operator<<(ostream& s, const L1MuGMTCand& id) {
0174 if (!id.empty()) {
0175 s << setiosflags(ios::showpoint | ios::fixed) << "bx = " << setw(2) << id.bx() << " "
0176 << "pt = " << setw(5) << setprecision(1) << id.ptValue() << " GeV "
0177 << "charge = " << setw(2) << id.charge() << " "
0178 << "eta = " << setw(5) << setprecision(2) << id.etaValue() << " "
0179 << "phi = " << setw(5) << setprecision(3) << id.phiValue() << " rad "
0180 << "quality = " << setw(1) << id.quality() << " "
0181 << "isolated = " << setw(1) << id.isol() << " "
0182 << "mip = " << setw(1) << id.mip() << " ";
0183 }
0184 return s;
0185 }