 |
ATLAS Offline Software
|
Go to the documentation of this file.
48 mask1[0] = 0x0000ffff;
49 mask1[1] = 0xffff0000;
52 return pushWord((inword & mask1[j]) >> shift[j], NOBXS);
112 bool thereIsACM =
false;
114 bool thereIsASL =
false;
117 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode; inword= " << std::hex << inword << std::dec << std::endl; }
133 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode: SectorLogic Header " << std::endl; }
143 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode: SectorLogic Footer " << std::endl; }
152 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode: SectorLogic Body " << std::endl; }
160 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode: RX Header " << std::endl; }
171 std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and RX Header found" << std::endl;
179 std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and and RX Header found" << std::endl;
187 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and RX Header found" << std::endl;
195 std::cout <<
" RPCRODDecode Fragment problem: CM Header or Pad Footer expected and RX Header found" << std::endl;
199 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
202 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
205 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
208 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
211 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
222 if (recField ==
'F') {}
230 std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and RX Footer found" << std::endl;
237 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and RX Footer found" << std::endl; }
244 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and and RX Footer found" << std::endl;
252 std::cout <<
" RPCRODDecode Fragment problem: CM Header or Pad Footer expected and RX Footer found" << std::endl;
256 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
259 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
262 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
265 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
268 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
276 if (
m_enablePrintOut) { std::cout <<
" PAD Header " << std::hex << inword << std::dec << std::endl; }
282 std::cout <<
" PAD " <<
PadID <<
" LVL1 " << std::hex << ((inword & 0x0e00) >> 8) << std::dec << std::endl;
288 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
294 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
301 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
309 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
312 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
315 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
318 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
321 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
329 if (
m_enablePrintOut) { std::cout <<
" BCID " << std::hex << (inword & 0x0fff) << std::dec << std::endl; }
333 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
339 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
346 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
353 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad Header expected and not found" << std::endl; }
356 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
359 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
362 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
365 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
368 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
376 if (
m_enablePrintOut) { std::cout <<
" STATUS ERROR " << std::hex << (inword & 0x000f) << std::dec << std::endl; }
380 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
386 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
393 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
401 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
404 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
407 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
410 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
413 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
422 std::cout <<
" PAD Footer " << std::hex << inword << std::dec <<
" ERROR FLAG " << std::hex << (inword & 0x0fff) << std::dec
427 if (recField ==
'F') {}
434 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
440 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
447 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
454 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected and not found" << std::endl; }
457 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
461 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
464 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
467 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
483 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode warning: CM SubHeader expected and CM Header found" << std::endl; }
488 std::cout <<
" RPCRODDecode warning: CM Body or CM Footer expected and CM Header found" << std::endl;
493 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
496 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
499 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
502 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
505 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
519 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode warning: previous record was not a CM Header" << std::endl; }
523 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode warning: CM Body expected and CM SubHeader found" << std::endl; }
527 std::cout <<
" RPCRODDecode warning: CM Body or CM Footer expected; CM SubHeader found" << std::endl;
532 std::cout <<
" RPCRODDecode warning: CM Header or Pad Footer expected; CM SubHeader found" << std::endl;
536 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
539 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
542 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
545 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
548 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
562 std::cout <<
" RPCRODDecode (CMBody1) warning: previous record was not a CM subHeader"
563 <<
" or CM Body Record " << std::endl;
568 std::cout <<
" RPCRODDecode (CMBody2) warning: previous record was not a CM subHeader"
569 <<
" or CM Body Record " << std::endl;
576 std::cout <<
" RPCRODDecode (CMBody3) warning: previous record was not a CM subHeader"
577 <<
" or CM Body Record " << std::endl;
581 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
584 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
587 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
590 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
593 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord=" << std::endl; }
610 std::cout <<
" RPCRODDecode (CMFooter1) warning: previous record was not a Body record " << std::endl;
615 std::cout <<
" RPCRODDecode (CMFooter2) warning: previous record was not a Body record" << std::endl;
619 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode warning: previous record was not a Body record" << std::endl; }
624 std::cout <<
" RPCRODDecode (CMFooter3) warning: previous record was not a Body record" << std::endl;
628 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
631 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
634 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
637 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
640 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord" << std::endl; }
658 std::cout <<
" RPCRODDecode Fragment problem: CM SubHeader expected and (reserved) found" << std::endl;
665 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CM Body expected and (reserved) found" << std::endl; }
672 std::cout <<
" RPCRODDecode Fragment problem: CM Body or Footer expected and (reserved) found" << std::endl;
680 std::cout <<
" RPCRODDecode Fragment problem: CM Header or Pad Footer expected and (reserved) found" << std::endl;
684 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
687 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA fragment expected" << std::endl; }
690 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: CMA Footer expected" << std::endl; }
693 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
696 if (
m_enablePrintOut) { std::cout <<
" RPCRODDecode ERROR in previousRecord " << std::endl; }
702 if (thereIsACM) answer = 1;
703 if (thereIsASL) answer = 2;
712 std::cout <<
" number of Body Words in this CM Fragment " << nCMROData << std::endl;
719 std::cout <<
" gimeCMROData, CMID: " <<
CMROS.
cmid() << std::endl
720 <<
" gimeCMROData, FEL1ID: " <<
CMROS.
fel1id() << std::endl
730 std::cout <<
" gimeCMROData, FEBCID: " <<
CMROS.
febcid() << std::endl;
740 <<
" hit BCID: " <<
CMROS.
bcid() << std::endl;
741 }
else if (ijk == 6) {
742 std::cout <<
" gimeCMROData, trg chan: " <<
CMROS.
channel() <<
" hit BCID: " <<
CMROS.
bcid() << std::endl;
743 }
else if (ijk == 7) {
746 std::cout <<
" this value of ijk=" << ijk <<
" is NOT ALLOWED " << std::endl;
748 std::cout << std::endl;
806 std::cout <<
" status block position " << statusBlockPosition << std::endl;
807 std::cout <<
" number of Status Elements " << numberOfStatusElements << std::endl;
808 if (statusBlockPosition) {
817 std::cout <<
"*****************************************************" << std::endl
818 <<
"****** R O D H E A D E R *******" << std::endl
819 <<
"*****************************************************" << std::endl
820 <<
" ROD Header marker: " << std::hex <<
headerMarker << std::dec << std::endl
821 <<
" ROD Header size: " <<
headerSize << std::endl
822 <<
" ROD Format version number: " <<
formatVersion << std::endl
828 <<
" ROD Level1 ID: " <<
Level1ID << std::endl
829 <<
" ROD BuncgXingID: " <<
BunchXingID << std::endl
830 <<
" ROD Level1 Type: " <<
Level1Type << std::endl
832 <<
"*****************************************************" << 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