|
ATLAS Offline Software
|
Go to the documentation of this file.
80 mask1[0] = 0x0000ffff;
81 mask1[1] = 0xffff0000;
84 return pushWord((inword & mask1[j]) >> shift[j], NOBXS);
144 bool thereIsACM =
false;
146 bool thereIsASL =
false;
149 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode; inword= " << std::hex << inword << std::dec << std::endl; }
165 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic Header " << std::endl; }
176 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic SubHeader " << std::endl; }
184 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic Footer " << std::endl; }
195 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic Body " << std::endl; }
203 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: RX Header " << std::endl; }
214 std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and RX Header found" << std::endl;
222 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and and RX Header found" << std::endl;
230 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and RX Header found" << std::endl;
238 std::cout <<
" RPCRXRODDecode Fragment problem: CM Header or Pad Footer expected and RX Header found" << std::endl;
242 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
245 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
248 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
251 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
254 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
265 if (recField ==
'F') {}
273 std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and RX Footer found" << std::endl;
281 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and RX Footer found" << std::endl;
289 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and and RX Footer found" << std::endl;
297 std::cout <<
" RPCRXRODDecode Fragment problem: CM Header or Pad Footer expected and RX Footer found" << std::endl;
301 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
304 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
307 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
310 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
313 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
321 if (
m_enablePrintOut) { std::cout <<
" PAD Header " << std::hex << inword << std::dec << std::endl; }
327 std::cout <<
" PAD " <<
PadID <<
" LVL1 " << std::hex << ((inword & 0x0e00) >> 8) << std::dec << std::endl;
333 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
339 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
346 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
354 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
357 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
360 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
363 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
366 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
374 if (
m_enablePrintOut) { std::cout <<
" BCID " << std::hex << (inword & 0x0fff) << std::dec << std::endl; }
378 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
384 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
391 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
398 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad Header expected and not found" << std::endl; }
401 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
404 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
407 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
410 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
413 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
421 if (
m_enablePrintOut) { std::cout <<
" STATUS ERROR " << std::hex << (inword & 0x000f) << std::dec << std::endl; }
425 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
431 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
438 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
446 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
449 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
452 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
455 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
458 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
467 std::cout <<
" PAD Footer " << std::hex << inword << std::dec <<
" ERROR FLAG " << std::hex << (inword & 0x0fff) << std::dec
472 if (recField ==
'F') {}
479 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
485 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
492 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
500 std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected and not found" << std::endl;
504 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
508 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
511 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
514 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
530 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: CM SubHeader expected and CM Header found" << std::endl; }
535 std::cout <<
" RPCRXRODDecode warning: CM Body or CM Footer expected and CM Header found" << std::endl;
540 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
543 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
546 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
549 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
552 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
566 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: previous record was not a CM Header" << std::endl; }
570 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: CM Body expected and CM SubHeader found" << std::endl; }
574 std::cout <<
" RPCRXRODDecode warning: CM Body or CM Footer expected; CM SubHeader found" << std::endl;
579 std::cout <<
" RPCRXRODDecode warning: CM Header or Pad Footer expected; CM SubHeader found" << std::endl;
583 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
586 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
589 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
592 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
595 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
609 std::cout <<
" RPCRXRODDecode (CMBody1) warning: previous record was not a CM subHeader"
610 <<
" or CM Body Record " << std::endl;
615 std::cout <<
" RPCRXRODDecode (CMBody2) warning: previous record was not a CM subHeader"
616 <<
" or CM Body Record " << std::endl;
623 std::cout <<
" RPCRXRODDecode (CMBody3) warning: previous record was not a CM subHeader"
624 <<
" or CM Body Record " << std::endl;
628 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
631 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
634 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
637 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
640 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord=" << std::endl; }
657 std::cout <<
" RPCRXRODDecode (CMFooter1) warning: previous record was not a Body record " << std::endl;
662 std::cout <<
" RPCRXRODDecode (CMFooter2) warning: previous record was not a Body record" << std::endl;
666 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: previous record was not a Body record" << std::endl; }
671 std::cout <<
" RPCRXRODDecode (CMFooter3) warning: previous record was not a Body record" << std::endl;
675 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
678 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
681 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
684 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
687 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord" << std::endl; }
705 std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and (reserved) found" << std::endl;
713 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and (reserved) found" << std::endl;
721 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and (reserved) found" << std::endl;
729 std::cout <<
" RPCRXRODDecode Fragment problem: CM Header or Pad Footer expected and (reserved) found" << std::endl;
733 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
736 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
739 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
742 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
745 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
751 if (thereIsACM) answer = 1;
752 if (thereIsASL) answer = 2;
761 std::cout <<
" number of Body Words in this CM Fragment " << nCMROData << std::endl;
768 std::cout <<
" gimeCMROData, CMID: " <<
CMROS.
cmid() << std::endl
769 <<
" gimeCMROData, FEL1ID: " <<
CMROS.
fel1id() << std::endl
779 std::cout <<
" gimeCMROData, FEBCID: " <<
CMROS.
febcid() << std::endl;
789 <<
" hit BCID: " <<
CMROS.
bcid() << std::endl;
790 }
else if (ijk == 6) {
791 std::cout <<
" gimeCMROData, trg chan: " <<
CMROS.
channel() <<
" hit BCID: " <<
CMROS.
bcid() << std::endl;
792 }
else if (ijk == 7) {
795 std::cout <<
" this value of ijk=" << ijk <<
" is NOT ALLOWED " << std::endl;
797 std::cout << std::endl;
855 std::cout <<
" status block position " << statusBlockPosition << std::endl;
856 std::cout <<
" number of Status Elements " << numberOfStatusElements << std::endl;
857 if (statusBlockPosition) {
866 std::cout <<
"*****************************************************" << std::endl
867 <<
"****** R O D H E A D E R *******" << std::endl
868 <<
"*****************************************************" << std::endl
869 <<
" ROD Header marker: " << std::hex <<
headerMarker << std::dec << std::endl
870 <<
" ROD Header size: " <<
headerSize << std::endl
871 <<
" ROD Format version number: " <<
formatVersion << std::endl
877 <<
" ROD Level1 ID: " <<
Level1ID << std::endl
878 <<
" ROD BuncgXingID: " <<
BunchXingID << std::endl
879 <<
" ROD Level1 Type: " <<
Level1Type << std::endl
881 <<
"*****************************************************" << std::endl;
ubit16 decodeFragment(ubit16 inputWord, char &field)
SectorLogicRXReadOutStructure SLROS
MatrixReadOutStructure getHeader()
MatrixReadOutStructure getSubHeader()
RODword DetectorEventType
void writeRecord(ubit16 thisRecord, bool last)
void RODAddresses(const RODword *RODData, const sbit32 numberOfStatusElements, const sbit32 statusBlockPosition)
ubit16 getSourceIDSubdetectorID()
ubit16 decodeFragment(ubit16 inputWord, char &field)
SectorLogicRXReadOut SLRO
ubit16 getSourceIDReserved()
ubit16 decodeFragment(ubit16 inputWord, char &field)
void RODHeader(const RODword *ROBData)
MatrixReadOutStructure getCMAHit(int index)
ubit16 SourceSubDetectorID
ubit16 numberOfBodyWords()
ubit16 getSourceIDModuleType()
MatrixReadOutStructure CMROS
ubit16 getSourceIDRODID()
int pushWord(const ubit16 inword, uint NOBXS)
void decodeSourceID(RODword sourceID)
void writeRecord(ubit16 thisRecord, bool last)
ubit16 decodeFragment(ubit16 inputWord, char &field)
unsigned short int ubit16
PadReadOutStructure PDROS