for(Int_t iddl=0;iddl<kNDDL;iddl++)
for(Int_t ierr=0; ierr < kSumErr; ierr++) fNumOfErr[iddl][ierr]=0; //reset errors
+
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AliHMPIDRawStream::~AliHMPIDRawStream()
do {
if (!fRawReader->ReadNextData(fData)) return kFALSE;
} while (fRawReader->GetDataSize() == 0);
+
+ Int_t runNumber = fRawReader->GetRunNumber();
+
+ Int_t ddlArray[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13};
+
+ // next line: fix for link chamber2 cables inversion for period LHC11d, LHC11e, LHC11f and LHC11h.
+ if(runNumber>=156620 && runNumber<=170593) {ddlArray[4] = 5; ddlArray[5] = 4;}
+ else {ddlArray[4] = 4; ddlArray[5] = 5;}
/*
Event type is selected as in $ALICE_ROOT/RAW/event.h
fPosition = 0;
Bool_t status=kFALSE;
fRawDataSize=0;
- fDDLNumber = fRawReader->GetDDLID();
+ fDDLNumber = -1;
+ if (fRawReader->GetDDLID()>=0)
+ fDDLNumber = ddlArray[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)
fnDDLInStream[fDDLNumber]=1; fnDDLOutStream[fDDLNumber]=0;
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;