fZeroSup(kTRUE),
fPos(0x0),
fiPos(0),
- fTurbo(kFALSE)
+ fTurbo(kFALSE),
+ fRawDataSize(0)
{
//
// Constructor
fZeroSup(kTRUE),
fPos(0x0),
fiPos(0),
- fTurbo(kFALSE)
+ fTurbo(kFALSE) ,
+ fRawDataSize(0)
{
//
// Constructor
for(Int_t iddl=0;iddl<kNDDL;iddl++)
for(Int_t ierr=0; ierr < kSumErr; ierr++) fNumOfErr[iddl][ierr]=0; //reset errors
+
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AliHMPIDRawStream::~AliHMPIDRawStream()
fWord=0;
fZeroSup=0;
fTurbo=0;
+ fRawDataSize=0;
for(Int_t i=0;i<kNDDL;i++) delete [] fNumOfErr[i];
delete [] fNumOfErr;
*/
fPosition = 0;
- Bool_t status=kTRUE;
- Int_t rawDataSize=0;
+ Bool_t status=kFALSE;
+ fRawDataSize=0;
+ fDDLNumber = fRawReader->GetDDLID();
+
+ if(fDDLNumber<0) {
+ AliWarning(Form("fDDLNumber not a acceptable value %i",fDDLNumber));
+ return kFALSE;
+ }
+
if(fRawReader->GetType() == 7 || fRawReader->GetType() == 8 ) { //New: Select Physics events, Old: Raw data size is not 0 and not 47148 (pedestal)
- fDDLNumber = fRawReader->GetDDLID();
fnDDLInStream[fDDLNumber]=1; fnDDLOutStream[fDDLNumber]=0;
fLDCNumber = fRawReader->GetLDCId();
fTimeStamp = fRawReader->GetTimestamp();
AliDebug(1,Form("DDL %i started to be decoded!",fDDLNumber));
- rawDataSize=fRawReader->GetDataSize()/4;
- DelVars(); //We have to delete the variables initialized in the InitVars before recall IntiVars!!!
- InitVars(rawDataSize); //To read the charge and pads we cannot delete before the status return
+ fRawDataSize=fRawReader->GetDataSize()/4;
+ DelVars(); //We have to delete the variables initialized in the InitVars before recall IntiVars!!!
+ InitVars(fRawDataSize); //To read the charge and pads we cannot delete before the status return
if(fTurbo==kTRUE) status=Turbo();
else status = ReadHMPIDRawData();
if(status) AliDebug(1,Form("Event DDL %i successfully decoded!.",fDDLNumber));
else AliDebug(1,Form("Event DDL %i ERROR in decoding!.",fDDLNumber));
-// DumpData(fRawReader->GetDataSize());
+ //DumpData(fRawReader->GetDataSize());
}
fPad = new Int_t[n];
//for debug purpose
fPos = new Int_t[4*n+4]; //reset debug
+ for(Int_t ie = 0 ; ie < 4*n+4; ie++) fPos[ie] = 0; //initialize for 0, otherwise the position is considered filled and will not be updated for the dump
fiPos = 0;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cnt--;
- while (cnt>0) {
-
+ while (cnt>20) { //counter limit is changed from 0 to 20 to take into account (skipp) the 5 extra words in the equipment header
nwSeg = (fWord >> kbit8) & 0xfff;
if(!CheckSegment()) return kFALSE;
if(!ReadSegment(cntSegment)) return kFALSE;