#include <Riostream.h>
#include <stdio.h>
#include <stdlib.h>
-#include "AliAltroBuffer.h"
+//#include "AliAltroBuffer.h"
+#include "AliAltroBufferV3.h"
#include "AliTPCAltroMapping.h"
#include "AliTPCDDLRawData.h"
-#include "AliRawDataHeader.h"
#include "AliDAQ.h"
ClassImp(AliTPCDDLRawData)
AliTPCDDLRawData& AliTPCDDLRawData::operator=(const AliTPCDDLRawData &source){
//Assigment operator
+ if (this == &source) return (*this);
fVerbose=source.fVerbose;
return *this;
}
DataPad data;
//AliAltroBuffer is used in write mode to generate raw data file
- char filename[15];
+ char filename[101];
Int_t ddlNumber=0;
AliAltroBuffer *buffer=NULL;
Int_t pSecNumber=-1; //Previous Sector number
ddlNumber=data.Sec*2+data.SubSec;
else
ddlNumber=72+(data.Sec-36)*4+data.SubSec;
- strcpy(filename,AliDAQ::DdlFileName("TPC",ddlNumber));
+ strncpy(filename,AliDAQ::DdlFileName("TPC",ddlNumber),100);
Int_t patchIndex = data.SubSec;
if(data.Sec>=36) patchIndex += 2;
- buffer=new AliAltroBuffer(filename,mapping[patchIndex]);
+ //buffer=new AliAltroBuffer(filename,mapping[patchIndex]);
+ buffer=new AliAltroBufferV3(filename,mapping[patchIndex]);
//size magic word sector number sub-sector number 0 for TPC 0 for uncompressed
buffer->WriteDataHeader(kTRUE,kFALSE);//Dummy;
bunchLength=1;
if ( (data.Time==(pTimeBin+1)) &&
(pPadNumber==data.Pad) &&
(pRowNumber==data.Row) &&
- (pSecNumber==data.Sec)){
+ (pSecNumber==data.Sec) &&
+ (pSubSector==data.SubSec)){
bunchLength++;
}//end if
else{
buffer->FillBuffer(pTimeBin);
buffer->FillBuffer(bunchLength+2);
nwords+=2;
- if ((pPadNumber!=data.Pad)||(pRowNumber!=data.Row)||(pSecNumber!=data.Sec)){
+ if ((pPadNumber!=data.Pad)||(pRowNumber!=data.Row)||(pSecNumber!=data.Sec)||(pSubSector!=data.SubSec)){
//Trailer is formatted and inserted!!
buffer->WriteTrailer(nwords,pPadNumber,pRowNumber,pSecNumber);
numPackets++;
nwords=0;
- if(pSubSector!=data.SubSec){
+ if(pSecNumber!=data.Sec || pSubSector!=data.SubSec){
//size magic word sector number sub-sector number 0 for TPC 0 for uncompressed
buffer->Flush();
buffer->WriteDataHeader(kFALSE,kFALSE);
ddlNumber=data.Sec*2+data.SubSec;
else
ddlNumber=72+(data.Sec-36)*4+data.SubSec;
- strcpy(filename,AliDAQ::DdlFileName("TPC",ddlNumber));
+ strncpy(filename,AliDAQ::DdlFileName("TPC",ddlNumber),100);
Int_t patchIndex = data.SubSec;
if(data.Sec>=36) patchIndex += 2;
- buffer=new AliAltroBuffer(filename,mapping[patchIndex]);
+ // buffer=new AliAltroBuffer(filename,mapping[patchIndex]);
+ buffer=new AliAltroBufferV3(filename,mapping[patchIndex]);
buffer->WriteDataHeader(kTRUE,kFALSE);//Dummy;
pSubSector=data.SubSec;
}//end if