File indexing completed on 2024-04-06 12:02:22
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include "CondFormats/L1TObjects/interface/L1GtBoardMaps.h"
0019
0020
0021 #include <iostream>
0022 #include <iomanip>
0023
0024
0025
0026
0027
0028
0029 L1GtBoardMaps::L1GtBoardMaps() {
0030
0031 }
0032
0033
0034 L1GtBoardMaps::~L1GtBoardMaps() {
0035
0036 }
0037
0038
0039 void L1GtBoardMaps::setGtBoardMaps(const std::vector<L1GtBoard>& gtBoardMapsValue) { m_gtBoardMaps = gtBoardMapsValue; }
0040
0041 void L1GtBoardMaps::print(std::ostream& myCout) const {
0042 myCout << "\nL1 GT board map" << std::endl;
0043
0044 myCout << " Size: " << m_gtBoardMaps.size() << " boards in L1 GT." << std::endl;
0045
0046 for (std::vector<L1GtBoard>::const_iterator cIt = m_gtBoardMaps.begin(); cIt != m_gtBoardMaps.end(); ++cIt) {
0047 cIt->print(myCout);
0048 myCout << std::endl;
0049 }
0050
0051 myCout << std::endl;
0052 }
0053
0054
0055 void L1GtBoardMaps::printGtDaqRecordMap(std::ostream& myCout) const {
0056 myCout << "\nL1 GT DAQ record map" << std::endl;
0057
0058 int nrBoards = 0;
0059 int posRec = -1;
0060 uint16_t boardId = 0;
0061 std::string boardName;
0062
0063 for (std::vector<L1GtBoard>::const_iterator cIt = m_gtBoardMaps.begin(); cIt != m_gtBoardMaps.end(); ++cIt) {
0064 posRec = cIt->gtPositionDaqRecord();
0065 boardId = cIt->gtBoardId();
0066 boardName = cIt->gtBoardName();
0067
0068 if (posRec >= 0) {
0069 myCout << " " << boardName << " " << std::hex << boardId << std::dec << " at position " << posRec << std::endl;
0070
0071 nrBoards++;
0072 }
0073 }
0074
0075 myCout << "\n Size: " << nrBoards << " boards in the record" << std::endl;
0076 myCout << " Header and trailer are automatically added to the hardware record.\n" << std::endl;
0077
0078 myCout << std::endl;
0079 }
0080
0081
0082 void L1GtBoardMaps::printGtEvmRecordMap(std::ostream& myCout) const {
0083 myCout << "\nL1 GT EVM record map" << std::endl;
0084
0085 int nrBoards = 0;
0086 int posRec = -1;
0087 uint16_t boardId = 0;
0088 std::string boardName;
0089
0090 for (std::vector<L1GtBoard>::const_iterator cIt = m_gtBoardMaps.begin(); cIt != m_gtBoardMaps.end(); ++cIt) {
0091 posRec = cIt->gtPositionEvmRecord();
0092 boardId = cIt->gtBoardId();
0093 boardName = cIt->gtBoardName();
0094
0095 if (posRec >= 0) {
0096 myCout << " " << boardName << " " << std::hex << boardId << std::dec << " at position " << posRec << std::endl;
0097
0098 nrBoards++;
0099 }
0100 }
0101
0102 myCout << "\n Size: " << nrBoards << " boards in the record" << std::endl;
0103 myCout << " Header and trailer are automatically added to the hardware record.\n" << std::endl;
0104
0105 myCout << std::endl;
0106 }
0107
0108
0109 void L1GtBoardMaps::printGtDaqActiveBoardsMap(std::ostream& myCout) const {
0110 myCout << "\nL1 GT DAQ \"active boards\" record map" << std::endl;
0111
0112 int nrBoards = 0;
0113 int posRec = -1;
0114 uint16_t boardId = 0;
0115 std::string boardName;
0116
0117 for (std::vector<L1GtBoard>::const_iterator cIt = m_gtBoardMaps.begin(); cIt != m_gtBoardMaps.end(); ++cIt) {
0118 posRec = cIt->gtBitDaqActiveBoards();
0119 boardId = cIt->gtBoardId();
0120 boardName = cIt->gtBoardName();
0121
0122 if (posRec >= 0) {
0123 myCout << " " << boardName << " " << std::hex << boardId << std::dec << " at bit " << posRec << std::endl;
0124
0125 nrBoards++;
0126 }
0127 }
0128
0129 myCout << "\n Size: " << nrBoards << " boards in the record" << std::endl;
0130 myCout << std::endl;
0131
0132 myCout << std::endl;
0133 }
0134
0135
0136 void L1GtBoardMaps::printGtEvmActiveBoardsMap(std::ostream& myCout) const {
0137 myCout << "\nL1 GT EVM \"active boards\" record map" << std::endl;
0138
0139 int nrBoards = 0;
0140 int posRec = -1;
0141 uint16_t boardId = 0;
0142 std::string boardName;
0143
0144 for (std::vector<L1GtBoard>::const_iterator cIt = m_gtBoardMaps.begin(); cIt != m_gtBoardMaps.end(); ++cIt) {
0145 posRec = cIt->gtBitEvmActiveBoards();
0146 boardId = cIt->gtBoardId();
0147 boardName = cIt->gtBoardName();
0148
0149 if (posRec >= 0) {
0150 myCout << " " << boardName << " " << std::hex << boardId << std::dec << " at bit " << posRec << std::endl;
0151
0152 nrBoards++;
0153 }
0154 }
0155
0156 myCout << "\n Size: " << nrBoards << " boards in the record" << std::endl;
0157 myCout << std::endl;
0158
0159 myCout << std::endl;
0160 }
0161
0162
0163 void L1GtBoardMaps::printGtBoardSlotMap(std::ostream& myCout) const {
0164 myCout << "\nL1 GT board - slot map" << std::endl;
0165
0166 int nrBoards = 0;
0167 int posRec = -1;
0168 uint16_t boardId = 0;
0169 std::string boardName;
0170
0171 for (std::vector<L1GtBoard>::const_iterator cIt = m_gtBoardMaps.begin(); cIt != m_gtBoardMaps.end(); ++cIt) {
0172 posRec = cIt->gtBoardSlot();
0173 boardId = cIt->gtBoardId();
0174 boardName = cIt->gtBoardName();
0175
0176 if (posRec >= 0) {
0177 myCout << " " << boardName << " " << std::hex << boardId << std::dec << " in slot " << posRec << std::endl;
0178
0179 nrBoards++;
0180 }
0181 }
0182
0183 myCout << "\n Size: " << nrBoards << " boards in the slot map" << std::endl;
0184 myCout << std::endl;
0185
0186 myCout << std::endl;
0187 }
0188
0189
0190 void L1GtBoardMaps::printGtBoardHexNameMap(std::ostream& myCout) const {
0191 myCout << "\nL1 GT board names in hw record map" << std::endl;
0192
0193 int nrBoards = 0;
0194 int posRec = -1;
0195 uint16_t boardId = 0;
0196 std::string boardName;
0197
0198 for (std::vector<L1GtBoard>::const_iterator cIt = m_gtBoardMaps.begin(); cIt != m_gtBoardMaps.end(); ++cIt) {
0199 posRec = cIt->gtBoardHexName();
0200 boardId = cIt->gtBoardId();
0201 boardName = cIt->gtBoardName();
0202
0203 if (posRec >= 0) {
0204 myCout << " " << boardName << " " << std::hex << boardId << std::dec << " has HexName " << std::hex << posRec
0205 << std::dec << std::endl;
0206
0207 nrBoards++;
0208 }
0209 }
0210
0211 myCout << "\n Size: " << nrBoards << " boards in the record" << std::endl;
0212 myCout << std::endl;
0213
0214 myCout << std::endl;
0215 }
0216
0217
0218 void L1GtBoardMaps::printGtQuadToPsbMap(std::ostream& myCout) const {
0219 myCout << "\nL1 GT \"cables to PSB\" input map (4x16 bits per cable) - DEPRECATED" << std::endl;
0220
0221 int nrBoards = 0;
0222 int nrCable = 0;
0223
0224 for (std::vector<L1GtBoard>::const_iterator cIt = m_gtBoardMaps.begin(); cIt != m_gtBoardMaps.end(); ++cIt) {
0225 if (cIt->gtBoardType() == PSB) {
0226 myCout << "\n PSB_" << cIt->gtBoardIndex() << "\n ";
0227
0228 nrBoards++;
0229
0230 std::vector<L1GtPsbQuad> quadInPsb = cIt->gtQuadInPsb();
0231 std::string objType;
0232
0233 for (std::vector<L1GtPsbQuad>::const_iterator cItQuad = quadInPsb.begin(); cItQuad != quadInPsb.end();
0234 ++cItQuad) {
0235 nrCable++;
0236
0237 if (*cItQuad == TechTr) {
0238 objType = "TechTr";
0239 } else if (*cItQuad == IsoEGQ) {
0240 objType = "IsoEGQ";
0241 } else if (*cItQuad == NoIsoEGQ) {
0242 objType = "NoIsoEGQ";
0243 } else if (*cItQuad == CenJetQ) {
0244 objType = "CenJetQ";
0245 } else if (*cItQuad == ForJetQ) {
0246 objType = "ForJetQ";
0247 } else if (*cItQuad == TauJetQ) {
0248 objType = "TauJetQ";
0249 } else if (*cItQuad == ESumsQ) {
0250 objType = "ESumsQ";
0251 } else if (*cItQuad == JetCountsQ) {
0252 objType = "JetCountsQ";
0253 } else if (*cItQuad == MQB1) {
0254 objType = "MQB1";
0255 } else if (*cItQuad == MQB2) {
0256 objType = "MQB2";
0257 } else if (*cItQuad == MQF3) {
0258 objType = "MQF3";
0259 } else if (*cItQuad == MQF4) {
0260 objType = "MQF4";
0261 } else if (*cItQuad == MQB5) {
0262 objType = "MQB5";
0263 } else if (*cItQuad == MQB6) {
0264 objType = "MQB6";
0265 } else if (*cItQuad == MQF7) {
0266 objType = "MQF7";
0267 } else if (*cItQuad == MQF8) {
0268 objType = "MQF8";
0269 } else if (*cItQuad == MQB9) {
0270 objType = "MQB9";
0271 } else if (*cItQuad == MQB10) {
0272 objType = "MQB10";
0273 } else if (*cItQuad == MQF11) {
0274 objType = "MQF11";
0275 } else if (*cItQuad == MQF12) {
0276 objType = "MQF12";
0277 } else if (*cItQuad == Free) {
0278 objType = "Free";
0279 } else if (*cItQuad == HfQ) {
0280 objType = "HfQ";
0281 } else {
0282 myCout << "\n\nError: no such member " << (*cItQuad) << " in enum L1GtPsbQuad\n\n" << std::endl;
0283 objType = "ERROR";
0284 }
0285
0286 myCout << objType << " ";
0287 }
0288 }
0289 }
0290
0291 myCout << "\n\n Size: " << nrCable << " cables for " << nrBoards << " PSB boards" << std::endl;
0292
0293 myCout << std::endl;
0294 }
0295
0296
0297 std::ostream& operator<<(std::ostream& os, const L1GtBoardMaps& result) {
0298 result.print(os);
0299 return os;
0300 }