From: cvetan Date: Mon, 18 May 2009 09:53:38 +0000 (+0000) Subject: Update the RCU trailer reading accordingto the RCU frimware V2 user's manual. Thanks... X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=9283f3a555458c7d6797d4f5040fb65b2e432c38 Update the RCU trailer reading accordingto the RCU frimware V2 user's manual. Thanks to Jens for reporting the problem. --- diff --git a/RAW/AliAltroRawStreamV3.cxx b/RAW/AliAltroRawStreamV3.cxx index ff46c56164e..71f125aba0a 100644 --- a/RAW/AliAltroRawStreamV3.cxx +++ b/RAW/AliAltroRawStreamV3.cxx @@ -55,7 +55,6 @@ AliAltroRawStreamV3::AliAltroRawStreamV3(AliRawReader* rawReader) : fFECERRB(0), fERRREG2(0), fERRREG3(0), - fERRREG4(0), fActiveFECsA(0), fActiveFECsB(0), fAltroCFG1(0), @@ -97,7 +96,6 @@ AliAltroRawStreamV3::AliAltroRawStreamV3(const AliAltroRawStreamV3& stream) : fFECERRB(stream.fFECERRB), fERRREG2(stream.fERRREG2), fERRREG3(stream.fERRREG3), - fERRREG4(stream.fERRREG4), fActiveFECsA(stream.fActiveFECsA), fActiveFECsB(stream.fActiveFECsB), fAltroCFG1(stream.fAltroCFG1), @@ -135,7 +133,6 @@ AliAltroRawStreamV3& AliAltroRawStreamV3::operator = (const AliAltroRawStreamV3& fFECERRB = stream.fFECERRB; fERRREG2 = stream.fERRREG2; fERRREG3 = stream.fERRREG3; - fERRREG4 = stream.fERRREG4; fActiveFECsA = stream.fActiveFECsA; fActiveFECsB = stream.fActiveFECsB; fAltroCFG1 = stream.fAltroCFG1; @@ -163,7 +160,7 @@ void AliAltroRawStreamV3::Reset() fRCUTrailerData = NULL; fRCUTrailerSize = 0; - fFECERRA = fFECERRB = fERRREG2 = fERRREG3 = fERRREG4 = fActiveFECsA = fActiveFECsB = fAltroCFG1 = fAltroCFG2 = 0; + fFECERRA = fFECERRB = fERRREG2 = fERRREG3 = fActiveFECsA = fActiveFECsB = fAltroCFG1 = fAltroCFG2 = 0; if (fRawReader) fRawReader->Reset(); @@ -371,25 +368,21 @@ Bool_t AliAltroRawStreamV3::ReadRCUTrailer(UChar_t rcuVer) break; case 3: // ERR_REG3 - fERRREG3 = parData & 0xFFF; + fERRREG3 = parData & 0x1FFFFFF; break; case 4: - // ERR_REG4 - fERRREG4 = parData & 0xFFF; - break; - case 5: // FEC_RO_A fActiveFECsA = parData & 0xFFFF; break; - case 6: + case 5: // FEC_RO_B fActiveFECsB = parData & 0xFFFF; break; - case 7: + case 6: // RDO_CFG1 fAltroCFG1 = parData & 0xFFFFF; break; - case 8: + case 7: // RDO_CFG2 fAltroCFG2 = parData & 0x1FFFFFF; break; diff --git a/RAW/AliAltroRawStreamV3.h b/RAW/AliAltroRawStreamV3.h index 1f8633c6d3a..f7790a1b2ab 100644 --- a/RAW/AliAltroRawStreamV3.h +++ b/RAW/AliAltroRawStreamV3.h @@ -60,8 +60,8 @@ class AliAltroRawStreamV3: public TObject { UInt_t GetFECERRA() const { return fFECERRA; } UInt_t GetFECERRB() const { return fFECERRB; } UShort_t GetERRREG2() const { return fERRREG2; } - UShort_t GetNChAddrMismatch() const { return fERRREG3; } - UShort_t GetNChLengthMismatch() const { return fERRREG4; } + UShort_t GetNChAddrMismatch() const { return (fERRREG3 & 0xFFF); } + UShort_t GetNChLengthMismatch() const { return ((fERRREG3 >> 12) & 0x1FFF); } UShort_t GetActiveFECsA() const { return fActiveFECsA; } UShort_t GetActiveFECsB() const { return fActiveFECsB; } @@ -138,8 +138,7 @@ class AliAltroRawStreamV3: public TObject { UInt_t fFECERRA; // contains errors related to ALTROBUS transactions UInt_t fFECERRB; // contains errors related to ALTROBUS transactions UShort_t fERRREG2; // contains errors related to ALTROBUS transactions or trailer of ALTRO channel block - UShort_t fERRREG3; // contains number of altro channels skipped due to an address mismatch - UShort_t fERRREG4; // contains number of altro channels skipped due to a block length mismatch + UInt_t fERRREG3; // contains number of altro channels skipped due to an address mismatch UShort_t fActiveFECsA; // bit pattern of active FECs in branch A UShort_t fActiveFECsB; // bit pattern of active FECs in branch B UInt_t fAltroCFG1; // ALTROCFG1 register