00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTCand.h"
00024
00025
00026
00027
00028
00029 #include <iostream>
00030 #include <iomanip>
00031 #include <cmath>
00032
00033
00034
00035
00036
00037 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00038
00039
00040
00041
00042
00043 using namespace std;
00044
00045 const float L1MuGMTCand::m_invalidValue = -10.;
00046
00047
00048
00049
00050
00051 L1MuGMTCand::L1MuGMTCand() : m_name("L1MuGMTCand"), m_bx(0), m_dataWord(0) {
00052 m_phiValue = m_invalidValue;
00053 m_etaValue = m_invalidValue;
00054 m_ptValue = m_invalidValue;
00055 }
00056
00057
00058 L1MuGMTCand::L1MuGMTCand(const L1MuGMTCand& mu) :
00059 m_name(mu.m_name), m_bx(mu.m_bx), m_dataWord(mu.m_dataWord),
00060 m_phiValue(mu.m_phiValue), m_etaValue(mu.m_etaValue), m_ptValue(mu.m_ptValue) {
00061 }
00062
00063 L1MuGMTCand::L1MuGMTCand(unsigned data, int bx) :
00064 m_name("L1MuGMTCand"), m_bx(bx) , m_dataWord(data) {
00065
00066 m_phiValue = m_invalidValue;
00067 m_etaValue = m_invalidValue;
00068 m_ptValue = m_invalidValue;
00069
00070 }
00071
00072
00073
00074
00075 L1MuGMTCand::~L1MuGMTCand() {
00076
00077 reset();
00078
00079 }
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089 void L1MuGMTCand::reset() {
00090
00091 m_bx = 0;
00092 m_dataWord = 0;
00093 m_phiValue = m_invalidValue;
00094 m_etaValue = m_invalidValue;
00095 m_ptValue = m_invalidValue;
00096
00097 }
00098
00099
00100
00101
00102 float L1MuGMTCand::phiValue() const {
00103
00104 if(m_phiValue == m_invalidValue) {
00105 edm::LogWarning("ValueInvalid") <<
00106 "L1MuGMTCand::phiValue requested physical value is invalid";
00107 }
00108 return m_phiValue;
00109
00110 }
00111
00112
00113
00114
00115
00116 float L1MuGMTCand::etaValue() const {
00117
00118 if(m_etaValue == m_invalidValue) {
00119 edm::LogWarning("ValueInvalid") <<
00120 "L1MuGMTCand::etaValue requested physical value is invalid";
00121 }
00122 return m_etaValue;
00123
00124 }
00125
00126
00127
00128
00129
00130 float L1MuGMTCand::ptValue() const {
00131
00132 if(m_ptValue == m_invalidValue) {
00133 edm::LogWarning("ValueInvalid") <<
00134 "L1MuRegionalCand::ptValue requested physical value is invalid";
00135 }
00136 return m_ptValue;
00137
00138 }
00139
00140
00141
00142
00143 bool L1MuGMTCand::operator==(const L1MuGMTCand& cand) const {
00144
00145 if ( m_bx != cand.m_bx ) return false;
00146 if ( m_dataWord != cand.m_dataWord ) return false;
00147 return true;
00148
00149 }
00150
00151
00152
00153
00154
00155 bool L1MuGMTCand::operator!=(const L1MuGMTCand& cand) const {
00156
00157 if ( m_bx != cand.m_bx ) return true;
00158 if ( m_dataWord != cand.m_dataWord ) return true;
00159 return false;
00160
00161 }
00162
00163
00164
00165
00166
00167 void L1MuGMTCand::print() const {
00168
00169 if ( !empty() ) {
00170 if(m_phiValue == m_invalidValue ||
00171 m_etaValue == m_invalidValue ||
00172 m_ptValue == m_invalidValue) {
00173 edm::LogVerbatim("GMT_Candidate_info")
00174 << setiosflags(ios::right | ios::adjustfield | ios::showpoint | ios::fixed)
00175 << "bx = " << setw(2) << bx() << " " << endl
00176 << "pt(index) = " << setw(2) << ptIndex() << " "
00177 << "charge = " << setw(2) << charge() << " "
00178 << "eta(index) = " << setw(2) << etaIndex() << " "
00179 << "phi(index) = " << setw(3) << phiIndex() << " "
00180 << "quality = " << setw(1) << quality() << " "
00181 << "isolated = " << setw(1) << isol() << " "
00182 << "mip = " << setw(1) << mip() << endl;
00183 } else {
00184 edm::LogVerbatim("GMT_Candidate_info")
00185 << setiosflags(ios::right | ios::adjustfield | ios::showpoint | ios::fixed)
00186 << "bx = " << setw(2) << bx() << " " << endl
00187 << "pt = " << setw(5) << setprecision(1) << ptValue() << " GeV "
00188 << "charge = " << setw(2) << charge() << " "
00189 << "eta = " << setw(5) << setprecision(2) << etaValue() << " "
00190 << "phi = " << setw(5) << setprecision(3) << phiValue() << " rad "
00191 << "quality = " << setw(1) << quality() << " "
00192 << "isolated = " << setw(1) << isol() << " "
00193 << "mip = " << setw(1) << mip() << endl;
00194 }
00195 }
00196
00197 }
00198
00199
00200
00201
00202
00203 ostream& operator<<(ostream& s, const L1MuGMTCand& id) {
00204
00205 if ( !id.empty() ) {
00206 s << setiosflags(ios::showpoint | ios::fixed)
00207 << "bx = " << setw(2) << id.bx() << " "
00208 << "pt = " << setw(5) << setprecision(1) << id.ptValue() << " GeV "
00209 << "charge = " << setw(2) << id.charge() << " "
00210 << "eta = " << setw(5) << setprecision(2) << id.etaValue() << " "
00211 << "phi = " << setw(5) << setprecision(3) << id.phiValue() << " rad "
00212 << "quality = " << setw(1) << id.quality() << " "
00213 << "isolated = " << setw(1) << id.isol() << " "
00214 << "mip = " << setw(1) << id.mip() << " ";
00215 }
00216 return s;
00217
00218 }
00219
00220
00221
00222
00223
00224
00225
00226