#include "AliHMPIDRawStream.h"
#include "AliRawReader.h"
#include "AliLog.h"
ClassImp(AliHMPIDRawStream)
AliHMPIDRawStream::AliHMPIDRawStream(AliRawReader* rawReader) :
fNPads(0),
fCharge(0x0),
fPad(0x0),
fDDLNumber(-1),
fnDDLInStream(0x0),
fnDDLOutStream(0x0),
fLDCNumber( 0),
fTimeStamp( 0),
fRawReader(rawReader),
fData(0x0),
fNumOfErr(0x0),
fPosition(-1),
fWord(0),
fZeroSup(kTRUE),
fPos(0x0),
fiPos(0),
fTurbo(kFALSE),
fRawDataSize(0)
{
fNumOfErr = new Int_t*[kNDDL];
for(Int_t i=0;i<kNDDL;i++) {
fNumOfErr[i] = new Int_t [kSumErr];
}
fnDDLInStream=new Int_t[kNDDL];
fnDDLOutStream=new Int_t[kNDDL];
for(Int_t iddl=0;iddl<kNDDL;iddl++) { fnDDLInStream[iddl]=-1;fnDDLOutStream[iddl]=-1;}
for(Int_t iddl=0;iddl<kNDDL;iddl++)
for(Int_t ierr=0; ierr < kSumErr; ierr++) fNumOfErr[iddl][ierr]=0;
fRawReader->Reset();
fRawReader->Select("HMPID");
}
AliHMPIDRawStream::AliHMPIDRawStream() :
fNPads(0),
fCharge(0x0),
fPad(0x0),
fDDLNumber(-1),
fnDDLInStream(0x0),
fnDDLOutStream(0x0),
fLDCNumber( 0),
fTimeStamp( 0),
fRawReader(0x0),
fData(0x0),
fNumOfErr(0x0),
fPosition(-1),
fWord(0),
fZeroSup(kTRUE),
fPos(0x0),
fiPos(0),
fTurbo(kFALSE) ,
fRawDataSize(0)
{
fNumOfErr = new Int_t*[kNDDL];
for(Int_t i=0;i<kNDDL;i++) {
fNumOfErr[i] = new Int_t [kSumErr];
}
fnDDLInStream=new Int_t[kNDDL];
fnDDLOutStream=new Int_t[kNDDL];
for(Int_t iddl=0;iddl<kNDDL;iddl++) { fnDDLInStream[iddl]=-1;fnDDLOutStream[iddl]=-1;}
for(Int_t iddl=0;iddl<kNDDL;iddl++)
for(Int_t ierr=0; ierr < kSumErr; ierr++) fNumOfErr[iddl][ierr]=0;
}
AliHMPIDRawStream::~AliHMPIDRawStream()
{
DelVars();
fDDLNumber=0;
fLDCNumber=0;
fTimeStamp=0;
fPosition=0;
fWord=0;
fZeroSup=0;
fTurbo=0;
fRawDataSize=0;
for(Int_t i=0;i<kNDDL;i++) delete [] fNumOfErr[i];
delete [] fNumOfErr;
delete [] fnDDLInStream;
delete [] fnDDLOutStream;
}
void AliHMPIDRawStream::Reset()
{
fDDLNumber = -1;
fLDCNumber = 0;
fTimeStamp = 0;
fPosition = -1;
fData = NULL;
if (fRawReader) fRawReader->Reset();
}
Bool_t AliHMPIDRawStream::Turbo()
{
Int_t row,dilogic;UInt_t pad;
Int_t cntGlob = fRawReader->GetDataSize()/4;
fPosition=0;
fNPads=0;
for(Int_t i=1;i<cntGlob;i++) {
if(!GetWord(1)) return kFALSE;
if (((fWord >> kbit27) & 1)) continue;
UInt_t statusControlRow = 0x32a8;
UInt_t rowControlWord = fWord >> kbit0 & 0xfbff;
if(rowControlWord == statusControlRow) continue;
row = (fWord >> kbit22) & 0x1f;
dilogic = (fWord >> kbit18) & 0xf;
pad = (fWord >> kbit12) & 0x3f;
if(!CheckPad(pad)) continue;
Int_t charge = fWord & 0xfff;
if(GetPad(fDDLNumber,row,dilogic,pad)<0) continue;
fPad[fNPads] = GetPad(fDDLNumber,row,dilogic,pad);
fCharge[fNPads] = charge;
fNPads++;
if(charge==0) fNumOfErr[fDDLNumber][kPedQZero]++;
}
return kTRUE;
}
Bool_t AliHMPIDRawStream::Next()
{
AliDebug(1,"Start.");
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};
if(runNumber>=156620 && runNumber<=170593) {ddlArray[4] = 5; ddlArray[5] = 4;}
else {ddlArray[4] = 4; ddlArray[5] = 5;}
fPosition = 0;
Bool_t status=kFALSE;
fRawDataSize=0;
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 ) {
fnDDLInStream[fDDLNumber]=1; fnDDLOutStream[fDDLNumber]=0;
fLDCNumber = fRawReader->GetLDCId();
fTimeStamp = fRawReader->GetTimestamp();
AliDebug(1,Form("DDL %i started to be decoded!",fDDLNumber));
fRawDataSize=fRawReader->GetDataSize()/4;
DelVars();
InitVars(fRawDataSize);
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));
}
if(status==kTRUE) {fnDDLOutStream[fDDLNumber]++; }
return kTRUE;
}
void AliHMPIDRawStream::InitVars(Int_t n)
{
fNPads = 0;
fCharge = new Int_t[n];
fPad = new Int_t[n];
fPos = new Int_t[4*n+4];
for(Int_t ie = 0 ; ie < 4*n+4; ie++) fPos[ie] = 0;
fiPos = 0;
}
void AliHMPIDRawStream::DelVars()
{
fNPads = 0;
if (fCharge) { delete [] fCharge; fCharge = 0x0; }
if (fPad) { delete [] fPad; fPad = 0x0; }
if (fPos) { delete [] fPos; fPos = 0x0; }
fiPos=0;
}
Bool_t AliHMPIDRawStream::ReadHMPIDRawData()
{
Int_t cntGlob = fRawReader->GetDataSize()/4;
if(cntGlob==0) {fNumOfErr[fDDLNumber][kRawDataSizeErr]++; return kFALSE; }
Int_t cnt = cntGlob;
Int_t nwSeg;
Int_t cntSegment;
if(!GetWord(cnt)) return kFALSE;
cnt--;
while (cnt>20) {
nwSeg = (fWord >> kbit8) & 0xfff;
if(!CheckSegment()) return kFALSE;
if(!ReadSegment(cntSegment)) return kFALSE;
if(nwSeg != cntSegment) {AliDebug(1,Form("Error in Segment counters: %i different wrt %i",nwSeg,cntSegment)); return kFALSE;}
if(!GetWord(cntSegment+1,kBwd)) return kFALSE;
cnt-=cntSegment+1;
}
return kTRUE;
}
Bool_t AliHMPIDRawStream::ReadSegment(Int_t &cntSegment)
{
cntSegment = (fWord >> kbit8) & 0xfff;
Int_t cnt = cntSegment;
Int_t cntRow;
Int_t nwRow;
if(!GetWord(cnt,kBwd)) return kFALSE;
while (cnt>0) {
cntRow = (fWord >> kbit16) & 0xfff;
if(!CheckRowMarker()) return kFALSE;
if(!ReadRow(nwRow)) return kFALSE;
if(nwRow != cntRow) {AliDebug(1,Form("Error in Row counters: %i different wrt %i",nwRow,cntRow)); return kFALSE;}
if(!GetWord(cntRow+1)) return kFALSE;
cnt -= cntRow+1;
}
cntSegment -= cnt;
return kTRUE;
}
Bool_t AliHMPIDRawStream::ReadRow(Int_t &cntRow)
{
Int_t cnt;
Int_t cntDilogic;
Int_t nwDil;
cntRow = (fWord >> kbit16) & 0xfff;
cnt = cntRow;
if(!GetWord(cntRow)) return kFALSE;
while (cnt>0) {
if(!CheckEoE(nwDil)) return kFALSE;
if(!ReadDilogic(cntDilogic)) return kFALSE;
if(nwDil != cntDilogic) {AliDebug(1,Form("Error in Dilogic counters: %i different wrt %i",nwDil,cntDilogic));return kFALSE;}
cnt -= cntDilogic;
if(!GetWord(1,kBwd)) return kFALSE;
cnt--;
}
cntRow -= cnt;
return kTRUE;
}
Bool_t AliHMPIDRawStream::ReadDilogic(Int_t &cntDilogic)
{
cntDilogic = fWord & 0x7f;
Int_t cnt = cntDilogic;
for(Int_t iDil=0;iDil<cntDilogic;iDil++) {
UInt_t dilogic = 0, row = 0;
if(!GetWord(1,kBwd)) return kFALSE;
cnt--;
row = (fWord >> kbit22) & 0x1f;
if(!CheckRow(row)) continue;
dilogic = (fWord >> kbit18) & 0xf;
if(!CheckDilogic(dilogic)) continue;
UInt_t pad = (fWord >> kbit12) & 0x3f;
if(!CheckPad(pad)) continue;
Int_t charge = fWord & 0xfff;
if(GetPad(fDDLNumber,row,dilogic,pad)<0) continue;
fPad[fNPads] = GetPad(fDDLNumber,row,dilogic,pad);
fCharge[fNPads] = charge;
fNPads++;
if(charge==0)
{
AliDebug(1,Form("If PEDESTAL run -> WARNING: ZERO charge is read from DDL: %d row: %d dil: %d pad: %d",fDDLNumber,row,dilogic,pad));
fNumOfErr[fDDLNumber][kPedQZero]++;
}
}
cntDilogic -= cnt;
return kTRUE;
}
Bool_t AliHMPIDRawStream::CheckSegment()
{
UInt_t markSegment = 0xAB0;
UInt_t segMarker = (fWord >> kbit20) & 0xfff;
if (segMarker != markSegment ) {
AliDebug(1,Form("Segment marker %X wrong (expected %0X)! at %i in word %0X!",segMarker,markSegment,fPosition,fWord));
fNumOfErr[fDDLNumber][kWrongSegErr]++;
return kFALSE;
}
UInt_t segAddress = fWord & 0xff;
if (segAddress<1 ||segAddress>3) {
AliDebug(1,Form("Segment address %d not in the valid range [1-3]",segAddress));
fNumOfErr[fDDLNumber][kWrongSegErr]++;
return kFALSE;
}
return kTRUE;
}
Bool_t AliHMPIDRawStream::CheckRow(UInt_t row)
{
if(row>=1 && row <=kNRows) return kTRUE;
AliDebug(1,Form("Wrong row index: %d, expected (1 -> %d) word %0X at %i...",row,kNRows,fWord,fPosition));
fNumOfErr[fDDLNumber][kWrongRowErr]++;
return kFALSE;
}
Bool_t AliHMPIDRawStream::CheckDilogic(UInt_t dilogic)
{
if (dilogic>= 1 && dilogic <=kNDILOGICAdd) return kTRUE;
AliDebug(1,Form("Wrong DILOGIC index: %d, expected (1 -> %d)!",dilogic,kNDILOGICAdd));
fNumOfErr[fDDLNumber][kWrongDilogicErr]++;
return kFALSE;
}
Bool_t AliHMPIDRawStream::CheckPad(UInt_t pad)
{
if (pad < kNPadAdd) return kTRUE;
AliDebug(1,Form("Wrong pad index: %d, expected (0 -> %d)!",pad,kNPadAdd));
fNumOfErr[fDDLNumber][kWrongPadErr]++;
return kFALSE;
}
Bool_t AliHMPIDRawStream::CheckEoE(Int_t &nDil)
{
if (!((fWord >> kbit27) & 0x1)) {
AliDebug(1,Form("Missing end-of-event flag! (%08X) at %i",fWord,fPosition));
fNumOfErr[fDDLNumber][kEoEFlagErr]++;
return kFALSE;
}
nDil = fWord & 0x7f;
if(nDil < 0 || nDil > 48 ) {
AliDebug(1,Form("Wrong end-of-event word-count: %08X",fWord));
fNumOfErr[fDDLNumber][kEoESizeErr]++;
return kFALSE;
}
return kTRUE;
}
Bool_t AliHMPIDRawStream::CheckRowMarker()
{
UInt_t nMAXwordsInRow = 0x1EA;
UInt_t statusControlRow = 0x32a8;
UInt_t rowControlWord = fWord >> kbit0 & 0xfbff;
if(rowControlWord != statusControlRow) {
AliDebug(1,Form("Wrong row marker %x expected 0x32a8!",rowControlWord));
fNumOfErr[fDDLNumber][kRowMarkerErr]++;
return kFALSE;
}
UInt_t wordsInRow = fWord >> kbit16 & 0x0fff;
if (wordsInRow > nMAXwordsInRow) {
AliDebug(1,Form(" FATAL: Number of words %x in a row exceeds the expected value: 0x1EA !",wordsInRow));
fNumOfErr[fDDLNumber][kRowMarkerSizeErr]++;
return kFALSE;
}
return kTRUE;
}
Bool_t AliHMPIDRawStream::GetWord(Int_t n,EDirection dir)
{
fWord = 0;
if (fPosition < 0) {
AliError("fPosition < 0 !!! Event skipped.");
fRawReader->AddMajorErrorLog(kRawDataSizeErr,"fPosition<0");
return kFALSE;
}
if(dir==kBwd) n = -n;
fPosition+=4*n-4;
if(fPosition==-4) return kTRUE;
if(fPosition<0 || fPosition > fRawReader->GetDataSize()) {
AliWarning(Form("fPosition out of boundaries %i",fPosition));
return kFALSE;
}
StorePosition();
fWord |= fData[fPosition++];
fWord |= fData[fPosition++] << 8;
fWord |= fData[fPosition++] << 16;
fWord |= fData[fPosition++] << 24;
return kTRUE;
}
void AliHMPIDRawStream::DumpData(Int_t nw)
{
for(Int_t i=0;i<nw;i+=4) {
if(!(i%16)) printf(" \n %8i) ",i);
printf("%02X%02X%02X%02X [ %06i ] ",fData[i+3],fData[i+2],fData[i+1],fData[i+0],fPos[i]);
}
Printf(" \n -----end of dump ----------- ");
}
void AliHMPIDRawStream::StorePosition()
{
if(fPos[fPosition]!=0) {
return;
}
fiPos++;
fPos[fPosition] = fiPos;
}
AliHMPIDRawStream.cxx:100 AliHMPIDRawStream.cxx:101 AliHMPIDRawStream.cxx:102 AliHMPIDRawStream.cxx:103 AliHMPIDRawStream.cxx:104 AliHMPIDRawStream.cxx:105 AliHMPIDRawStream.cxx:106 AliHMPIDRawStream.cxx:107 AliHMPIDRawStream.cxx:108 AliHMPIDRawStream.cxx:109 AliHMPIDRawStream.cxx:110 AliHMPIDRawStream.cxx:111 AliHMPIDRawStream.cxx:112 AliHMPIDRawStream.cxx:113 AliHMPIDRawStream.cxx:114 AliHMPIDRawStream.cxx:115 AliHMPIDRawStream.cxx:116 AliHMPIDRawStream.cxx:117 AliHMPIDRawStream.cxx:118 AliHMPIDRawStream.cxx:119 AliHMPIDRawStream.cxx:120 AliHMPIDRawStream.cxx:121 AliHMPIDRawStream.cxx:122 AliHMPIDRawStream.cxx:123 AliHMPIDRawStream.cxx:124 AliHMPIDRawStream.cxx:125 AliHMPIDRawStream.cxx:126 AliHMPIDRawStream.cxx:127 AliHMPIDRawStream.cxx:128 AliHMPIDRawStream.cxx:129 AliHMPIDRawStream.cxx:130 AliHMPIDRawStream.cxx:131 AliHMPIDRawStream.cxx:132 AliHMPIDRawStream.cxx:133 AliHMPIDRawStream.cxx:134 AliHMPIDRawStream.cxx:135 AliHMPIDRawStream.cxx:136 AliHMPIDRawStream.cxx:137 AliHMPIDRawStream.cxx:138 AliHMPIDRawStream.cxx:139 AliHMPIDRawStream.cxx:140 AliHMPIDRawStream.cxx:141 AliHMPIDRawStream.cxx:142 AliHMPIDRawStream.cxx:143 AliHMPIDRawStream.cxx:144 AliHMPIDRawStream.cxx:145 AliHMPIDRawStream.cxx:146 AliHMPIDRawStream.cxx:147 AliHMPIDRawStream.cxx:148 AliHMPIDRawStream.cxx:149 AliHMPIDRawStream.cxx:150 AliHMPIDRawStream.cxx:151 AliHMPIDRawStream.cxx:152 AliHMPIDRawStream.cxx:153 AliHMPIDRawStream.cxx:154 AliHMPIDRawStream.cxx:155 AliHMPIDRawStream.cxx:156 AliHMPIDRawStream.cxx:157 AliHMPIDRawStream.cxx:158 AliHMPIDRawStream.cxx:159 AliHMPIDRawStream.cxx:160 AliHMPIDRawStream.cxx:161 AliHMPIDRawStream.cxx:162 AliHMPIDRawStream.cxx:163 AliHMPIDRawStream.cxx:164 AliHMPIDRawStream.cxx:165 AliHMPIDRawStream.cxx:166 AliHMPIDRawStream.cxx:167 AliHMPIDRawStream.cxx:168 AliHMPIDRawStream.cxx:169 AliHMPIDRawStream.cxx:170 AliHMPIDRawStream.cxx:171 AliHMPIDRawStream.cxx:172 AliHMPIDRawStream.cxx:173 AliHMPIDRawStream.cxx:174 AliHMPIDRawStream.cxx:175 AliHMPIDRawStream.cxx:176 AliHMPIDRawStream.cxx:177 AliHMPIDRawStream.cxx:178 AliHMPIDRawStream.cxx:179 AliHMPIDRawStream.cxx:180 AliHMPIDRawStream.cxx:181 AliHMPIDRawStream.cxx:182 AliHMPIDRawStream.cxx:183 AliHMPIDRawStream.cxx:184 AliHMPIDRawStream.cxx:185 AliHMPIDRawStream.cxx:186 AliHMPIDRawStream.cxx:187 AliHMPIDRawStream.cxx:188 AliHMPIDRawStream.cxx:189 AliHMPIDRawStream.cxx:190 AliHMPIDRawStream.cxx:191 AliHMPIDRawStream.cxx:192 AliHMPIDRawStream.cxx:193 AliHMPIDRawStream.cxx:194 AliHMPIDRawStream.cxx:195 AliHMPIDRawStream.cxx:196 AliHMPIDRawStream.cxx:197 AliHMPIDRawStream.cxx:198 AliHMPIDRawStream.cxx:199 AliHMPIDRawStream.cxx:200 AliHMPIDRawStream.cxx:201 AliHMPIDRawStream.cxx:202 AliHMPIDRawStream.cxx:203 AliHMPIDRawStream.cxx:204 AliHMPIDRawStream.cxx:205 AliHMPIDRawStream.cxx:206 AliHMPIDRawStream.cxx:207 AliHMPIDRawStream.cxx:208 AliHMPIDRawStream.cxx:209 AliHMPIDRawStream.cxx:210 AliHMPIDRawStream.cxx:211 AliHMPIDRawStream.cxx:212 AliHMPIDRawStream.cxx:213 AliHMPIDRawStream.cxx:214 AliHMPIDRawStream.cxx:215 AliHMPIDRawStream.cxx:216 AliHMPIDRawStream.cxx:217 AliHMPIDRawStream.cxx:218 AliHMPIDRawStream.cxx:219 AliHMPIDRawStream.cxx:220 AliHMPIDRawStream.cxx:221 AliHMPIDRawStream.cxx:222 AliHMPIDRawStream.cxx:223 AliHMPIDRawStream.cxx:224 AliHMPIDRawStream.cxx:225 AliHMPIDRawStream.cxx:226 AliHMPIDRawStream.cxx:227 AliHMPIDRawStream.cxx:228 AliHMPIDRawStream.cxx:229 AliHMPIDRawStream.cxx:230 AliHMPIDRawStream.cxx:231 AliHMPIDRawStream.cxx:232 AliHMPIDRawStream.cxx:233 AliHMPIDRawStream.cxx:234 AliHMPIDRawStream.cxx:235 AliHMPIDRawStream.cxx:236 AliHMPIDRawStream.cxx:237 AliHMPIDRawStream.cxx:238 AliHMPIDRawStream.cxx:239 AliHMPIDRawStream.cxx:240 AliHMPIDRawStream.cxx:241 AliHMPIDRawStream.cxx:242 AliHMPIDRawStream.cxx:243 AliHMPIDRawStream.cxx:244 AliHMPIDRawStream.cxx:245 AliHMPIDRawStream.cxx:246 AliHMPIDRawStream.cxx:247 AliHMPIDRawStream.cxx:248 AliHMPIDRawStream.cxx:249 AliHMPIDRawStream.cxx:250 AliHMPIDRawStream.cxx:251 AliHMPIDRawStream.cxx:252 AliHMPIDRawStream.cxx:253 AliHMPIDRawStream.cxx:254 AliHMPIDRawStream.cxx:255 AliHMPIDRawStream.cxx:256 AliHMPIDRawStream.cxx:257 AliHMPIDRawStream.cxx:258 AliHMPIDRawStream.cxx:259 AliHMPIDRawStream.cxx:260 AliHMPIDRawStream.cxx:261 AliHMPIDRawStream.cxx:262 AliHMPIDRawStream.cxx:263 AliHMPIDRawStream.cxx:264 AliHMPIDRawStream.cxx:265 AliHMPIDRawStream.cxx:266 AliHMPIDRawStream.cxx:267 AliHMPIDRawStream.cxx:268 AliHMPIDRawStream.cxx:269 AliHMPIDRawStream.cxx:270 AliHMPIDRawStream.cxx:271 AliHMPIDRawStream.cxx:272 AliHMPIDRawStream.cxx:273 AliHMPIDRawStream.cxx:274 AliHMPIDRawStream.cxx:275 AliHMPIDRawStream.cxx:276 AliHMPIDRawStream.cxx:277 AliHMPIDRawStream.cxx:278 AliHMPIDRawStream.cxx:279 AliHMPIDRawStream.cxx:280 AliHMPIDRawStream.cxx:281 AliHMPIDRawStream.cxx:282 AliHMPIDRawStream.cxx:283 AliHMPIDRawStream.cxx:284 AliHMPIDRawStream.cxx:285 AliHMPIDRawStream.cxx:286 AliHMPIDRawStream.cxx:287 AliHMPIDRawStream.cxx:288 AliHMPIDRawStream.cxx:289 AliHMPIDRawStream.cxx:290 AliHMPIDRawStream.cxx:291 AliHMPIDRawStream.cxx:292 AliHMPIDRawStream.cxx:293 AliHMPIDRawStream.cxx:294 AliHMPIDRawStream.cxx:295 AliHMPIDRawStream.cxx:296 AliHMPIDRawStream.cxx:297 AliHMPIDRawStream.cxx:298 AliHMPIDRawStream.cxx:299 AliHMPIDRawStream.cxx:300 AliHMPIDRawStream.cxx:301 AliHMPIDRawStream.cxx:302 AliHMPIDRawStream.cxx:303 AliHMPIDRawStream.cxx:304 AliHMPIDRawStream.cxx:305 AliHMPIDRawStream.cxx:306 AliHMPIDRawStream.cxx:307 AliHMPIDRawStream.cxx:308 AliHMPIDRawStream.cxx:309 AliHMPIDRawStream.cxx:310 AliHMPIDRawStream.cxx:311 AliHMPIDRawStream.cxx:312 AliHMPIDRawStream.cxx:313 AliHMPIDRawStream.cxx:314 AliHMPIDRawStream.cxx:315 AliHMPIDRawStream.cxx:316 AliHMPIDRawStream.cxx:317 AliHMPIDRawStream.cxx:318 AliHMPIDRawStream.cxx:319 AliHMPIDRawStream.cxx:320 AliHMPIDRawStream.cxx:321 AliHMPIDRawStream.cxx:322 AliHMPIDRawStream.cxx:323 AliHMPIDRawStream.cxx:324 AliHMPIDRawStream.cxx:325 AliHMPIDRawStream.cxx:326 AliHMPIDRawStream.cxx:327 AliHMPIDRawStream.cxx:328 AliHMPIDRawStream.cxx:329 AliHMPIDRawStream.cxx:330 AliHMPIDRawStream.cxx:331 AliHMPIDRawStream.cxx:332 AliHMPIDRawStream.cxx:333 AliHMPIDRawStream.cxx:334 AliHMPIDRawStream.cxx:335 AliHMPIDRawStream.cxx:336 AliHMPIDRawStream.cxx:337 AliHMPIDRawStream.cxx:338 AliHMPIDRawStream.cxx:339 AliHMPIDRawStream.cxx:340 AliHMPIDRawStream.cxx:341 AliHMPIDRawStream.cxx:342 AliHMPIDRawStream.cxx:343 AliHMPIDRawStream.cxx:344 AliHMPIDRawStream.cxx:345 AliHMPIDRawStream.cxx:346 AliHMPIDRawStream.cxx:347 AliHMPIDRawStream.cxx:348 AliHMPIDRawStream.cxx:349 AliHMPIDRawStream.cxx:350 AliHMPIDRawStream.cxx:351 AliHMPIDRawStream.cxx:352 AliHMPIDRawStream.cxx:353 AliHMPIDRawStream.cxx:354 AliHMPIDRawStream.cxx:355 AliHMPIDRawStream.cxx:356 AliHMPIDRawStream.cxx:357 AliHMPIDRawStream.cxx:358 AliHMPIDRawStream.cxx:359 AliHMPIDRawStream.cxx:360 AliHMPIDRawStream.cxx:361 AliHMPIDRawStream.cxx:362 AliHMPIDRawStream.cxx:363 AliHMPIDRawStream.cxx:364 AliHMPIDRawStream.cxx:365 AliHMPIDRawStream.cxx:366 AliHMPIDRawStream.cxx:367 AliHMPIDRawStream.cxx:368 AliHMPIDRawStream.cxx:369 AliHMPIDRawStream.cxx:370 AliHMPIDRawStream.cxx:371 AliHMPIDRawStream.cxx:372 AliHMPIDRawStream.cxx:373 AliHMPIDRawStream.cxx:374 AliHMPIDRawStream.cxx:375 AliHMPIDRawStream.cxx:376 AliHMPIDRawStream.cxx:377 AliHMPIDRawStream.cxx:378 AliHMPIDRawStream.cxx:379 AliHMPIDRawStream.cxx:380 AliHMPIDRawStream.cxx:381 AliHMPIDRawStream.cxx:382 AliHMPIDRawStream.cxx:383 AliHMPIDRawStream.cxx:384 AliHMPIDRawStream.cxx:385 AliHMPIDRawStream.cxx:386 AliHMPIDRawStream.cxx:387 AliHMPIDRawStream.cxx:388 AliHMPIDRawStream.cxx:389 AliHMPIDRawStream.cxx:390 AliHMPIDRawStream.cxx:391 AliHMPIDRawStream.cxx:392 AliHMPIDRawStream.cxx:393 AliHMPIDRawStream.cxx:394 AliHMPIDRawStream.cxx:395 AliHMPIDRawStream.cxx:396 AliHMPIDRawStream.cxx:397 AliHMPIDRawStream.cxx:398 AliHMPIDRawStream.cxx:399 AliHMPIDRawStream.cxx:400 AliHMPIDRawStream.cxx:401 AliHMPIDRawStream.cxx:402 AliHMPIDRawStream.cxx:403 AliHMPIDRawStream.cxx:404 AliHMPIDRawStream.cxx:405 AliHMPIDRawStream.cxx:406 AliHMPIDRawStream.cxx:407 AliHMPIDRawStream.cxx:408 AliHMPIDRawStream.cxx:409 AliHMPIDRawStream.cxx:410 AliHMPIDRawStream.cxx:411 AliHMPIDRawStream.cxx:412 AliHMPIDRawStream.cxx:413 AliHMPIDRawStream.cxx:414 AliHMPIDRawStream.cxx:415 AliHMPIDRawStream.cxx:416 AliHMPIDRawStream.cxx:417 AliHMPIDRawStream.cxx:418 AliHMPIDRawStream.cxx:419 AliHMPIDRawStream.cxx:420 AliHMPIDRawStream.cxx:421 AliHMPIDRawStream.cxx:422 AliHMPIDRawStream.cxx:423 AliHMPIDRawStream.cxx:424 AliHMPIDRawStream.cxx:425 AliHMPIDRawStream.cxx:426 AliHMPIDRawStream.cxx:427 AliHMPIDRawStream.cxx:428 AliHMPIDRawStream.cxx:429 AliHMPIDRawStream.cxx:430 AliHMPIDRawStream.cxx:431 AliHMPIDRawStream.cxx:432 AliHMPIDRawStream.cxx:433 AliHMPIDRawStream.cxx:434 AliHMPIDRawStream.cxx:435 AliHMPIDRawStream.cxx:436 AliHMPIDRawStream.cxx:437 AliHMPIDRawStream.cxx:438 AliHMPIDRawStream.cxx:439 AliHMPIDRawStream.cxx:440 AliHMPIDRawStream.cxx:441 AliHMPIDRawStream.cxx:442 AliHMPIDRawStream.cxx:443 AliHMPIDRawStream.cxx:444 AliHMPIDRawStream.cxx:445 AliHMPIDRawStream.cxx:446 AliHMPIDRawStream.cxx:447 AliHMPIDRawStream.cxx:448 AliHMPIDRawStream.cxx:449 AliHMPIDRawStream.cxx:450 AliHMPIDRawStream.cxx:451 AliHMPIDRawStream.cxx:452 AliHMPIDRawStream.cxx:453 AliHMPIDRawStream.cxx:454 AliHMPIDRawStream.cxx:455 AliHMPIDRawStream.cxx:456 AliHMPIDRawStream.cxx:457 AliHMPIDRawStream.cxx:458 AliHMPIDRawStream.cxx:459 AliHMPIDRawStream.cxx:460 AliHMPIDRawStream.cxx:461 AliHMPIDRawStream.cxx:462 AliHMPIDRawStream.cxx:463 AliHMPIDRawStream.cxx:464 AliHMPIDRawStream.cxx:465 AliHMPIDRawStream.cxx:466 AliHMPIDRawStream.cxx:467 AliHMPIDRawStream.cxx:468 AliHMPIDRawStream.cxx:469 AliHMPIDRawStream.cxx:470 AliHMPIDRawStream.cxx:471 AliHMPIDRawStream.cxx:472 AliHMPIDRawStream.cxx:473 AliHMPIDRawStream.cxx:474 AliHMPIDRawStream.cxx:475 AliHMPIDRawStream.cxx:476 AliHMPIDRawStream.cxx:477 AliHMPIDRawStream.cxx:478 AliHMPIDRawStream.cxx:479 AliHMPIDRawStream.cxx:480 AliHMPIDRawStream.cxx:481 AliHMPIDRawStream.cxx:482 AliHMPIDRawStream.cxx:483 AliHMPIDRawStream.cxx:484 AliHMPIDRawStream.cxx:485 AliHMPIDRawStream.cxx:486 AliHMPIDRawStream.cxx:487 AliHMPIDRawStream.cxx:488 AliHMPIDRawStream.cxx:489 AliHMPIDRawStream.cxx:490 AliHMPIDRawStream.cxx:491 AliHMPIDRawStream.cxx:492 AliHMPIDRawStream.cxx:493 AliHMPIDRawStream.cxx:494 AliHMPIDRawStream.cxx:495 AliHMPIDRawStream.cxx:496 AliHMPIDRawStream.cxx:497 AliHMPIDRawStream.cxx:498 AliHMPIDRawStream.cxx:499 AliHMPIDRawStream.cxx:500 AliHMPIDRawStream.cxx:501 AliHMPIDRawStream.cxx:502 AliHMPIDRawStream.cxx:503 AliHMPIDRawStream.cxx:504 AliHMPIDRawStream.cxx:505 AliHMPIDRawStream.cxx:506 AliHMPIDRawStream.cxx:507 AliHMPIDRawStream.cxx:508 AliHMPIDRawStream.cxx:509 AliHMPIDRawStream.cxx:510 AliHMPIDRawStream.cxx:511 AliHMPIDRawStream.cxx:512 AliHMPIDRawStream.cxx:513 AliHMPIDRawStream.cxx:514 AliHMPIDRawStream.cxx:515 AliHMPIDRawStream.cxx:516 AliHMPIDRawStream.cxx:517 AliHMPIDRawStream.cxx:518 AliHMPIDRawStream.cxx:519 AliHMPIDRawStream.cxx:520 AliHMPIDRawStream.cxx:521 AliHMPIDRawStream.cxx:522 AliHMPIDRawStream.cxx:523 AliHMPIDRawStream.cxx:524 AliHMPIDRawStream.cxx:525 AliHMPIDRawStream.cxx:526 AliHMPIDRawStream.cxx:527 AliHMPIDRawStream.cxx:528 AliHMPIDRawStream.cxx:529 AliHMPIDRawStream.cxx:530 AliHMPIDRawStream.cxx:531 AliHMPIDRawStream.cxx:532 AliHMPIDRawStream.cxx:533 AliHMPIDRawStream.cxx:534 AliHMPIDRawStream.cxx:535 AliHMPIDRawStream.cxx:536 AliHMPIDRawStream.cxx:537 AliHMPIDRawStream.cxx:538 AliHMPIDRawStream.cxx:539 AliHMPIDRawStream.cxx:540 AliHMPIDRawStream.cxx:541 AliHMPIDRawStream.cxx:542 AliHMPIDRawStream.cxx:543 AliHMPIDRawStream.cxx:544 AliHMPIDRawStream.cxx:545 AliHMPIDRawStream.cxx:546 AliHMPIDRawStream.cxx:547 AliHMPIDRawStream.cxx:548 AliHMPIDRawStream.cxx:549 AliHMPIDRawStream.cxx:550 AliHMPIDRawStream.cxx:551 AliHMPIDRawStream.cxx:552 AliHMPIDRawStream.cxx:553 AliHMPIDRawStream.cxx:554 AliHMPIDRawStream.cxx:555 AliHMPIDRawStream.cxx:556 AliHMPIDRawStream.cxx:557 AliHMPIDRawStream.cxx:558 AliHMPIDRawStream.cxx:559 AliHMPIDRawStream.cxx:560 AliHMPIDRawStream.cxx:561 AliHMPIDRawStream.cxx:562 AliHMPIDRawStream.cxx:563 AliHMPIDRawStream.cxx:564 AliHMPIDRawStream.cxx:565 AliHMPIDRawStream.cxx:566 AliHMPIDRawStream.cxx:567 AliHMPIDRawStream.cxx:568 AliHMPIDRawStream.cxx:569 AliHMPIDRawStream.cxx:570 AliHMPIDRawStream.cxx:571 AliHMPIDRawStream.cxx:572 AliHMPIDRawStream.cxx:573 AliHMPIDRawStream.cxx:574 AliHMPIDRawStream.cxx:575 AliHMPIDRawStream.cxx:576 AliHMPIDRawStream.cxx:577 AliHMPIDRawStream.cxx:578 AliHMPIDRawStream.cxx:579 AliHMPIDRawStream.cxx:580 AliHMPIDRawStream.cxx:581 AliHMPIDRawStream.cxx:582 AliHMPIDRawStream.cxx:583 AliHMPIDRawStream.cxx:584 AliHMPIDRawStream.cxx:585 AliHMPIDRawStream.cxx:586 AliHMPIDRawStream.cxx:587 AliHMPIDRawStream.cxx:588 AliHMPIDRawStream.cxx:589 AliHMPIDRawStream.cxx:590 AliHMPIDRawStream.cxx:591 AliHMPIDRawStream.cxx:592 AliHMPIDRawStream.cxx:593 AliHMPIDRawStream.cxx:594 AliHMPIDRawStream.cxx:595 AliHMPIDRawStream.cxx:596 AliHMPIDRawStream.cxx:597 AliHMPIDRawStream.cxx:598 AliHMPIDRawStream.cxx:599 AliHMPIDRawStream.cxx:600 AliHMPIDRawStream.cxx:601 AliHMPIDRawStream.cxx:602 AliHMPIDRawStream.cxx:603 AliHMPIDRawStream.cxx:604 AliHMPIDRawStream.cxx:605 AliHMPIDRawStream.cxx:606 AliHMPIDRawStream.cxx:607 AliHMPIDRawStream.cxx:608 AliHMPIDRawStream.cxx:609 AliHMPIDRawStream.cxx:610 AliHMPIDRawStream.cxx:611 AliHMPIDRawStream.cxx:612 AliHMPIDRawStream.cxx:613 AliHMPIDRawStream.cxx:614 AliHMPIDRawStream.cxx:615 AliHMPIDRawStream.cxx:616 AliHMPIDRawStream.cxx:617 AliHMPIDRawStream.cxx:618 AliHMPIDRawStream.cxx:619 AliHMPIDRawStream.cxx:620 AliHMPIDRawStream.cxx:621