X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=RAW%2FAliAltroBufferV3.cxx;h=13dff27431cf87043a5fcaa212997650c993f261;hb=b44d42aef3ae7543fdd2d313a9d91fea53c13d82;hp=13b46b42e3c3d1f8e366124478531cd24fe00416;hpb=aea0bb6b65bb20f229848153b411155ea994d4b6;p=u%2Fmrichter%2FAliRoot.git diff --git a/RAW/AliAltroBufferV3.cxx b/RAW/AliAltroBufferV3.cxx index 13b46b42e3c..13dff27431c 100644 --- a/RAW/AliAltroBufferV3.cxx +++ b/RAW/AliAltroBufferV3.cxx @@ -28,9 +28,20 @@ ClassImp(AliAltroBufferV3) //_____________________________________________________________________________ AliAltroBufferV3::AliAltroBufferV3(const char* fileName, AliAltroMapping *mapping): AliAltroBuffer(fileName,mapping), - fN(0) + fN(0), + fFECERRA(0), + fFECERRB(0), + fERRREG2(0), + fERRREG3(0), + fActiveFECsA(0xffff), + fActiveFECsB(0xffff), + fALTROCFG1(0), + fALTROCFG2(0), + fTSample(0), + fL1Phase(0) { // Constructor + memset(fArray, 0, kMaxWords*sizeof(UShort_t)); } //_____________________________________________________________________________ @@ -42,7 +53,17 @@ AliAltroBufferV3::~AliAltroBufferV3() //_____________________________________________________________________________ AliAltroBufferV3::AliAltroBufferV3(const AliAltroBufferV3& source): AliAltroBuffer(source), - fN(source.fN) + fN(source.fN), + fFECERRA(source.fFECERRA), + fFECERRB(source.fFECERRB), + fERRREG2(source.fERRREG2), + fERRREG3(source.fERRREG3), + fActiveFECsA(source.fActiveFECsA), + fActiveFECsB(source.fActiveFECsB), + fALTROCFG1(source.fALTROCFG1), + fALTROCFG2(source.fALTROCFG2), + fTSample(source.fTSample), + fL1Phase(source.fL1Phase) { // Copy Constructor @@ -53,6 +74,18 @@ AliAltroBufferV3::AliAltroBufferV3(const AliAltroBufferV3& source): AliAltroBufferV3& AliAltroBufferV3::operator = (const AliAltroBufferV3& /*source*/) { //Assigment operator +#if 0 + fFECERRA = source.fFECERRA; + fFECERRB = source.fFECERRB; + fERRREG2 = source.fERRREG2; + fERRREG3 = source.fERRREG3; + fActiveFECsA = source.fActiveFECsA; + fActiveFECsB = source.fActiveFECsB; + fALTROCFG1 = source.fALTROCFG1; + fALTROCFG2 = source.fALTROCFG2; + fTSample = source.fTSample; + fL1Phase = source.fL1Phase; +#endif Fatal("operator =", "assignment operator not implemented"); return *this; @@ -90,6 +123,16 @@ void AliAltroBufferV3::WriteTrailer(Int_t wordsNumber, Short_t hwAddress) ReverseAndWrite(); } +//_____________________________________________________________________________ +UInt_t AliAltroBufferV3::SetField(UInt_t& input, UShort_t start, UInt_t mask, UInt_t val) const +{ + UInt_t out = (mask << start); + UInt_t fld = (val << start) & out; + input &= ~out; + input |= fld; + return input; +} + //_____________________________________________________________________________ void AliAltroBufferV3::ReverseAndWrite() { @@ -126,7 +169,7 @@ UChar_t AliAltroBufferV3::WriteRCUTrailer(Int_t rcuId) UInt_t currentFilePos = fFile->Tellp(); UInt_t size = currentFilePos-fDataHeaderPos; - size -= sizeof(AliRawDataHeader); + size -= sizeof(AliRawDataHeaderV3); size /= 4; if (size > 0x3FFFFFF) { @@ -146,29 +189,34 @@ UChar_t AliAltroBufferV3::WriteRCUTrailer(Int_t rcuId) buffer = (0x1U << 26); buffer |= (0x1U << 31); fFile->WriteBuffer((char *)(&buffer),sizeof(UInt_t)); - - buffer = (0x2U << 26); + + buffer = (fERRREG2 & 0x3FFFFFF); + buffer |= (0x2U << 26); buffer |= (0x1U << 31); fFile->WriteBuffer((char *)(&buffer),sizeof(UInt_t)); - buffer = (0x3U << 26); + buffer = (fERRREG3 & 0x3FFFFFF); + buffer |= (0x3U << 26); buffer |= (0x1U << 31); fFile->WriteBuffer((char *)(&buffer),sizeof(UInt_t)); - buffer = 0x3FFFFFF; + buffer = (fActiveFECsA & 0x3FFFFFF); buffer |= (0x4U << 26); buffer |= (0x1U << 31); - fFile->WriteBuffer((char *)(&buffer),sizeof(UInt_t)); - buffer = 0x3FFFFFF; + fFile->WriteBuffer((char *)(&buffer),sizeof(UInt_t)); + + buffer = (fActiveFECsB & 0x3FFFFFF); buffer |= (0x5U << 26); buffer |= (0x1U << 31); fFile->WriteBuffer((char *)(&buffer),sizeof(UInt_t)); - buffer = (0x6U << 26); + buffer = (fALTROCFG1 & 0x3FFFFFF); + buffer |= (0x6U << 26); buffer |= (0x1U << 31); fFile->WriteBuffer((char *)(&buffer),sizeof(UInt_t)); - buffer = (0x7U << 26); + buffer = (fALTROCFG2 & 0x3FFFFFF); + buffer |= (0x7U << 26); buffer |= (0x1U << 31); fFile->WriteBuffer((char *)(&buffer),sizeof(UInt_t));