- // Look over rows
- for(Int_t iRow = 1; iRow < kNRows; iRow++) {
- // Read row marker
- UInt_t rowMarker = GetNextWord() & 0x1ffffff;
- if (rowMarker != 0x1ea32a8) {
- fRawReader->AddMajorErrorLog(kRowMarkerErr);
- AliWarning(Form("Wrong row marker %x for row %d, expected 0xx1ea32a8!",rowMarker,iRow));
- return kTRUE;
- }
- UInt_t dilogic = 0, row = 0;
- for(Int_t iDILOGIC = 1; iDILOGIC < kNDILOGICAdd; iDILOGIC++) {
- // Read pad charges
- for(Int_t iPad = 0; iPad < kNPadAdd; iPad++) {
- UInt_t data = GetNextWord();
- row = (data >> 22) & 0x1f;
- if (row < 1 || row >= kNRows) {
- fRawReader->AddMajorErrorLog(kWrongRowErr,Form("row %d",row));
- AliWarning(Form("Wrong row index: %d, expected (1 -> %d)!",row,kNRows));
- row = iRow;
- }
- dilogic = (data >> 18) & 0xf;
- if (dilogic < 1 || dilogic >= kNDILOGICAdd) {
- fRawReader->AddMajorErrorLog(kWrongDilogicErr,Form("dil %d",dilogic));
- AliWarning(Form("Wrong DILOGIC index: %d, expected (1 -> %d)!",dilogic,kNDILOGICAdd));
- dilogic = iDILOGIC;
- }
- UInt_t pad = (data >> 12) & 0x3f;
- if (pad >= kNPadAdd) {
- fRawReader->AddMajorErrorLog(kWrongPadErr,Form("pad %d",pad));
- AliWarning(Form("Wrong pad index: %d, expected (0 -> %d)!",pad,kNPadAdd));
- pad = iPad;
- }
- fCharge[row][dilogic][pad] = data & 0xfff;
- }
- // Now read the end-of-event word
- UInt_t eOfEvent = GetNextWord() & 0xfffffff;
- if (!((eOfEvent >> 27) & 0x1)) {
- fRawReader->AddMajorErrorLog(kEoEFlagErr);
- AliWarning(Form("Missing end-of-event flag! (%x)",eOfEvent));
- return kTRUE;
- }
- UInt_t wc = eOfEvent & 0x7f;
- if (wc != 48) {
- fRawReader->AddMajorErrorLog(kEoESizeErr,Form("eoe size=%d",wc));
- AliWarning(Form("Wrong end-of-event word-count:%d, expected 48!",wc));
- return kTRUE;
- }
- UInt_t da = (eOfEvent >> 18) & 0xf;
- if (da != dilogic) {
- fRawReader->AddMajorErrorLog(kEoEDILOGICErr,Form("eoe dil %d != %d",da,dilogic));
- AliWarning(Form("Wrong DILOGIC address found in end-of-event: %d, expected %d!",da,dilogic));
- return kTRUE;
- }
- UInt_t ca = (eOfEvent >> 22) & 0x1f;
- if (ca != row) {
- fRawReader->AddMajorErrorLog(kEoERowErr,Form("eoe row %d != %d",ca,row));
- AliWarning(Form("Wrong row index found in end-of-event: %d, expected %d!",ca,row));
- return kTRUE;
- }
- }