File indexing completed on 2024-09-24 22:51:11
0001
0002
0003
0004
0005
0006 #include "DataFormats/CSCDigi/interface/CSCCFEBStatusDigi.h"
0007 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0008 #include <iostream>
0009 #include <cstdint>
0010
0011
0012 int CSCCFEBStatusDigi::ShiftSel(int nmb, int nshift, int nsel) const { return (nmb >> nshift) & nsel; }
0013
0014 std::vector<uint16_t> CSCCFEBStatusDigi::getSCAFullCond() const {
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 return bWords_;
0025 }
0026
0027 std::vector<int> CSCCFEBStatusDigi::getTS_FLAG() const {
0028 std::vector<int> vec(contrWords_.size(), 0);
0029 int nmb;
0030 for (unsigned int i = 0; i < vec.size(); i++) {
0031 nmb = contrWords_[i];
0032 vec[i] = ShiftSel(nmb, 15, 1);
0033 }
0034 return vec;
0035 }
0036
0037
0038 std::vector<int> CSCCFEBStatusDigi::getSCA_FULL() const {
0039 std::vector<int> vec(contrWords_.size(), 0);
0040 int nmb;
0041 for (unsigned int i = 0; i < vec.size(); i++) {
0042 nmb = contrWords_[i];
0043 vec[i] = ShiftSel(nmb, 14, 1);
0044 }
0045 return vec;
0046 }
0047
0048
0049 std::vector<int> CSCCFEBStatusDigi::getLCT_PHASE() const {
0050 std::vector<int> vec(contrWords_.size(), 0);
0051 int nmb;
0052 for (unsigned int i = 0; i < vec.size(); i++) {
0053 nmb = contrWords_[i];
0054 vec[i] = ShiftSel(nmb, 13, 1);
0055 }
0056 return vec;
0057 }
0058
0059
0060 std::vector<int> CSCCFEBStatusDigi::getL1A_PHASE() const {
0061 std::vector<int> vec(contrWords_.size(), 0);
0062 int nmb;
0063 for (unsigned int i = 0; i < vec.size(); i++) {
0064 nmb = contrWords_[i];
0065 vec[i] = ShiftSel(nmb, 12, 1);
0066 }
0067 return vec;
0068 }
0069
0070
0071 std::vector<int> CSCCFEBStatusDigi::getSCA_BLK() const {
0072 std::vector<int> vec(contrWords_.size(), 0);
0073 int nmb;
0074 for (unsigned int i = 0; i < vec.size(); i++) {
0075 nmb = contrWords_[i];
0076 vec[i] = ShiftSel(nmb, 8, 15);
0077 }
0078 return vec;
0079 }
0080
0081
0082 std::vector<int> CSCCFEBStatusDigi::getTRIG_TIME() const {
0083 std::vector<int> vec(contrWords_.size(), 0);
0084 int nmb;
0085 for (unsigned int i = 0; i < vec.size(); i++) {
0086 nmb = contrWords_[i];
0087 vec[i] = ShiftSel(nmb, 0, 255);
0088 }
0089 return vec;
0090 }
0091
0092
0093 void CSCCFEBStatusDigi::print() const {
0094 edm::LogVerbatim("CSCDigi") << "CSC CFEB # : " << getCFEBNmb();
0095
0096 std::ostringstream ost;
0097 ost << " SCAFullCond: ";
0098 if (!getSCAFullCond().empty()) {
0099 for (size_t i = 0; i < 4; ++i) {
0100 ost << " " << (getSCAFullCond())[i];
0101 }
0102 } else {
0103 ost << " "
0104 << "BWORD is not valid";
0105 }
0106 edm::LogVerbatim("CSCDigi") << ost.str();
0107
0108 ost.clear();
0109 ost << " CRC: ";
0110 for (size_t i = 0; i < getCRC().size(); ++i) {
0111 ost << " " << (getCRC())[i];
0112 }
0113 edm::LogVerbatim("CSCDigi") << ost.str();
0114
0115 ost.clear();
0116 ost << " TS_FLAG: ";
0117 for (size_t i = 0; i < getTS_FLAG().size(); ++i) {
0118 ost << " " << (getTS_FLAG())[i];
0119 }
0120 edm::LogVerbatim("CSCDigi") << ost.str();
0121
0122 ost.clear();
0123 ost << " SCA_FULL: ";
0124 for (size_t i = 0; i < getSCA_FULL().size(); ++i) {
0125 ost << " " << (getSCA_FULL())[i];
0126 }
0127 edm::LogVerbatim("CSCDigi") << ost.str();
0128
0129 ost.clear();
0130 ost << " LCT_PHASE: ";
0131 for (size_t i = 0; i < getLCT_PHASE().size(); ++i) {
0132 ost << " " << (getLCT_PHASE())[i];
0133 }
0134 edm::LogVerbatim("CSCDigi") << ost.str();
0135
0136 ost.clear();
0137 ost << " L1A_PHASE: ";
0138 for (size_t i = 0; i < getL1A_PHASE().size(); ++i) {
0139 ost << " " << (getL1A_PHASE())[i];
0140 }
0141 edm::LogVerbatim("CSCDigi") << ost.str();
0142
0143 ost.clear();
0144 ost << " SCA_BLK: ";
0145 for (size_t i = 0; i < getSCA_BLK().size(); ++i) {
0146 ost << " " << (getSCA_BLK())[i];
0147 }
0148 edm::LogVerbatim("CSCDigi") << ost.str();
0149
0150 ost.clear();
0151 ost << " TRIG_TIME: ";
0152 for (size_t i = 0; i < getTRIG_TIME().size(); ++i) {
0153 ost << " " << (getTRIG_TIME())[i];
0154 }
0155 edm::LogVerbatim("CSCDigi") << ost.str();
0156 }
0157
0158 std::ostream& operator<<(std::ostream& o, const CSCCFEBStatusDigi& digi) {
0159 o << " " << digi.getCFEBNmb() << "\n";
0160 for (size_t i = 0; i < 4; ++i) {
0161 o << " " << (digi.getSCAFullCond())[i];
0162 }
0163 o << "\n";
0164 for (size_t i = 0; i < digi.getCRC().size(); ++i) {
0165 o << " " << (digi.getCRC())[i];
0166 }
0167 o << "\n";
0168 for (size_t i = 0; i < digi.getTS_FLAG().size(); ++i) {
0169 o << " " << (digi.getTS_FLAG())[i];
0170 }
0171 o << "\n";
0172 for (size_t i = 0; i < digi.getSCA_FULL().size(); ++i) {
0173 o << " " << (digi.getSCA_FULL())[i];
0174 }
0175 o << "\n";
0176 for (size_t i = 0; i < digi.getLCT_PHASE().size(); ++i) {
0177 o << " " << (digi.getLCT_PHASE())[i];
0178 }
0179 o << "\n";
0180 for (size_t i = 0; i < digi.getL1A_PHASE().size(); ++i) {
0181 o << " " << (digi.getL1A_PHASE())[i];
0182 }
0183 o << "\n";
0184 for (size_t i = 0; i < digi.getSCA_BLK().size(); ++i) {
0185 o << " " << (digi.getSCA_BLK())[i];
0186 }
0187 o << "\n";
0188 for (size_t i = 0; i < digi.getTRIG_TIME().size(); ++i) {
0189 o << " " << (digi.getTRIG_TIME())[i];
0190 }
0191 o << "\n";
0192
0193 return o;
0194 }