92 bool thereIsACM =
false;
94 bool thereIsASL =
false;
97 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode; inword= " << std::hex << inword << std::dec << std::endl; }
101 CMROS.decodeFragment(inword, recField);
102 PDROS.decodeFragment(inword, recField);
103 RXROS.decodeFragment(inword, recField);
104 SLROS.decodeFragment(inword, recField);
109 if (
SLROS.isHeader()) {
113 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic Header " << std::endl; }
116 SLRO.writeRecord(inword,
false);
124 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic SubHeader " << std::endl; }
126 SLRO.writeRecord(inword,
false);
132 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic Footer " << std::endl; }
135 SLRO.writeRecord(inword,
true);
143 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic Body " << std::endl; }
144 SLRO.writeRecord(inword,
false);
147 }
else if (
RXROS.isHeader()) {
151 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: RX Header " << std::endl; }
153 RXROS.decodeFragment(inword, recField);
162 std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and RX Header found" << std::endl;
165 CMRO.writeRecord(inword,
true);
170 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and and RX Header found" << std::endl;
173 CMRO.writeRecord(inword,
true);
178 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and RX Header found" << std::endl;
181 CMRO.writeRecord(inword,
true);
186 std::cout <<
" RPCRXRODDecode Fragment problem: CM Header or Pad Footer expected and RX Header found" << std::endl;
190 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
193 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
196 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
199 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
202 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
206 }
else if (
RXROS.isFooter()) {
212 RXROS.decodeFragment(inword, recField);
213 if (recField ==
'F') {}
221 std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and RX Footer found" << std::endl;
224 CMRO.writeRecord(inword,
true);
229 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and RX Footer found" << std::endl;
232 CMRO.writeRecord(inword,
true);
237 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and and RX Footer found" << std::endl;
240 CMRO.writeRecord(inword,
true);
245 std::cout <<
" RPCRXRODDecode Fragment problem: CM Header or Pad Footer expected and RX Footer found" << std::endl;
249 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
252 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
255 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
258 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
261 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
265 }
else if (
PDROS.isHeader()) {
269 if (
m_enablePrintOut) { std::cout <<
" PAD Header " << std::hex << inword << std::dec << std::endl; }
271 PDROS.decodeFragment(inword, recField);
272 if (recField ==
'H') {
PadID =
PDROS.padid(); }
275 std::cout <<
" PAD " <<
PadID <<
" LVL1 " << std::hex << ((inword & 0x0e00) >> 8) << std::dec << std::endl;
281 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
283 CMRO.writeRecord(inword,
true);
287 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
289 CMRO.writeRecord(inword,
true);
294 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
297 CMRO.writeRecord(inword,
true);
302 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
305 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
308 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
311 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
314 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
318 }
else if (
PDROS.isSubHeader()) {
322 if (
m_enablePrintOut) { std::cout <<
" BCID " << std::hex << (inword & 0x0fff) << std::dec << std::endl; }
326 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
328 CMRO.writeRecord(inword,
true);
332 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
334 CMRO.writeRecord(inword,
true);
339 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
342 CMRO.writeRecord(inword,
true);
346 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad Header expected and not found" << std::endl; }
349 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
352 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
355 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
358 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
361 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
365 }
else if (
PDROS.isPreFooter()) {
369 if (
m_enablePrintOut) { std::cout <<
" STATUS ERROR " << std::hex << (inword & 0x000f) << std::dec << std::endl; }
373 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
375 CMRO.writeRecord(inword,
true);
379 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
381 CMRO.writeRecord(inword,
true);
386 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
389 CMRO.writeRecord(inword,
true);
394 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
397 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
400 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
403 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
406 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
410 }
else if (
PDROS.isFooter()) {
415 std::cout <<
" PAD Footer " << std::hex << inword << std::dec <<
" ERROR FLAG " << std::hex << (inword & 0x0fff) << std::dec
419 PDROS.decodeFragment(inword, recField);
420 if (recField ==
'F') {}
427 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
429 CMRO.writeRecord(inword,
true);
433 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
435 CMRO.writeRecord(inword,
true);
440 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
443 CMRO.writeRecord(inword,
true);
448 std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected and not found" << std::endl;
452 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
456 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
459 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
462 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
466 }
else if (
CMROS.isHeader()) {
472 CMRO.writeRecord(inword,
false);
478 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: CM SubHeader expected and CM Header found" << std::endl; }
483 std::cout <<
" RPCRXRODDecode warning: CM Body or CM Footer expected and CM Header found" << std::endl;
488 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
491 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
494 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
497 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
500 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
504 }
else if (
CMROS.isSubHeader()) {
509 CMRO.writeRecord(inword,
false);
514 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: previous record was not a CM Header" << std::endl; }
518 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: CM Body expected and CM SubHeader found" << std::endl; }
522 std::cout <<
" RPCRXRODDecode warning: CM Body or CM Footer expected; CM SubHeader found" << std::endl;
527 std::cout <<
" RPCRXRODDecode warning: CM Header or Pad Footer expected; CM SubHeader found" << std::endl;
531 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
534 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
537 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
540 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
543 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
547 }
else if (
CMROS.isBody()) {
557 std::cout <<
" RPCRXRODDecode (CMBody1) warning: previous record was not a CM subHeader"
558 <<
" or CM Body Record " << std::endl;
563 std::cout <<
" RPCRXRODDecode (CMBody2) warning: previous record was not a CM subHeader"
564 <<
" or CM Body Record " << std::endl;
571 std::cout <<
" RPCRXRODDecode (CMBody3) warning: previous record was not a CM subHeader"
572 <<
" or CM Body Record " << std::endl;
576 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
579 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
582 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
585 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
588 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord=" << std::endl; }
592 }
else if (
CMROS.isFooter()) {
599 CMRO.writeRecord(inword,
true);
605 std::cout <<
" RPCRXRODDecode (CMFooter1) warning: previous record was not a Body record " << std::endl;
610 std::cout <<
" RPCRXRODDecode (CMFooter2) warning: previous record was not a Body record" << std::endl;
614 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: previous record was not a Body record" << std::endl; }
619 std::cout <<
" RPCRXRODDecode (CMFooter3) warning: previous record was not a Body record" << std::endl;
623 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
626 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
629 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
632 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
635 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord" << std::endl; }
653 std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and (reserved) found" << std::endl;
656 CMRO.writeRecord(inword,
true);
661 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and (reserved) found" << std::endl;
664 CMRO.writeRecord(inword,
true);
669 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and (reserved) found" << std::endl;
672 CMRO.writeRecord(inword,
true);
677 std::cout <<
" RPCRXRODDecode Fragment problem: CM Header or Pad Footer expected and (reserved) found" << std::endl;
681 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
684 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
687 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
690 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
693 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
699 if (thereIsACM) answer = 1;
700 if (thereIsASL) answer = 2;