|
ATLAS Offline Software
|
Go to the documentation of this file.
79 mask1[0] = 0x0000ffff;
80 mask1[1] = 0xffff0000;
83 return pushWord((inword & mask1[j]) >> shift[j], NOBXS);
143 bool thereIsACM =
false;
145 bool thereIsASL =
false;
148 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode; inword= " << std::hex << inword << std::dec << std::endl; }
164 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode: SectorLogic Header " << std::endl; }
174 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode: SectorLogic Footer " << std::endl; }
183 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode: SectorLogic Body " << std::endl; }
191 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode: RX Header " << std::endl; }
202 std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and RX Header found" << std::endl;
210 std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and and RX Header found" << std::endl;
218 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and RX Header found" << std::endl;
226 std::cout <<
" RPCRODDecode Fragment problem: CM Header or Pad Footer expected and RX Header found" << std::endl;
230 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
233 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
236 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
239 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
242 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
253 if (recField ==
'F') {}
261 std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and RX Footer found" << std::endl;
268 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and RX Footer found" << std::endl; }
275 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and and RX Footer found" << std::endl;
283 std::cout <<
" RPCRODDecode Fragment problem: CM Header or Pad Footer expected and RX Footer found" << std::endl;
287 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
290 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
293 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
296 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
299 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
307 if (
m_enablePrintOut) { std::cout <<
" PAD Header " << std::hex << inword << std::dec << std::endl; }
313 std::cout <<
" PAD " <<
PadID <<
" LVL1 " << std::hex << ((inword & 0x0e00) >> 8) << std::dec << std::endl;
319 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
325 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
332 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
340 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
343 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
346 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
349 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
352 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
360 if (
m_enablePrintOut) { std::cout <<
" BCID " << std::hex << (inword & 0x0fff) << std::dec << std::endl; }
364 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
370 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
377 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
384 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad Header expected and not found" << std::endl; }
387 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
390 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
393 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
396 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
399 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
407 if (
m_enablePrintOut) { std::cout <<
" STATUS ERROR " << std::hex << (inword & 0x000f) << std::dec << std::endl; }
411 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
417 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
424 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
432 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
435 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
438 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
441 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
444 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
453 std::cout <<
" PAD Footer " << std::hex << inword << std::dec <<
" ERROR FLAG " << std::hex << (inword & 0x0fff) << std::dec
458 if (recField ==
'F') {}
465 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
471 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
478 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
485 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected and not found" << std::endl; }
488 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
492 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
495 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
498 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
514 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode warning: CM SubHeader expected and CM Header found" << std::endl; }
519 std::cout <<
" RPCRODDecode warning: CM Body or CM Footer expected and CM Header found" << std::endl;
524 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
527 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
530 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
533 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
536 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
550 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode warning: previous record was not a CM Header" << std::endl; }
554 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode warning: CM Body expected and CM SubHeader found" << std::endl; }
558 std::cout <<
" RPCRODDecode warning: CM Body or CM Footer expected; CM SubHeader found" << std::endl;
563 std::cout <<
" RPCRODDecode warning: CM Header or Pad Footer expected; CM SubHeader found" << std::endl;
567 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
570 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
573 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
576 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
579 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
593 std::cout <<
" RPCRODDecode (CMBody1) warning: previous record was not a CM subHeader"
594 <<
" or CM Body Record " << std::endl;
599 std::cout <<
" RPCRODDecode (CMBody2) warning: previous record was not a CM subHeader"
600 <<
" or CM Body Record " << std::endl;
607 std::cout <<
" RPCRODDecode (CMBody3) warning: previous record was not a CM subHeader"
608 <<
" or CM Body Record " << std::endl;
612 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
615 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
618 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
621 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
624 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord=" << std::endl; }
641 std::cout <<
" RPCRODDecode (CMFooter1) warning: previous record was not a Body record " << std::endl;
646 std::cout <<
" RPCRODDecode (CMFooter2) warning: previous record was not a Body record" << std::endl;
650 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode warning: previous record was not a Body record" << std::endl; }
655 std::cout <<
" RPCRODDecode (CMFooter3) warning: previous record was not a Body record" << std::endl;
659 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
662 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
665 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
668 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
671 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord" << std::endl; }
689 std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and (reserved) found" << std::endl;
696 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and (reserved) found" << std::endl; }
703 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and (reserved) found" << std::endl;
711 std::cout <<
" RPCRODDecode Fragment problem: CM Header or Pad Footer expected and (reserved) found" << std::endl;
715 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
718 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
721 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
724 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
727 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
733 if (thereIsACM) answer = 1;
734 if (thereIsASL) answer = 2;
743 std::cout <<
" number of Body Words in this CM Fragment " << nCMROData << std::endl;
750 std::cout <<
" gimeCMROData, CMID: " <<
CMROS.
cmid() << std::endl
751 <<
" gimeCMROData, FEL1ID: " <<
CMROS.
fel1id() << std::endl
761 std::cout <<
" gimeCMROData, FEBCID: " <<
CMROS.
febcid() << std::endl;
771 <<
" hit BCID: " <<
CMROS.
bcid() << std::endl;
772 }
else if (ijk == 6) {
773 std::cout <<
" gimeCMROData, trg chan: " <<
CMROS.
channel() <<
" hit BCID: " <<
CMROS.
bcid() << std::endl;
774 }
else if (ijk == 7) {
777 std::cout <<
" this value of ijk=" << ijk <<
" is NOT ALLOWED " << std::endl;
779 std::cout << std::endl;
837 std::cout <<
" status block position " << statusBlockPosition << std::endl;
838 std::cout <<
" number of Status Elements " << numberOfStatusElements << std::endl;
839 if (statusBlockPosition) {
848 std::cout <<
"*****************************************************" << std::endl
849 <<
"****** R O D H E A D E R *******" << std::endl
850 <<
"*****************************************************" << std::endl
851 <<
" ROD Header marker: " << std::hex <<
headerMarker << std::dec << std::endl
852 <<
" ROD Header size: " <<
headerSize << std::endl
853 <<
" ROD Format version number: " <<
formatVersion << std::endl
859 <<
" ROD Level1 ID: " <<
Level1ID << std::endl
860 <<
" ROD BuncgXingID: " <<
BunchXingID << std::endl
861 <<
" ROD Level1 Type: " <<
Level1Type << std::endl
863 <<
"*****************************************************" << std::endl;
ubit16 decodeFragment(ubit16 inputWord, char &field)
ubit16 decodeFragment(ubit16 inputWord, char &field)
MatrixReadOutStructure CMROS
MatrixReadOutStructure getHeader()
MatrixReadOutStructure getSubHeader()
ubit16 SourceSubDetectorID
void RODHeader(const RODword *ROBData)
RODword DetectorEventType
ubit16 getSourceIDSubdetectorID()
void RODAddresses(const RODword *RODData, const sbit32 numberOfStatusElements, const sbit32 statusBlockPosition)
ubit16 decodeFragment(ubit16 inputWord, char &field)
ubit16 getSourceIDReserved()
void writeRecord(ubit16 newHit, bool last)
ubit16 decodeFragment(ubit16 inputWord, char &field)
PadReadOutStructure PDROS
MatrixReadOutStructure getCMAHit(int index)
ubit16 numberOfBodyWords()
ubit16 getSourceIDModuleType()
ubit16 getSourceIDRODID()
SectorLogicReadOutStructure SLROS
int pushWord(const ubit16 inword, uint NOBXS)
void decodeSourceID(RODword sourceID)
void writeRecord(ubit16 thisRecord, bool last)
unsigned short int ubit16