#include "AliAltroRawStream.h"
#include "AliRawReader.h"
#include "AliLog.h"
#include "AliRawEventHeaderBase.h"
ClassImp(AliAltroRawStream)
AliAltroRawStream::AliAltroRawStream(AliRawReader* rawReader) :
fIsShortDataHeader(kFALSE),
fDDLNumber(-1),
fPrevDDLNumber(-1),
fRCUId(-1),
fPrevRCUId(-1),
fHWAddress(-1),
fPrevHWAddress(-1),
fTime(-1),
fPrevTime(-1),
fSignal(-1),
fTimeBunch(-1),
fRawReader(rawReader),
fData(NULL),
fPosition(0),
fCount(0),
fChannelPayloadSize(-1),
fBunchLength(0),
fRCUTrailerData(NULL),
fRCUTrailerSize(0),
fFECERRA(0),
fFECERRB(0),
fERRREG2(0),
fERRREG3(0),
fERRREG4(0),
fActiveFECsA(0),
fActiveFECsB(0),
fAltroCFG1(0),
fAltroCFG2(0)
{
}
AliAltroRawStream::AliAltroRawStream(const AliAltroRawStream& stream) :
TObject(stream),
fIsShortDataHeader(stream.fIsShortDataHeader),
fDDLNumber(stream.fDDLNumber),
fPrevDDLNumber(stream.fPrevDDLNumber),
fRCUId(stream.fRCUId),
fPrevRCUId(stream.fPrevRCUId),
fHWAddress(stream.fHWAddress),
fPrevHWAddress(stream.fPrevHWAddress),
fTime(stream.fTime),
fPrevTime(stream.fPrevTime),
fSignal(stream.fSignal),
fTimeBunch(stream.fTimeBunch),
fRawReader(stream.fRawReader),
fData(stream.fData),
fPosition(stream.fPosition),
fCount(stream.fCount),
fChannelPayloadSize(stream.fChannelPayloadSize),
fBunchLength(stream.fBunchLength),
fRCUTrailerData(stream.fRCUTrailerData),
fRCUTrailerSize(stream.fRCUTrailerSize),
fFECERRA(stream.fFECERRA),
fFECERRB(stream.fFECERRB),
fERRREG2(stream.fERRREG2),
fERRREG3(stream.fERRREG3),
fERRREG4(stream.fERRREG4),
fActiveFECsA(stream.fActiveFECsA),
fActiveFECsB(stream.fActiveFECsB),
fAltroCFG1(stream.fAltroCFG1),
fAltroCFG2(stream.fAltroCFG2)
{
}
AliAltroRawStream& AliAltroRawStream::operator = (const AliAltroRawStream& stream)
{
if(&stream == this) return *this;
fIsShortDataHeader = stream.fIsShortDataHeader;
fDDLNumber = stream.fDDLNumber;
fPrevDDLNumber = stream.fPrevDDLNumber;
fRCUId = stream.fRCUId;
fPrevRCUId = stream.fPrevRCUId;
fHWAddress = stream.fHWAddress;
fPrevHWAddress = stream.fPrevHWAddress;
fTime = stream.fTime;
fPrevTime = stream.fPrevTime;
fSignal = stream.fSignal;
fTimeBunch = stream.fTimeBunch;
fRawReader = stream.fRawReader;
fData = stream.fData;
fPosition = stream.fPosition;
fCount = stream.fCount;
fChannelPayloadSize= stream.fChannelPayloadSize;
fBunchLength = stream.fBunchLength;
fRCUTrailerData = stream.fRCUTrailerData;
fRCUTrailerSize = stream.fRCUTrailerSize;
fFECERRA = stream.fFECERRA;
fFECERRB = stream.fFECERRB;
fERRREG2 = stream.fERRREG2;
fERRREG3 = stream.fERRREG3;
fERRREG4 = stream.fERRREG4;
fActiveFECsA = stream.fActiveFECsA;
fActiveFECsB = stream.fActiveFECsB;
fAltroCFG1 = stream.fAltroCFG1;
fAltroCFG2 = stream.fAltroCFG2;
return *this;
}
AliAltroRawStream::~AliAltroRawStream()
{
}
void AliAltroRawStream::Reset()
{
fPosition = fCount = fBunchLength = 0;
fChannelPayloadSize = -1;
fRCUTrailerData = NULL;
fRCUTrailerSize = 0;
fFECERRA = fFECERRB = fERRREG2 = fERRREG3 = fERRREG4 = fActiveFECsA = fActiveFECsB = fAltroCFG1 = fAltroCFG2 = 0;
fDDLNumber = fPrevDDLNumber = fRCUId = fPrevRCUId = fHWAddress = fPrevHWAddress = fTime = fPrevTime = fSignal = fTimeBunch = -1;
if (fRawReader) fRawReader->Reset();
}
Bool_t AliAltroRawStream::Next()
{
fPrevDDLNumber = fDDLNumber;
fPrevRCUId = fRCUId;
fPrevHWAddress = fHWAddress;
fPrevTime = fTime;
while (fCount == 0) {
while (fPosition <= 0) {
do {
if (!fRawReader->ReadNextData(fData)) return kFALSE;
} while (fRawReader->GetDataSize() == 0);
fDDLNumber = fRawReader->GetDDLID();
fPosition = GetPosition();
}
ReadTrailer();
fBunchLength = 0;
}
if (fBunchLength == 0) ReadBunch();
else fTime--;
ReadAmplitude();
return kTRUE;
}
Bool_t AliAltroRawStream::NextDDL(UChar_t *data)
{
if (!data) {
do {
if (!fRawReader->ReadNextData(fData)) return kFALSE;
} while (fRawReader->GetDataSize() == 0);
}
else {
fData = data;
}
fDDLNumber = fRawReader->GetDDLID();
fChannelPayloadSize = -1;
fPosition = GetPosition();
return kTRUE;
}
Bool_t AliAltroRawStream::NextChannel()
{
if (fPosition <= 0) return kFALSE;
ReadTrailer();
return kTRUE;
}
Bool_t AliAltroRawStream::NextBunch(UShort_t *bunchData,
Int_t &bunchLength,
Int_t &startTimeBin)
{
if (fCount == 0) return kFALSE;
ReadBunch();
bunchLength = fTimeBunch;
startTimeBin = fTime;
while (fBunchLength > 0) {
ReadAmplitude();
bunchData[bunchLength-fBunchLength-1] = fSignal;
}
return kTRUE;
}
void AliAltroRawStream::SelectRawData(Int_t detId)
{
AliDebug(1,Form("Selecting raw data for detector %d",detId));
fRawReader->Select(detId);
}
void AliAltroRawStream::SelectRawData(const char *detName)
{
AliDebug(1,Form("Selecting raw data for detector %s",detName));
fRawReader->Select(detName);
}
UShort_t AliAltroRawStream::GetNextWord()
{
fPosition--;
Int_t iBit = fPosition * 10;
Int_t iByte = iBit / 8;
Int_t shift = iBit % 8;
Int_t iByteLow = iByte;
iByte++;
Int_t iByteHigh = iByte;
return ((fData[iByteHigh] * 256 + fData[iByteLow]) >> shift) & 0x03FF;
}
Bool_t AliAltroRawStream::ReadTrailer()
{
UShort_t temp;
Int_t nFillWords = 0;
while ((temp = GetNextWord()) == 0x2AA) nFillWords++;
if (nFillWords == 0) {
fRawReader->AddMajorErrorLog(kAltroTrailerErr,"no 0x2AA");
AliWarning(Form("Incorrect trailer found ! Expected 0x2AA not found (0x%x != 0x2AA) ! Current position %d, DDL=%d",
temp,fPosition,fDDLNumber));
while ((fPosition > 2) && (temp != 0x2AA)) temp = GetNextWord();
if (temp != 0x2AA) {
fCount = fPosition = 0;
return kFALSE;
}
temp = GetNextWord();
}
if (fPosition < 2) {
fRawReader->AddMajorErrorLog(kAltroTrailerErr,Form("size %d < 5",
fPosition));
AliWarning(Form("Incorrect raw data size ! Expected at least 5 words but found %d !",fPosition));
fCount = fPosition = 0;
return kFALSE;
}
fCount = (temp << 4) & 0x3FF;
if ((temp >> 6) != 0xA) {
fRawReader->AddMajorErrorLog(kAltroTrailerErr,"no 0xA");
AliWarning(Form("Incorrect trailer found ! Expecting 0xA but found 0x%x !",temp >> 6));
fCount = 0;
return kFALSE;
}
temp = GetNextWord();
fHWAddress = (temp & 0x3) << 10;
if (((temp >> 2) & 0xF) != 0xA) {
fRawReader->AddMajorErrorLog(kAltroTrailerErr,"no second 0xA");
AliWarning(Form("Incorrect trailer found ! Expecting second 0xA but found 0x%x !",(temp >> 2) & 0xF));
fCount = 0;
return kFALSE;
}
fCount |= ((temp & 0x3FF) >> 6);
fChannelPayloadSize = fCount;
if (fCount >= fPosition) {
fRawReader->AddMajorErrorLog(kAltroTrailerErr,"invalid size");
AliWarning(Form("Incorrect trailer found ! The altro payload size is invalid (%d >= %d) !",fCount,fPosition));
fCount = 0;
return kFALSE;
}
temp = GetNextWord();
fHWAddress |= temp;
fPosition -= (4 - (fCount % 4)) % 4;
return kTRUE;
}
void AliAltroRawStream::ReadBunch()
{
if (fCount <= 2) {
fRawReader->AddMinorErrorLog(kBunchLengthReadErr,"");
AliWarning(Form("Could not read bunch length and time bin ! Only %d 10-bit words are left !",fCount));
fBunchLength = fTimeBunch = fCount = 0;
return;
}
fBunchLength = GetNextWord() - 2;
if (fBunchLength > fCount) {
fRawReader->AddMinorErrorLog(kBunchLengthReadErr,Form("bl=%d",fBunchLength));
AliWarning(Form("Could not read bunch length ! Bunch length = %d (>%d)",fBunchLength,fCount));
fBunchLength = fTimeBunch = fCount = 0;
return;
}
fTimeBunch = fBunchLength;
fCount--;
fTime = GetNextWord();
fCount--;
return;
}
void AliAltroRawStream::ReadAmplitude()
{
if (fCount <= 0) {
fRawReader->AddMinorErrorLog(kAmplitudeReadErr,"");
AliWarning("Could not read sample amplitude !");
fCount = fSignal = fBunchLength = 0;
return;
}
fSignal = GetNextWord();
fCount--;
fBunchLength--;
return;
}
Int_t AliAltroRawStream::GetPosition()
{
Int_t index = fRawReader->GetDataSize();
UInt_t word = Get32bitWord(index);
if (((word >> 16) == 0xaaaa) || (word == 2)) {
Int_t trailerSize = 0;
if (word == 2) {
AliInfo("Old simulated raw data is assumed!");
trailerSize = 2;
fRCUId = 0;
}
else {
fRCUId = (Int_t)((word >> 7) & 0x1ff);
trailerSize = (word & 0x7F);
}
if (trailerSize < 2) {
fRawReader->AddMajorErrorLog(kRCUTrailerErr,Form("tr=%d bytes",
trailerSize*4));
AliWarning(Form("Invalid trailer size found (%d bytes) !",
trailerSize*4));
}
Int_t position = ReadRCUTrailer(index,trailerSize);
if (fRawReader->GetType() != AliRawEventHeaderBase::kStartOfData) {
position *= 5;
if (((fRawReader->GetDataSize() - trailerSize*4) < position) ||
((fRawReader->GetDataSize() - trailerSize*4) >= (position + 4))) {
fRawReader->AddMajorErrorLog(kRCUTrailerSizeErr,Form("h=%d tr=%d rcu=%d bytes",
fRawReader->GetDataSize(),
trailerSize*4,
position));
AliWarning(Form("Inconsistent raw data size ! Raw data size - %d bytes (from the header), RCU trailer - %d bytes, raw data paylod - %d bytes !",
fRawReader->GetDataSize(),
trailerSize*4,
position));
position = fRawReader->GetDataSize() - trailerSize*4;
}
return position * 8 / 10;
}
else {
return position;
}
}
else {
Int_t position = (Int_t)word;
fRCUId = -1;
fRCUTrailerSize = 0;
fRCUTrailerData = NULL;
position *= 5;
if (!fIsShortDataHeader) {
if (((fRawReader->GetDataSize() - 4) < position) ||
((fRawReader->GetDataSize() - 4) >= (position + 4))) {
fRawReader->AddMajorErrorLog(kRCUTrailerSizeErr,Form("h=%d rcu=%d bytes",
fRawReader->GetDataSize()-4,
position));
AliWarning(Form("Inconsistent raw data size ! Expected %d bytes (from the header), found %d bytes (in the RCU trailer)!",
fRawReader->GetDataSize()-4,
position));
position = fRawReader->GetDataSize()-4;
}
}
else {
if ((fRawReader->GetDataSize() < position) ||
(fRawReader->GetDataSize() >= (position + 4))) {
fRawReader->AddMajorErrorLog(kRCUTrailerSizeErr,Form("h=%d rcu=%d bytes",
fRawReader->GetDataSize(),
position));
AliWarning(Form("Inconsistent raw data size ! Expected %d bytes (from the header), found %d bytes (in the RCU trailer)!",
fRawReader->GetDataSize(),
position));
position = fRawReader->GetDataSize();
}
fData -= 4;
}
return position*8/10;
}
}
UInt_t AliAltroRawStream::Get32bitWord(Int_t &index)
{
if (!fData) {
PrintDebug();
AliFatal("Raw data paylod buffer is not yet initialized !");
}
if (index < 4) {
fRawReader->AddFatalErrorLog(k32bitWordReadErr,Form("pos = %d",index));
AliWarning(Form("Invalid raw data payload position (%d) !",index));
}
UInt_t word = 0;
word = fData[--index] << 24;
word |= fData[--index] << 16;
word |= fData[--index] << 8;
word |= fData[--index];
return word;
}
Int_t AliAltroRawStream::ReadRCUTrailer(Int_t &index, Int_t trailerSize)
{
fRCUTrailerSize = trailerSize*4;
for (trailerSize -= 2; trailerSize > 0; trailerSize--) {
Int_t word = Get32bitWord(index);
Int_t parCode = word >> 26;
Int_t parData = word & 0x3FFFFFF;
switch (parCode) {
case 1:
fFECERRA = ((parData >> 13) & 0x1FFF) << 7;
fFECERRB = ((parData & 0x1FFF)) << 7;
break;
case 2:
fERRREG2 = parData & 0x1FF;
break;
case 3:
fERRREG3 = parData & 0xFFF;
break;
case 4:
fERRREG4 = parData & 0xFFF;
break;
case 5:
fActiveFECsA = parData & 0xFFFF;
break;
case 6:
fActiveFECsB = parData & 0xFFFF;
break;
case 7:
fAltroCFG1 = parData & 0xFFFFF;
break;
case 8:
fAltroCFG2 = parData & 0x1FFFFFF;
break;
default:
fRawReader->AddMinorErrorLog(kRCUTrailerErr,"undef word");
AliWarning(Form("Undefined parameter code %d, ignore it !",
parCode));
break;
}
}
if (index < 4) {
fRawReader->AddMajorErrorLog(kRCUTrailerErr,Form("tr=%d raw=%d bytes",
fRCUTrailerSize,
fRawReader->GetDataSize()));
AliWarning(Form("Invalid trailer size found (%d bytes) ! The size is bigger than the raw data size (%d bytes)!",
fRCUTrailerSize,
fRawReader->GetDataSize()));
}
fRCUTrailerData = fData + index;
Int_t position = Get32bitWord(index);
return position;
}
Double_t AliAltroRawStream::GetTSample() const
{
if (!fRCUTrailerData) return 0.;
const Double_t kLHCTimeSample = 25.0e-9;
UChar_t fq = (fAltroCFG2 >> 5) & 0xF;
Double_t tSample;
switch (fq) {
case 0:
tSample = 2.0*kLHCTimeSample;
break;
case 1:
tSample = 4.0*kLHCTimeSample;
break;
case 2:
tSample = 8.0*kLHCTimeSample;
break;
default:
AliWarning(Form("Invalid sampling frequency value %d !",
fq));
tSample = 0.;
break;
}
return tSample;
}
Double_t AliAltroRawStream::GetL1Phase() const
{
if (!fRCUTrailerData) return 0.;
const Double_t kLHCTimeSample = 25.0e-9;
Double_t phase = ((Double_t)(fAltroCFG2 & 0x1F))*kLHCTimeSample;
Double_t tSample = GetTSample();
if (phase >= tSample) {
AliWarning(Form("Invalid L1 trigger phase (%f >= %f) !",
phase,tSample));
phase = 0.;
}
return phase;
}
void AliAltroRawStream::PrintRCUTrailer() const
{
printf("RCU trailer:\n===========\n");
printf("FECERRA: 0x%x\nFECERRB: 0x%x\n",fFECERRA,fFECERRB);
printf("ERRREG2: 0x%x\n",fERRREG2);
printf("#channels skipped due to address mismatch: %d\n",GetNChAddrMismatch());
printf("#channels skipped due to bad block length: %d\n",GetNChLengthMismatch());
printf("Active FECs (branch A): 0x%x\nActive FECs (branch B): 0x%x\n",fActiveFECsA,fActiveFECsB);
printf("Baseline corr: 0x%x\n",GetBaselineCorr());
printf("Number of presamples: %d\nNumber of postsamples: %d\n",GetNPresamples(),GetNPostsamples());
printf("Second baseline corr: %d\n",GetSecondBaselineCorr());
printf("GlitchFilter: %d\n",GetGlitchFilter());
printf("Number of non-ZS postsamples: %d\nNumber of non-ZS presamples: %d\n",GetNNonZSPostsamples(),GetNNonZSPresamples());
printf("Number of ALTRO buffers: %d\n",GetNAltroBuffers());
printf("Number of pretrigger samples: %d\n",GetNPretriggerSamples());
printf("Number of samples per channel: %d\n",GetNSamplesPerCh());
printf("Sparse readout: %d\n",GetSparseRO());
printf("Sampling time: %e s\n",GetTSample());
printf("L1 Phase: %e s\n",GetL1Phase());
printf("AltroCFG1: 0x%x\nAltroCFG2: 0x%x\n",GetAltroCFG1(),GetAltroCFG2());
printf("===========\n");
}
Bool_t AliAltroRawStream::GetRCUTrailerData(UChar_t*& data) const
{
if (!fRCUTrailerSize || !fRCUTrailerData) {
AliError("No valid RCU trailer data is found !");
data = NULL;
return kFALSE;
}
data = fRCUTrailerData;
return kTRUE;
}
void AliAltroRawStream::PrintDebug() const
{
AliError("Start of debug printout\n--------------------");
Dump();
if (fRawReader) fRawReader->Dump();
AliError("End of debug printout\n--------------------");
}
Int_t AliAltroRawStream::GetBranch() const
{
if (fHWAddress == -1) return -1;
return ((fHWAddress >> 11) & 0x1);
}
Int_t AliAltroRawStream::GetFEC() const
{
if (fHWAddress == -1) return -1;
return ((fHWAddress >> 7) & 0xF);
}
Int_t AliAltroRawStream::GetAltro() const
{
if (fHWAddress == -1) return -1;
return ((fHWAddress >> 4) & 0x7);
}
Int_t AliAltroRawStream::GetChannel() const
{
if (fHWAddress == -1) return -1;
return (fHWAddress & 0xF);
}
void AliAltroRawStream::AddMappingErrorLog(const char *message)
{
if (fRawReader) fRawReader->AddMinorErrorLog(kBadAltroMapping,message);
}
Int_t AliAltroRawStream::GetRCUPayloadSizeInSOD() const
{
if (fRawReader) {
if (fRawReader->GetType() == AliRawEventHeaderBase::kStartOfData) {
return fPosition;
}
}
return -1;
}
AliAltroRawStream.cxx:100 AliAltroRawStream.cxx:101 AliAltroRawStream.cxx:102 AliAltroRawStream.cxx:103 AliAltroRawStream.cxx:104 AliAltroRawStream.cxx:105 AliAltroRawStream.cxx:106 AliAltroRawStream.cxx:107 AliAltroRawStream.cxx:108 AliAltroRawStream.cxx:109 AliAltroRawStream.cxx:110 AliAltroRawStream.cxx:111 AliAltroRawStream.cxx:112 AliAltroRawStream.cxx:113 AliAltroRawStream.cxx:114 AliAltroRawStream.cxx:115 AliAltroRawStream.cxx:116 AliAltroRawStream.cxx:117 AliAltroRawStream.cxx:118 AliAltroRawStream.cxx:119 AliAltroRawStream.cxx:120 AliAltroRawStream.cxx:121 AliAltroRawStream.cxx:122 AliAltroRawStream.cxx:123 AliAltroRawStream.cxx:124 AliAltroRawStream.cxx:125 AliAltroRawStream.cxx:126 AliAltroRawStream.cxx:127 AliAltroRawStream.cxx:128 AliAltroRawStream.cxx:129 AliAltroRawStream.cxx:130 AliAltroRawStream.cxx:131 AliAltroRawStream.cxx:132 AliAltroRawStream.cxx:133 AliAltroRawStream.cxx:134 AliAltroRawStream.cxx:135 AliAltroRawStream.cxx:136 AliAltroRawStream.cxx:137 AliAltroRawStream.cxx:138 AliAltroRawStream.cxx:139 AliAltroRawStream.cxx:140 AliAltroRawStream.cxx:141 AliAltroRawStream.cxx:142 AliAltroRawStream.cxx:143 AliAltroRawStream.cxx:144 AliAltroRawStream.cxx:145 AliAltroRawStream.cxx:146 AliAltroRawStream.cxx:147 AliAltroRawStream.cxx:148 AliAltroRawStream.cxx:149 AliAltroRawStream.cxx:150 AliAltroRawStream.cxx:151 AliAltroRawStream.cxx:152 AliAltroRawStream.cxx:153 AliAltroRawStream.cxx:154 AliAltroRawStream.cxx:155 AliAltroRawStream.cxx:156 AliAltroRawStream.cxx:157 AliAltroRawStream.cxx:158 AliAltroRawStream.cxx:159 AliAltroRawStream.cxx:160 AliAltroRawStream.cxx:161 AliAltroRawStream.cxx:162 AliAltroRawStream.cxx:163 AliAltroRawStream.cxx:164 AliAltroRawStream.cxx:165 AliAltroRawStream.cxx:166 AliAltroRawStream.cxx:167 AliAltroRawStream.cxx:168 AliAltroRawStream.cxx:169 AliAltroRawStream.cxx:170 AliAltroRawStream.cxx:171 AliAltroRawStream.cxx:172 AliAltroRawStream.cxx:173 AliAltroRawStream.cxx:174 AliAltroRawStream.cxx:175 AliAltroRawStream.cxx:176 AliAltroRawStream.cxx:177 AliAltroRawStream.cxx:178 AliAltroRawStream.cxx:179 AliAltroRawStream.cxx:180 AliAltroRawStream.cxx:181 AliAltroRawStream.cxx:182 AliAltroRawStream.cxx:183 AliAltroRawStream.cxx:184 AliAltroRawStream.cxx:185 AliAltroRawStream.cxx:186 AliAltroRawStream.cxx:187 AliAltroRawStream.cxx:188 AliAltroRawStream.cxx:189 AliAltroRawStream.cxx:190 AliAltroRawStream.cxx:191 AliAltroRawStream.cxx:192 AliAltroRawStream.cxx:193 AliAltroRawStream.cxx:194 AliAltroRawStream.cxx:195 AliAltroRawStream.cxx:196 AliAltroRawStream.cxx:197 AliAltroRawStream.cxx:198 AliAltroRawStream.cxx:199 AliAltroRawStream.cxx:200 AliAltroRawStream.cxx:201 AliAltroRawStream.cxx:202 AliAltroRawStream.cxx:203 AliAltroRawStream.cxx:204 AliAltroRawStream.cxx:205 AliAltroRawStream.cxx:206 AliAltroRawStream.cxx:207 AliAltroRawStream.cxx:208 AliAltroRawStream.cxx:209 AliAltroRawStream.cxx:210 AliAltroRawStream.cxx:211 AliAltroRawStream.cxx:212 AliAltroRawStream.cxx:213 AliAltroRawStream.cxx:214 AliAltroRawStream.cxx:215 AliAltroRawStream.cxx:216 AliAltroRawStream.cxx:217 AliAltroRawStream.cxx:218 AliAltroRawStream.cxx:219 AliAltroRawStream.cxx:220 AliAltroRawStream.cxx:221 AliAltroRawStream.cxx:222 AliAltroRawStream.cxx:223 AliAltroRawStream.cxx:224 AliAltroRawStream.cxx:225 AliAltroRawStream.cxx:226 AliAltroRawStream.cxx:227 AliAltroRawStream.cxx:228 AliAltroRawStream.cxx:229 AliAltroRawStream.cxx:230 AliAltroRawStream.cxx:231 AliAltroRawStream.cxx:232 AliAltroRawStream.cxx:233 AliAltroRawStream.cxx:234 AliAltroRawStream.cxx:235 AliAltroRawStream.cxx:236 AliAltroRawStream.cxx:237 AliAltroRawStream.cxx:238 AliAltroRawStream.cxx:239 AliAltroRawStream.cxx:240 AliAltroRawStream.cxx:241 AliAltroRawStream.cxx:242 AliAltroRawStream.cxx:243 AliAltroRawStream.cxx:244 AliAltroRawStream.cxx:245 AliAltroRawStream.cxx:246 AliAltroRawStream.cxx:247 AliAltroRawStream.cxx:248 AliAltroRawStream.cxx:249 AliAltroRawStream.cxx:250 AliAltroRawStream.cxx:251 AliAltroRawStream.cxx:252 AliAltroRawStream.cxx:253 AliAltroRawStream.cxx:254 AliAltroRawStream.cxx:255 AliAltroRawStream.cxx:256 AliAltroRawStream.cxx:257 AliAltroRawStream.cxx:258 AliAltroRawStream.cxx:259 AliAltroRawStream.cxx:260 AliAltroRawStream.cxx:261 AliAltroRawStream.cxx:262 AliAltroRawStream.cxx:263 AliAltroRawStream.cxx:264 AliAltroRawStream.cxx:265 AliAltroRawStream.cxx:266 AliAltroRawStream.cxx:267 AliAltroRawStream.cxx:268 AliAltroRawStream.cxx:269 AliAltroRawStream.cxx:270 AliAltroRawStream.cxx:271 AliAltroRawStream.cxx:272 AliAltroRawStream.cxx:273 AliAltroRawStream.cxx:274 AliAltroRawStream.cxx:275 AliAltroRawStream.cxx:276 AliAltroRawStream.cxx:277 AliAltroRawStream.cxx:278 AliAltroRawStream.cxx:279 AliAltroRawStream.cxx:280 AliAltroRawStream.cxx:281 AliAltroRawStream.cxx:282 AliAltroRawStream.cxx:283 AliAltroRawStream.cxx:284 AliAltroRawStream.cxx:285 AliAltroRawStream.cxx:286 AliAltroRawStream.cxx:287 AliAltroRawStream.cxx:288 AliAltroRawStream.cxx:289 AliAltroRawStream.cxx:290 AliAltroRawStream.cxx:291 AliAltroRawStream.cxx:292 AliAltroRawStream.cxx:293 AliAltroRawStream.cxx:294 AliAltroRawStream.cxx:295 AliAltroRawStream.cxx:296 AliAltroRawStream.cxx:297 AliAltroRawStream.cxx:298 AliAltroRawStream.cxx:299 AliAltroRawStream.cxx:300 AliAltroRawStream.cxx:301 AliAltroRawStream.cxx:302 AliAltroRawStream.cxx:303 AliAltroRawStream.cxx:304 AliAltroRawStream.cxx:305 AliAltroRawStream.cxx:306 AliAltroRawStream.cxx:307 AliAltroRawStream.cxx:308 AliAltroRawStream.cxx:309 AliAltroRawStream.cxx:310 AliAltroRawStream.cxx:311 AliAltroRawStream.cxx:312 AliAltroRawStream.cxx:313 AliAltroRawStream.cxx:314 AliAltroRawStream.cxx:315 AliAltroRawStream.cxx:316 AliAltroRawStream.cxx:317 AliAltroRawStream.cxx:318 AliAltroRawStream.cxx:319 AliAltroRawStream.cxx:320 AliAltroRawStream.cxx:321 AliAltroRawStream.cxx:322 AliAltroRawStream.cxx:323 AliAltroRawStream.cxx:324 AliAltroRawStream.cxx:325 AliAltroRawStream.cxx:326 AliAltroRawStream.cxx:327 AliAltroRawStream.cxx:328 AliAltroRawStream.cxx:329 AliAltroRawStream.cxx:330 AliAltroRawStream.cxx:331 AliAltroRawStream.cxx:332 AliAltroRawStream.cxx:333 AliAltroRawStream.cxx:334 AliAltroRawStream.cxx:335 AliAltroRawStream.cxx:336 AliAltroRawStream.cxx:337 AliAltroRawStream.cxx:338 AliAltroRawStream.cxx:339 AliAltroRawStream.cxx:340 AliAltroRawStream.cxx:341 AliAltroRawStream.cxx:342 AliAltroRawStream.cxx:343 AliAltroRawStream.cxx:344 AliAltroRawStream.cxx:345 AliAltroRawStream.cxx:346 AliAltroRawStream.cxx:347 AliAltroRawStream.cxx:348 AliAltroRawStream.cxx:349 AliAltroRawStream.cxx:350 AliAltroRawStream.cxx:351 AliAltroRawStream.cxx:352 AliAltroRawStream.cxx:353 AliAltroRawStream.cxx:354 AliAltroRawStream.cxx:355 AliAltroRawStream.cxx:356 AliAltroRawStream.cxx:357 AliAltroRawStream.cxx:358 AliAltroRawStream.cxx:359 AliAltroRawStream.cxx:360 AliAltroRawStream.cxx:361 AliAltroRawStream.cxx:362 AliAltroRawStream.cxx:363 AliAltroRawStream.cxx:364 AliAltroRawStream.cxx:365 AliAltroRawStream.cxx:366 AliAltroRawStream.cxx:367 AliAltroRawStream.cxx:368 AliAltroRawStream.cxx:369 AliAltroRawStream.cxx:370 AliAltroRawStream.cxx:371 AliAltroRawStream.cxx:372 AliAltroRawStream.cxx:373 AliAltroRawStream.cxx:374 AliAltroRawStream.cxx:375 AliAltroRawStream.cxx:376 AliAltroRawStream.cxx:377 AliAltroRawStream.cxx:378 AliAltroRawStream.cxx:379 AliAltroRawStream.cxx:380 AliAltroRawStream.cxx:381 AliAltroRawStream.cxx:382 AliAltroRawStream.cxx:383 AliAltroRawStream.cxx:384 AliAltroRawStream.cxx:385 AliAltroRawStream.cxx:386 AliAltroRawStream.cxx:387 AliAltroRawStream.cxx:388 AliAltroRawStream.cxx:389 AliAltroRawStream.cxx:390 AliAltroRawStream.cxx:391 AliAltroRawStream.cxx:392 AliAltroRawStream.cxx:393 AliAltroRawStream.cxx:394 AliAltroRawStream.cxx:395 AliAltroRawStream.cxx:396 AliAltroRawStream.cxx:397 AliAltroRawStream.cxx:398 AliAltroRawStream.cxx:399 AliAltroRawStream.cxx:400 AliAltroRawStream.cxx:401 AliAltroRawStream.cxx:402 AliAltroRawStream.cxx:403 AliAltroRawStream.cxx:404 AliAltroRawStream.cxx:405 AliAltroRawStream.cxx:406 AliAltroRawStream.cxx:407 AliAltroRawStream.cxx:408 AliAltroRawStream.cxx:409 AliAltroRawStream.cxx:410 AliAltroRawStream.cxx:411 AliAltroRawStream.cxx:412 AliAltroRawStream.cxx:413 AliAltroRawStream.cxx:414 AliAltroRawStream.cxx:415 AliAltroRawStream.cxx:416 AliAltroRawStream.cxx:417 AliAltroRawStream.cxx:418 AliAltroRawStream.cxx:419 AliAltroRawStream.cxx:420 AliAltroRawStream.cxx:421 AliAltroRawStream.cxx:422 AliAltroRawStream.cxx:423 AliAltroRawStream.cxx:424 AliAltroRawStream.cxx:425 AliAltroRawStream.cxx:426 AliAltroRawStream.cxx:427 AliAltroRawStream.cxx:428 AliAltroRawStream.cxx:429 AliAltroRawStream.cxx:430 AliAltroRawStream.cxx:431 AliAltroRawStream.cxx:432 AliAltroRawStream.cxx:433 AliAltroRawStream.cxx:434 AliAltroRawStream.cxx:435 AliAltroRawStream.cxx:436 AliAltroRawStream.cxx:437 AliAltroRawStream.cxx:438 AliAltroRawStream.cxx:439 AliAltroRawStream.cxx:440 AliAltroRawStream.cxx:441 AliAltroRawStream.cxx:442 AliAltroRawStream.cxx:443 AliAltroRawStream.cxx:444 AliAltroRawStream.cxx:445 AliAltroRawStream.cxx:446 AliAltroRawStream.cxx:447 AliAltroRawStream.cxx:448 AliAltroRawStream.cxx:449 AliAltroRawStream.cxx:450 AliAltroRawStream.cxx:451 AliAltroRawStream.cxx:452 AliAltroRawStream.cxx:453 AliAltroRawStream.cxx:454 AliAltroRawStream.cxx:455 AliAltroRawStream.cxx:456 AliAltroRawStream.cxx:457 AliAltroRawStream.cxx:458 AliAltroRawStream.cxx:459 AliAltroRawStream.cxx:460 AliAltroRawStream.cxx:461 AliAltroRawStream.cxx:462 AliAltroRawStream.cxx:463 AliAltroRawStream.cxx:464 AliAltroRawStream.cxx:465 AliAltroRawStream.cxx:466 AliAltroRawStream.cxx:467 AliAltroRawStream.cxx:468 AliAltroRawStream.cxx:469 AliAltroRawStream.cxx:470 AliAltroRawStream.cxx:471 AliAltroRawStream.cxx:472 AliAltroRawStream.cxx:473 AliAltroRawStream.cxx:474 AliAltroRawStream.cxx:475 AliAltroRawStream.cxx:476 AliAltroRawStream.cxx:477 AliAltroRawStream.cxx:478 AliAltroRawStream.cxx:479 AliAltroRawStream.cxx:480 AliAltroRawStream.cxx:481 AliAltroRawStream.cxx:482 AliAltroRawStream.cxx:483 AliAltroRawStream.cxx:484 AliAltroRawStream.cxx:485 AliAltroRawStream.cxx:486 AliAltroRawStream.cxx:487 AliAltroRawStream.cxx:488 AliAltroRawStream.cxx:489 AliAltroRawStream.cxx:490 AliAltroRawStream.cxx:491 AliAltroRawStream.cxx:492 AliAltroRawStream.cxx:493 AliAltroRawStream.cxx:494 AliAltroRawStream.cxx:495 AliAltroRawStream.cxx:496 AliAltroRawStream.cxx:497 AliAltroRawStream.cxx:498 AliAltroRawStream.cxx:499 AliAltroRawStream.cxx:500 AliAltroRawStream.cxx:501 AliAltroRawStream.cxx:502 AliAltroRawStream.cxx:503 AliAltroRawStream.cxx:504 AliAltroRawStream.cxx:505 AliAltroRawStream.cxx:506 AliAltroRawStream.cxx:507 AliAltroRawStream.cxx:508 AliAltroRawStream.cxx:509 AliAltroRawStream.cxx:510 AliAltroRawStream.cxx:511 AliAltroRawStream.cxx:512 AliAltroRawStream.cxx:513 AliAltroRawStream.cxx:514 AliAltroRawStream.cxx:515 AliAltroRawStream.cxx:516 AliAltroRawStream.cxx:517 AliAltroRawStream.cxx:518 AliAltroRawStream.cxx:519 AliAltroRawStream.cxx:520 AliAltroRawStream.cxx:521 AliAltroRawStream.cxx:522 AliAltroRawStream.cxx:523 AliAltroRawStream.cxx:524 AliAltroRawStream.cxx:525 AliAltroRawStream.cxx:526 AliAltroRawStream.cxx:527 AliAltroRawStream.cxx:528 AliAltroRawStream.cxx:529 AliAltroRawStream.cxx:530 AliAltroRawStream.cxx:531 AliAltroRawStream.cxx:532 AliAltroRawStream.cxx:533 AliAltroRawStream.cxx:534 AliAltroRawStream.cxx:535 AliAltroRawStream.cxx:536 AliAltroRawStream.cxx:537 AliAltroRawStream.cxx:538 AliAltroRawStream.cxx:539 AliAltroRawStream.cxx:540 AliAltroRawStream.cxx:541 AliAltroRawStream.cxx:542 AliAltroRawStream.cxx:543 AliAltroRawStream.cxx:544 AliAltroRawStream.cxx:545 AliAltroRawStream.cxx:546 AliAltroRawStream.cxx:547 AliAltroRawStream.cxx:548 AliAltroRawStream.cxx:549 AliAltroRawStream.cxx:550 AliAltroRawStream.cxx:551 AliAltroRawStream.cxx:552 AliAltroRawStream.cxx:553 AliAltroRawStream.cxx:554 AliAltroRawStream.cxx:555 AliAltroRawStream.cxx:556 AliAltroRawStream.cxx:557 AliAltroRawStream.cxx:558 AliAltroRawStream.cxx:559 AliAltroRawStream.cxx:560 AliAltroRawStream.cxx:561 AliAltroRawStream.cxx:562 AliAltroRawStream.cxx:563 AliAltroRawStream.cxx:564 AliAltroRawStream.cxx:565 AliAltroRawStream.cxx:566 AliAltroRawStream.cxx:567 AliAltroRawStream.cxx:568 AliAltroRawStream.cxx:569 AliAltroRawStream.cxx:570 AliAltroRawStream.cxx:571 AliAltroRawStream.cxx:572 AliAltroRawStream.cxx:573 AliAltroRawStream.cxx:574 AliAltroRawStream.cxx:575 AliAltroRawStream.cxx:576 AliAltroRawStream.cxx:577 AliAltroRawStream.cxx:578 AliAltroRawStream.cxx:579 AliAltroRawStream.cxx:580 AliAltroRawStream.cxx:581 AliAltroRawStream.cxx:582 AliAltroRawStream.cxx:583 AliAltroRawStream.cxx:584 AliAltroRawStream.cxx:585 AliAltroRawStream.cxx:586 AliAltroRawStream.cxx:587 AliAltroRawStream.cxx:588 AliAltroRawStream.cxx:589 AliAltroRawStream.cxx:590 AliAltroRawStream.cxx:591 AliAltroRawStream.cxx:592 AliAltroRawStream.cxx:593 AliAltroRawStream.cxx:594 AliAltroRawStream.cxx:595 AliAltroRawStream.cxx:596 AliAltroRawStream.cxx:597 AliAltroRawStream.cxx:598 AliAltroRawStream.cxx:599 AliAltroRawStream.cxx:600 AliAltroRawStream.cxx:601 AliAltroRawStream.cxx:602 AliAltroRawStream.cxx:603 AliAltroRawStream.cxx:604 AliAltroRawStream.cxx:605 AliAltroRawStream.cxx:606 AliAltroRawStream.cxx:607 AliAltroRawStream.cxx:608 AliAltroRawStream.cxx:609 AliAltroRawStream.cxx:610 AliAltroRawStream.cxx:611 AliAltroRawStream.cxx:612 AliAltroRawStream.cxx:613 AliAltroRawStream.cxx:614 AliAltroRawStream.cxx:615 AliAltroRawStream.cxx:616 AliAltroRawStream.cxx:617 AliAltroRawStream.cxx:618 AliAltroRawStream.cxx:619 AliAltroRawStream.cxx:620 AliAltroRawStream.cxx:621 AliAltroRawStream.cxx:622 AliAltroRawStream.cxx:623 AliAltroRawStream.cxx:624 AliAltroRawStream.cxx:625 AliAltroRawStream.cxx:626 AliAltroRawStream.cxx:627 AliAltroRawStream.cxx:628 AliAltroRawStream.cxx:629 AliAltroRawStream.cxx:630 AliAltroRawStream.cxx:631 AliAltroRawStream.cxx:632 AliAltroRawStream.cxx:633 AliAltroRawStream.cxx:634 AliAltroRawStream.cxx:635 AliAltroRawStream.cxx:636 AliAltroRawStream.cxx:637 AliAltroRawStream.cxx:638 AliAltroRawStream.cxx:639 AliAltroRawStream.cxx:640 AliAltroRawStream.cxx:641 AliAltroRawStream.cxx:642 AliAltroRawStream.cxx:643 AliAltroRawStream.cxx:644 AliAltroRawStream.cxx:645 AliAltroRawStream.cxx:646 AliAltroRawStream.cxx:647 AliAltroRawStream.cxx:648 AliAltroRawStream.cxx:649 AliAltroRawStream.cxx:650 AliAltroRawStream.cxx:651 AliAltroRawStream.cxx:652 AliAltroRawStream.cxx:653 AliAltroRawStream.cxx:654 AliAltroRawStream.cxx:655 AliAltroRawStream.cxx:656 AliAltroRawStream.cxx:657 AliAltroRawStream.cxx:658 AliAltroRawStream.cxx:659 AliAltroRawStream.cxx:660 AliAltroRawStream.cxx:661 AliAltroRawStream.cxx:662 AliAltroRawStream.cxx:663 AliAltroRawStream.cxx:664 AliAltroRawStream.cxx:665 AliAltroRawStream.cxx:666 AliAltroRawStream.cxx:667 AliAltroRawStream.cxx:668 AliAltroRawStream.cxx:669 AliAltroRawStream.cxx:670 AliAltroRawStream.cxx:671 AliAltroRawStream.cxx:672 AliAltroRawStream.cxx:673 AliAltroRawStream.cxx:674 AliAltroRawStream.cxx:675 AliAltroRawStream.cxx:676 AliAltroRawStream.cxx:677 AliAltroRawStream.cxx:678 AliAltroRawStream.cxx:679 AliAltroRawStream.cxx:680 AliAltroRawStream.cxx:681 AliAltroRawStream.cxx:682 AliAltroRawStream.cxx:683 AliAltroRawStream.cxx:684 AliAltroRawStream.cxx:685 AliAltroRawStream.cxx:686 AliAltroRawStream.cxx:687 AliAltroRawStream.cxx:688 AliAltroRawStream.cxx:689 AliAltroRawStream.cxx:690 AliAltroRawStream.cxx:691 AliAltroRawStream.cxx:692 AliAltroRawStream.cxx:693 AliAltroRawStream.cxx:694 AliAltroRawStream.cxx:695 AliAltroRawStream.cxx:696 AliAltroRawStream.cxx:697 AliAltroRawStream.cxx:698 AliAltroRawStream.cxx:699 AliAltroRawStream.cxx:700 AliAltroRawStream.cxx:701 AliAltroRawStream.cxx:702 AliAltroRawStream.cxx:703 AliAltroRawStream.cxx:704 AliAltroRawStream.cxx:705 AliAltroRawStream.cxx:706 AliAltroRawStream.cxx:707 AliAltroRawStream.cxx:708 AliAltroRawStream.cxx:709 AliAltroRawStream.cxx:710 AliAltroRawStream.cxx:711 AliAltroRawStream.cxx:712 AliAltroRawStream.cxx:713 AliAltroRawStream.cxx:714 AliAltroRawStream.cxx:715 AliAltroRawStream.cxx:716 AliAltroRawStream.cxx:717 AliAltroRawStream.cxx:718 AliAltroRawStream.cxx:719 AliAltroRawStream.cxx:720 AliAltroRawStream.cxx:721 AliAltroRawStream.cxx:722 AliAltroRawStream.cxx:723 AliAltroRawStream.cxx:724 AliAltroRawStream.cxx:725 AliAltroRawStream.cxx:726 AliAltroRawStream.cxx:727 AliAltroRawStream.cxx:728 AliAltroRawStream.cxx:729 AliAltroRawStream.cxx:730 AliAltroRawStream.cxx:731 AliAltroRawStream.cxx:732 AliAltroRawStream.cxx:733 AliAltroRawStream.cxx:734 AliAltroRawStream.cxx:735 AliAltroRawStream.cxx:736 AliAltroRawStream.cxx:737 AliAltroRawStream.cxx:738 AliAltroRawStream.cxx:739 AliAltroRawStream.cxx:740 AliAltroRawStream.cxx:741 AliAltroRawStream.cxx:742 AliAltroRawStream.cxx:743 AliAltroRawStream.cxx:744 AliAltroRawStream.cxx:745 AliAltroRawStream.cxx:746 AliAltroRawStream.cxx:747 AliAltroRawStream.cxx:748 AliAltroRawStream.cxx:749 AliAltroRawStream.cxx:750 AliAltroRawStream.cxx:751 AliAltroRawStream.cxx:752 AliAltroRawStream.cxx:753 AliAltroRawStream.cxx:754 AliAltroRawStream.cxx:755 AliAltroRawStream.cxx:756 AliAltroRawStream.cxx:757 AliAltroRawStream.cxx:758 AliAltroRawStream.cxx:759 AliAltroRawStream.cxx:760 AliAltroRawStream.cxx:761 AliAltroRawStream.cxx:762 AliAltroRawStream.cxx:763 AliAltroRawStream.cxx:764 AliAltroRawStream.cxx:765 AliAltroRawStream.cxx:766 AliAltroRawStream.cxx:767 AliAltroRawStream.cxx:768 AliAltroRawStream.cxx:769 AliAltroRawStream.cxx:770 AliAltroRawStream.cxx:771 AliAltroRawStream.cxx:772 AliAltroRawStream.cxx:773 AliAltroRawStream.cxx:774 AliAltroRawStream.cxx:775 AliAltroRawStream.cxx:776 AliAltroRawStream.cxx:777 AliAltroRawStream.cxx:778 AliAltroRawStream.cxx:779 AliAltroRawStream.cxx:780 AliAltroRawStream.cxx:781 AliAltroRawStream.cxx:782 AliAltroRawStream.cxx:783 AliAltroRawStream.cxx:784 AliAltroRawStream.cxx:785 AliAltroRawStream.cxx:786 AliAltroRawStream.cxx:787 AliAltroRawStream.cxx:788 AliAltroRawStream.cxx:789 AliAltroRawStream.cxx:790 AliAltroRawStream.cxx:791 AliAltroRawStream.cxx:792 AliAltroRawStream.cxx:793 AliAltroRawStream.cxx:794 AliAltroRawStream.cxx:795 AliAltroRawStream.cxx:796 AliAltroRawStream.cxx:797 AliAltroRawStream.cxx:798 AliAltroRawStream.cxx:799 AliAltroRawStream.cxx:800 AliAltroRawStream.cxx:801 AliAltroRawStream.cxx:802 AliAltroRawStream.cxx:803 AliAltroRawStream.cxx:804 AliAltroRawStream.cxx:805 AliAltroRawStream.cxx:806 AliAltroRawStream.cxx:807 AliAltroRawStream.cxx:808 AliAltroRawStream.cxx:809 AliAltroRawStream.cxx:810 AliAltroRawStream.cxx:811 AliAltroRawStream.cxx:812 AliAltroRawStream.cxx:813 AliAltroRawStream.cxx:814 AliAltroRawStream.cxx:815 AliAltroRawStream.cxx:816 AliAltroRawStream.cxx:817 AliAltroRawStream.cxx:818 AliAltroRawStream.cxx:819 AliAltroRawStream.cxx:820 AliAltroRawStream.cxx:821 AliAltroRawStream.cxx:822