ROOT logo
///////////////////////////////////////////////////////////////////////
// Author: Henrik Tydesjo                                            //
// For easier handling of error messages from AliITSRawStreamSPD.    //
// The purpose of this class is to make possible the switch to the   //
// AliRoot raw data parsing routines in the onlinte monitoring       //
// programs, like SPD-MOOD, and still keep all the old functionality.//
///////////////////////////////////////////////////////////////////////

#include "AliITSRawStreamSPDErrorLog.h"
#include "AliLog.h"

/* $Id$ */

ClassImp(AliITSRawStreamSPDErrorLog)
//________________________________________________________________________________________________
AliITSRawStreamSPDErrorLog::AliITSRawStreamSPDErrorLog() :
  fText(NULL), fTextTmpGeneral(NULL)
{
  // default constructor
  fText=new TGText();
  fTextTmpGeneral=new TGText();
  for (UInt_t eq=0; eq<20; eq++) {
    fTextTmp[eq] = new TGText();
    fNEvents[eq] = 0;
    fByteOffset[eq] = 0;
    fSuppressEq[eq] = kFALSE;
    for (UInt_t err=0; err<kNrErrorCodes; err++) {
      fNErrors[err][eq] = 0;
      fNErrorsTotal[err][eq] = 0;
    }
  }
  for (UInt_t err=0; err<kNrErrorCodes; err++) {
    fSuppressMess[err] = kFALSE;
  }
  InitHistograms();
}
//________________________________________________________________________________________________
AliITSRawStreamSPDErrorLog::AliITSRawStreamSPDErrorLog(const AliITSRawStreamSPDErrorLog& logger) :
  TObject(logger), fText(NULL), fTextTmpGeneral(NULL)
{
  // copy constructor
  for (UInt_t eq=0; eq<20; eq++) {
    for (UInt_t err=0; err<kNrErrorCodes; err++) {
      fNErrors[err][eq] = logger.fNErrors[err][eq];
      fNErrorsTotal[err][eq] = logger.fNErrorsTotal[err][eq];
      fErrEventCounter[err][eq] = logger.fErrEventCounter[err][eq];
    }
    fNEvents[eq] = logger.fNEvents[eq];
    fByteOffset[eq] = logger.fByteOffset[eq];
    fSuppressEq[eq] = logger.fSuppressEq[eq];
  }
  for (UInt_t err=0; err<kNrErrorCodes; err++) {
    fSuppressMess[err] = logger.fSuppressMess[err];
  }
  
  fText = new TGText(logger.fText);
  fTextTmpGeneral = new TGText(logger.fTextTmpGeneral);
  for (UInt_t eq=0; eq<20; eq++) {
    fTextTmp[eq] = new TGText(logger.fTextTmp[eq]);
  }
  
  for (UInt_t eq=0; eq<20; eq++) {
    for (UInt_t err=0; err<kNrErrorCodes; err++) {
      fConsErrEvent[err][eq] = new TGraph(*logger.fConsErrEvent[err][eq]);
      fConsErrPos[err][eq] = new TGraph(*logger.fConsErrPos[err][eq]);
    }
    fConsErrType[eq] = new TH1F(*logger.fConsErrType[eq]);
    fConsErrType[eq]->SetDirectory(0);
    fConsErrFraction[eq] = new TH1F(*logger.fConsErrFraction[eq]);
    fConsErrFraction[eq]->SetDirectory(0);
  }
  
}
//________________________________________________________________________________________________
AliITSRawStreamSPDErrorLog& AliITSRawStreamSPDErrorLog::operator=(const AliITSRawStreamSPDErrorLog& logger) {
  // assignment operator
  if (this!=&logger) {
    delete fText;
    delete fTextTmpGeneral;
    for(Int_t eq=0; eq<20;eq++){
    delete fTextTmp[eq];
    }
    this->DeleteHistograms();

    for (UInt_t eq=0; eq<20; eq++) {
      for (UInt_t err=0; err<kNrErrorCodes; err++) {
	fNErrors[err][eq] = logger.fNErrors[err][eq];
	fNErrorsTotal[err][eq] = logger.fNErrorsTotal[err][eq];
	fErrEventCounter[err][eq] = logger.fErrEventCounter[err][eq];
      }
      fNEvents[eq] = logger.fNEvents[eq];
      fByteOffset[eq] = logger.fByteOffset[eq];
      fSuppressEq[eq] = logger.fSuppressEq[eq];
    }
    for (UInt_t err=0; err<kNrErrorCodes; err++) {
      fSuppressMess[err] = logger.fSuppressMess[err];
    }

    fText = new TGText(logger.fText);
    fTextTmpGeneral = new TGText(logger.fTextTmpGeneral);
    for (UInt_t eq=0; eq<20; eq++) {
      fTextTmp[eq] = new TGText(logger.fTextTmp[eq]);
    }
    
    for (UInt_t eq=0; eq<20; eq++) {
      for (UInt_t err=0; err<kNrErrorCodes; err++) {
	fConsErrEvent[err][eq] = new TGraph(*logger.fConsErrEvent[err][eq]);
	fConsErrPos[err][eq] = new TGraph(*logger.fConsErrPos[err][eq]);
      }
      fConsErrType[eq] = new TH1F(*logger.fConsErrType[eq]);
      fConsErrType[eq]->SetDirectory(0);
      fConsErrFraction[eq] = new TH1F(*logger.fConsErrFraction[eq]);
      fConsErrFraction[eq]->SetDirectory(0);
    }

  }
  return *this;
  
}
//________________________________________________________________________________________________
AliITSRawStreamSPDErrorLog::~AliITSRawStreamSPDErrorLog() {
  // destructor
  DeleteHistograms();
  delete fText;
  delete fTextTmpGeneral;
  for(Int_t eq=0; eq<20; eq++){
  delete fTextTmp[eq];
  }
}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::InitHistograms() {
  // initialize histograms
  for (UInt_t eq=0; eq<20; eq++) {
    TString histName, histTitle;
    histName = Form("ConsErrType %d",eq);
    histTitle = Form("Distribution of errors, eq %d",eq);
    fConsErrType[eq]=new TH1F(histName.Data(),histTitle.Data(),kNrErrorCodes,-0.5,kNrErrorCodes-0.5);
    fConsErrType[eq]->SetDirectory(0);
    fConsErrType[eq]->SetXTitle("Error Code");
    fConsErrType[eq]->SetYTitle("Nr Errors");
    
    histName = Form("ConsErrFraction %d",eq);
    histTitle = Form("Fraction of events with errors, eq %d",eq);
    fConsErrFraction[eq]=new TH1F(histName.Data(),histTitle.Data(),kNrErrorCodes,-0.5,kNrErrorCodes-0.5);
    fConsErrFraction[eq]->SetDirectory(0);
    fConsErrFraction[eq]->SetXTitle("Error Code");
    fConsErrFraction[eq]->SetYTitle("Fraction");
    
    for (UInt_t err=0; err<kNrErrorCodes; err++) {
      fConsErrEvent[err][eq]=new TGraph();
      fConsErrPos[err][eq]=new TGraph();
      fConsErrPosTMP[err][eq]=new TGraph();
      fErrEventCounter[err][eq] = 0;
      fErrPosCounter[err][eq] = 0;
      fErrPosTMPCounter[err][eq] = 0;
    }
  }
}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::DeleteHistograms() {
  // delete histograms
  for (UInt_t eq=0; eq<20; eq++) {
    delete fConsErrType[eq];
    delete fConsErrFraction[eq];
    for (UInt_t err=0; err<kNrErrorCodes; err++) {
      delete fConsErrEvent[err][eq];
      delete fConsErrPos[err][eq];
      delete fConsErrPosTMP[err][eq];
    }
  }
}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::Reset() {
  // Reset
  fText->Clear();
  fTextTmpGeneral->Clear();
  for (UInt_t eq=0; eq<20; eq++) {
    fTextTmp[eq]->Clear();
    fConsErrType[eq]->Reset();
    fConsErrFraction[eq]->Reset();
    fNEvents[eq] = 0;
    for (UInt_t err=0; err<kNrErrorCodes; err++) {
      fNErrors[err][eq] = 0;
      fNErrorsTotal[err][eq] = 0;
      delete fConsErrEvent[err][eq];
      delete fConsErrPos[err][eq];
      delete fConsErrPosTMP[err][eq];
      fErrEventCounter[err][eq] = 0;
      fErrPosCounter[err][eq] = 0;
      fErrPosTMPCounter[err][eq] = 0;
      fConsErrEvent[err][eq] = new TGraph();
      fConsErrPos[err][eq] = new TGraph();
      fConsErrPosTMP[err][eq] = new TGraph();
    }
  }
}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::ProcessError(UInt_t errorCode, UInt_t eq, Int_t bytesRead, Int_t headersRead, const Char_t *errMess) {
  // Process an error
  if (eq>=20) {
    AliWarning(Form("Equipment number (%d) out of bounds",eq));
    return;
  }
  // check if we want to exclude the error...
  if (!(fSuppressMess[errorCode] || fSuppressEq[eq])) {
    fNErrors[errorCode][eq]++;
    fNErrorsTotal[errorCode][eq]++;
    if (errorCode!=kTotal) {
      fNErrors[kTotal][eq]++;
      fNErrorsTotal[kTotal][eq]++;
    }

    if (bytesRead>=0) {
      fConsErrPosTMP[errorCode][eq]->SetPoint(fErrPosTMPCounter[errorCode][eq],0,bytesRead+fByteOffset[eq]);
      fErrPosTMPCounter[errorCode][eq]++;
      if (errorCode!=kTotal) {
	fConsErrPosTMP[kTotal][eq]->SetPoint(fErrPosTMPCounter[kTotal][eq],0,bytesRead+fByteOffset[eq]);
	fErrPosTMPCounter[kTotal][eq]++;
      }
    }

    TString msg;
    if (bytesRead<0) {
      msg = Form("%s",errMess);
    }
    else {
      msg = Form("%s (%d bytes read, %d chip headers read)",errMess,bytesRead+fByteOffset[eq],headersRead);
    }
    fTextTmp[eq]->InsLine(fTextTmp[eq]->RowCount(),msg.Data());
  }
}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::AddMessage(const Char_t *errMess) {
  // add a general message to the buffer
  fTextTmpGeneral->InsLine(fTextTmpGeneral->RowCount(),errMess);
}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::ResetEvent() {
  // reset error counters for current event
  for (UInt_t eq=0; eq<20; eq++) {
    for (UInt_t err=0; err<kNrErrorCodes; err++) {
      fNErrors[err][eq]=0;
    }
    fByteOffset[eq]=0;
    fTextTmpGeneral->Clear();
    fTextTmp[eq]->Clear();
  }

  for (UInt_t eq=0; eq<20; eq++) {
    for (UInt_t err=0; err<kNrErrorCodes; err++) {
      delete fConsErrPosTMP[err][eq];
      fErrPosTMPCounter[err][eq] = 0;
      fConsErrPosTMP[err][eq] = new TGraph();
    }
  }
}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::AddErrorMessagesFromCurrentEvent(UInt_t eventNum) {
  TString msg;
  if (fText->RowCount()>5000) {
    fText->Clear();
    msg = "*** previous errors cleared ***";
    fText->InsLine(fText->RowCount(),msg.Data());
  }
  if (fTextTmpGeneral->RowCount()>1) {
    msg = Form("*** Event %d , General Errors: ***",eventNum);
    fText->InsLine(fText->RowCount(),msg.Data());
    fText->AddText(fTextTmpGeneral);
    //    fTextTmpGeneral->Clear();
  }

  for (UInt_t eq=0; eq<20; eq++) {
    if (fNErrors[kTotal][eq]>0) {
      msg = Form("*** Event %d , Eq %d: ***",eventNum,eq);
      fText->InsLine(fText->RowCount(),msg.Data());
      fText->AddText(fTextTmp[eq]);
      fText->InsLine(fText->RowCount()," ");
    }
    //    fTextTmp[eq]->Clear();
  }
}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::ProcessEvent(UInt_t eventNum) {
  // summarize the information for the current event
//  TString msg;
//  if (fText->RowCount()>5000) {
//    fText->Clear();
//    msg = "*** previous errors cleared ***";
//    fText->InsLine(fText->RowCount(),msg.Data());
//  }
//  if (fTextTmpGeneral->RowCount()>1) {
//    msg = Form("*** Event %d , General Errors: ***",eventNum);
//    fText->InsLine(fText->RowCount(),msg.Data());
//    fText->AddText(fTextTmpGeneral);
//    fTextTmpGeneral->Clear();
//  }

  AddErrorMessagesFromCurrentEvent(eventNum);

  for (UInt_t eq=0; eq<20; eq++) {
    for (UInt_t err=0; err<kNrErrorCodes; err++) {
      fConsErrType[eq]->Fill(err,fNErrors[err][eq]);
      if (fNErrors[err][eq]>0) {
	fConsErrEvent[err][eq]->SetPoint(fErrEventCounter[err][eq],eventNum,fNErrors[err][eq]);
	fErrEventCounter[err][eq]++;
	fConsErrFraction[eq]->Fill(err);
      }
      for (UInt_t pind=0; pind<fErrPosTMPCounter[err][eq]; pind++) {
	Double_t x,y;
	fConsErrPosTMP[err][eq]->GetPoint(pind,x,y);
	fConsErrPos[err][eq]->SetPoint(fErrPosCounter[err][eq],eventNum,y);
	fErrPosCounter[err][eq]++;
      }
    }

    fNEvents[eq]++;
//    if (fNErrors[kTotal][eq]>0) {
//      msg = Form("*** Event %d , Eq %d: ***",eventNum,eq);
//      fText->InsLine(fText->RowCount(),msg.Data());
//      fText->AddText(fTextTmp[eq]);
//      fText->InsLine(fText->RowCount()," ");
//    }
//    fByteOffset[eq]=0;
//    fTextTmp[eq]->Clear();
  }

}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::SummarizeEvent(UInt_t eventNum) {
  // summarize the information for the current event 
  ProcessEvent(eventNum);
  ResetEvent();
}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::SetByteOffset(UInt_t eq, Int_t size) {
  // set byte offset (equipment header size)
  if (eq<20) {
    fByteOffset[eq]=size;
  }
  else {
    AliWarning(Form("Equipment number (%d) out of range",eq));
  }
}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::SuppressErrorMessages(UInt_t errorCode, Bool_t suppr) {
  // suppress error messages for specific error code
  if (errorCode<kNrErrorCodes) {
    fSuppressMess[errorCode] = suppr;
  }
  else {
    AliWarning(Form("Error code (%d) out of range",errorCode));
  }
}
//________________________________________________________________________________________________
void AliITSRawStreamSPDErrorLog::SuppressErrorEq(UInt_t eq, Bool_t suppr) {
  // suppress error messages for specific equipment
  if (eq<20) {
    fSuppressEq[eq] = suppr;
  }
  else {
    AliWarning(Form("Eq id (%d) out of range",eq));
  }
}
//________________________________________________________________________________________________
UInt_t AliITSRawStreamSPDErrorLog::GetNrErrors(UInt_t errorCode, UInt_t eq) {
  // returns the number of errors for this event for a specific error code and equipment
  if (errorCode<kNrErrorCodes && eq<20) return fNErrors[errorCode][eq];
  else {
    AliWarning(Form("Error code (%d) or equipment (%d) out of range, returning 0",errorCode,eq));
    return 0;
  }
}
//________________________________________________________________________________________________
UInt_t AliITSRawStreamSPDErrorLog::GetNrErrorsAllEq(UInt_t errorCode) {
  // returns the number of errors for this event for a specific error code and all equipments
  if (errorCode<kNrErrorCodes) {
    UInt_t returnval=0;
    for (UInt_t eq=0; eq<20; eq++) {
      returnval += fNErrors[errorCode][eq];
    }
    return returnval;
  }
  else {
    AliWarning(Form("Error code (%d) out of range, returning 0",errorCode));
    return 0;
  }
}
//________________________________________________________________________________________________
UInt_t AliITSRawStreamSPDErrorLog::GetNrErrorsTotal(UInt_t errorCode, UInt_t eq) {
  // returns the total number of errors for a specific error code and equipment
  if (errorCode<kNrErrorCodes && eq<20) {
    return fNErrorsTotal[errorCode][eq];
    //    return (UInt_t) fConsErrType[eq]->GetBinContent(errorCode+1);
  }
  else {
    AliWarning(Form("Error code (%d) or equipment (%d) out of range, returning 0",errorCode,eq));
    return 0;
  }
}
//________________________________________________________________________________________________
UInt_t AliITSRawStreamSPDErrorLog::GetNrErrorsTotalAllEq(UInt_t errorCode) {
  // returns the total number of errors for a specific error code and for all equipments
  if (errorCode<kNrErrorCodes) {
    UInt_t returnval=0;
    for (UInt_t eq=0; eq<20; eq++) {
      returnval += fNErrorsTotal[errorCode][eq];
      //      returnval += (UInt_t) fConsErrType[eq]->GetBinContent(errorCode+1);
    }
    return returnval;
  }
  else {
    AliWarning(Form("Error code (%d) out of range, returning 0",errorCode));
    return 0;
  }
}
//________________________________________________________________________________________________
TGraph* AliITSRawStreamSPDErrorLog::GetConsErrEvent(UInt_t errorCode, UInt_t eq) {
  // returns a pointer to the graph
  if (errorCode<kNrErrorCodes && eq<20) return fConsErrEvent[errorCode][eq];
  else {
    AliWarning(Form("Error code (%d) or equipment (%d) out of range, returning NULL",errorCode,eq));
    return NULL;
  }
}
//________________________________________________________________________________________________
TH1F* AliITSRawStreamSPDErrorLog::GetConsErrType(UInt_t eq) {
  // returns a pointer to the histogram
  if (eq<20) return fConsErrType[eq];
  else {
    AliWarning(Form("Eq nr (%d) out of bounds",eq));
    return NULL;
  }
}
//________________________________________________________________________________________________
TH1F* AliITSRawStreamSPDErrorLog::GetConsErrFraction(UInt_t eq) {
  // creates a new histogram and returns a pointer to it. 
  // NB!!! Take care of deleting this object later
  if (eq<20) {
    TH1F* returnhisto = (TH1F*)(fConsErrFraction[eq]->Clone());
    if (fNEvents[eq]!=0) returnhisto->Scale(1./fNEvents[eq]);
    //    returnhisto->SetMaximum(1.);
    return returnhisto;
  }
  else {
    AliWarning(Form("Eq nr (%d) out of bounds",eq));
    return NULL;
  }
}
//________________________________________________________________________________________________
TH1F* AliITSRawStreamSPDErrorLog::GetConsErrFractionUnScaled(UInt_t eq) {
  // returns a pointer to the histogram
  if (eq<20) return fConsErrFraction[eq];
  else {
    AliWarning(Form("Eq nr (%d) out of bounds",eq));
    return NULL;
  }
}
//________________________________________________________________________________________________
TGraph* AliITSRawStreamSPDErrorLog::GetConsErrPos(UInt_t errorCode, UInt_t eq) {
  // returns a pointer to the histogram
  if (errorCode<kNrErrorCodes && eq<20) return fConsErrPos[errorCode][eq];
  else {
    AliWarning(Form("Error code (%d) or equipment (%d) out of range, returning NULL",errorCode,eq));
    return NULL;
  }
}
//________________________________________________________________________________________________
UInt_t AliITSRawStreamSPDErrorLog::GetEventErrPosCounter(UInt_t errorCode, UInt_t eq) {
  // returns the number of errors with bytes information for current event
  if (errorCode<kNrErrorCodes && eq<20) return fErrPosTMPCounter[errorCode][eq];
  else {
    AliError(Form("Error code (%d) or equipment (%d) out of range, returning 0",errorCode,eq));
    return 0;
  }
}
//________________________________________________________________________________________________
UInt_t AliITSRawStreamSPDErrorLog::GetEventErrPos(UInt_t index, UInt_t errorCode, UInt_t eq) {
  // returns the bytes read for the index'th error of current event
  if (errorCode<kNrErrorCodes && eq<20) {
    if (index<fErrPosTMPCounter[errorCode][eq]) {
      Double_t x,y;
      fConsErrPosTMP[errorCode][eq]->GetPoint(index,x,y);
      return (UInt_t) y;
    }
    else {
      AliError(Form("Index %d out of range, returning 0",index));
    return 0;
    }
  }
  else {
    AliError(Form("Error code (%d) or equipment (%d) out of range, returning 0",errorCode,eq));
    return 0;
  }

}

 AliITSRawStreamSPDErrorLog.cxx:1
 AliITSRawStreamSPDErrorLog.cxx:2
 AliITSRawStreamSPDErrorLog.cxx:3
 AliITSRawStreamSPDErrorLog.cxx:4
 AliITSRawStreamSPDErrorLog.cxx:5
 AliITSRawStreamSPDErrorLog.cxx:6
 AliITSRawStreamSPDErrorLog.cxx:7
 AliITSRawStreamSPDErrorLog.cxx:8
 AliITSRawStreamSPDErrorLog.cxx:9
 AliITSRawStreamSPDErrorLog.cxx:10
 AliITSRawStreamSPDErrorLog.cxx:11
 AliITSRawStreamSPDErrorLog.cxx:12
 AliITSRawStreamSPDErrorLog.cxx:13
 AliITSRawStreamSPDErrorLog.cxx:14
 AliITSRawStreamSPDErrorLog.cxx:15
 AliITSRawStreamSPDErrorLog.cxx:16
 AliITSRawStreamSPDErrorLog.cxx:17
 AliITSRawStreamSPDErrorLog.cxx:18
 AliITSRawStreamSPDErrorLog.cxx:19
 AliITSRawStreamSPDErrorLog.cxx:20
 AliITSRawStreamSPDErrorLog.cxx:21
 AliITSRawStreamSPDErrorLog.cxx:22
 AliITSRawStreamSPDErrorLog.cxx:23
 AliITSRawStreamSPDErrorLog.cxx:24
 AliITSRawStreamSPDErrorLog.cxx:25
 AliITSRawStreamSPDErrorLog.cxx:26
 AliITSRawStreamSPDErrorLog.cxx:27
 AliITSRawStreamSPDErrorLog.cxx:28
 AliITSRawStreamSPDErrorLog.cxx:29
 AliITSRawStreamSPDErrorLog.cxx:30
 AliITSRawStreamSPDErrorLog.cxx:31
 AliITSRawStreamSPDErrorLog.cxx:32
 AliITSRawStreamSPDErrorLog.cxx:33
 AliITSRawStreamSPDErrorLog.cxx:34
 AliITSRawStreamSPDErrorLog.cxx:35
 AliITSRawStreamSPDErrorLog.cxx:36
 AliITSRawStreamSPDErrorLog.cxx:37
 AliITSRawStreamSPDErrorLog.cxx:38
 AliITSRawStreamSPDErrorLog.cxx:39
 AliITSRawStreamSPDErrorLog.cxx:40
 AliITSRawStreamSPDErrorLog.cxx:41
 AliITSRawStreamSPDErrorLog.cxx:42
 AliITSRawStreamSPDErrorLog.cxx:43
 AliITSRawStreamSPDErrorLog.cxx:44
 AliITSRawStreamSPDErrorLog.cxx:45
 AliITSRawStreamSPDErrorLog.cxx:46
 AliITSRawStreamSPDErrorLog.cxx:47
 AliITSRawStreamSPDErrorLog.cxx:48
 AliITSRawStreamSPDErrorLog.cxx:49
 AliITSRawStreamSPDErrorLog.cxx:50
 AliITSRawStreamSPDErrorLog.cxx:51
 AliITSRawStreamSPDErrorLog.cxx:52
 AliITSRawStreamSPDErrorLog.cxx:53
 AliITSRawStreamSPDErrorLog.cxx:54
 AliITSRawStreamSPDErrorLog.cxx:55
 AliITSRawStreamSPDErrorLog.cxx:56
 AliITSRawStreamSPDErrorLog.cxx:57
 AliITSRawStreamSPDErrorLog.cxx:58
 AliITSRawStreamSPDErrorLog.cxx:59
 AliITSRawStreamSPDErrorLog.cxx:60
 AliITSRawStreamSPDErrorLog.cxx:61
 AliITSRawStreamSPDErrorLog.cxx:62
 AliITSRawStreamSPDErrorLog.cxx:63
 AliITSRawStreamSPDErrorLog.cxx:64
 AliITSRawStreamSPDErrorLog.cxx:65
 AliITSRawStreamSPDErrorLog.cxx:66
 AliITSRawStreamSPDErrorLog.cxx:67
 AliITSRawStreamSPDErrorLog.cxx:68
 AliITSRawStreamSPDErrorLog.cxx:69
 AliITSRawStreamSPDErrorLog.cxx:70
 AliITSRawStreamSPDErrorLog.cxx:71
 AliITSRawStreamSPDErrorLog.cxx:72
 AliITSRawStreamSPDErrorLog.cxx:73
 AliITSRawStreamSPDErrorLog.cxx:74
 AliITSRawStreamSPDErrorLog.cxx:75
 AliITSRawStreamSPDErrorLog.cxx:76
 AliITSRawStreamSPDErrorLog.cxx:77
 AliITSRawStreamSPDErrorLog.cxx:78
 AliITSRawStreamSPDErrorLog.cxx:79
 AliITSRawStreamSPDErrorLog.cxx:80
 AliITSRawStreamSPDErrorLog.cxx:81
 AliITSRawStreamSPDErrorLog.cxx:82
 AliITSRawStreamSPDErrorLog.cxx:83
 AliITSRawStreamSPDErrorLog.cxx:84
 AliITSRawStreamSPDErrorLog.cxx:85
 AliITSRawStreamSPDErrorLog.cxx:86
 AliITSRawStreamSPDErrorLog.cxx:87
 AliITSRawStreamSPDErrorLog.cxx:88
 AliITSRawStreamSPDErrorLog.cxx:89
 AliITSRawStreamSPDErrorLog.cxx:90
 AliITSRawStreamSPDErrorLog.cxx:91
 AliITSRawStreamSPDErrorLog.cxx:92
 AliITSRawStreamSPDErrorLog.cxx:93
 AliITSRawStreamSPDErrorLog.cxx:94
 AliITSRawStreamSPDErrorLog.cxx:95
 AliITSRawStreamSPDErrorLog.cxx:96
 AliITSRawStreamSPDErrorLog.cxx:97
 AliITSRawStreamSPDErrorLog.cxx:98
 AliITSRawStreamSPDErrorLog.cxx:99
 AliITSRawStreamSPDErrorLog.cxx:100
 AliITSRawStreamSPDErrorLog.cxx:101
 AliITSRawStreamSPDErrorLog.cxx:102
 AliITSRawStreamSPDErrorLog.cxx:103
 AliITSRawStreamSPDErrorLog.cxx:104
 AliITSRawStreamSPDErrorLog.cxx:105
 AliITSRawStreamSPDErrorLog.cxx:106
 AliITSRawStreamSPDErrorLog.cxx:107
 AliITSRawStreamSPDErrorLog.cxx:108
 AliITSRawStreamSPDErrorLog.cxx:109
 AliITSRawStreamSPDErrorLog.cxx:110
 AliITSRawStreamSPDErrorLog.cxx:111
 AliITSRawStreamSPDErrorLog.cxx:112
 AliITSRawStreamSPDErrorLog.cxx:113
 AliITSRawStreamSPDErrorLog.cxx:114
 AliITSRawStreamSPDErrorLog.cxx:115
 AliITSRawStreamSPDErrorLog.cxx:116
 AliITSRawStreamSPDErrorLog.cxx:117
 AliITSRawStreamSPDErrorLog.cxx:118
 AliITSRawStreamSPDErrorLog.cxx:119
 AliITSRawStreamSPDErrorLog.cxx:120
 AliITSRawStreamSPDErrorLog.cxx:121
 AliITSRawStreamSPDErrorLog.cxx:122
 AliITSRawStreamSPDErrorLog.cxx:123
 AliITSRawStreamSPDErrorLog.cxx:124
 AliITSRawStreamSPDErrorLog.cxx:125
 AliITSRawStreamSPDErrorLog.cxx:126
 AliITSRawStreamSPDErrorLog.cxx:127
 AliITSRawStreamSPDErrorLog.cxx:128
 AliITSRawStreamSPDErrorLog.cxx:129
 AliITSRawStreamSPDErrorLog.cxx:130
 AliITSRawStreamSPDErrorLog.cxx:131
 AliITSRawStreamSPDErrorLog.cxx:132
 AliITSRawStreamSPDErrorLog.cxx:133
 AliITSRawStreamSPDErrorLog.cxx:134
 AliITSRawStreamSPDErrorLog.cxx:135
 AliITSRawStreamSPDErrorLog.cxx:136
 AliITSRawStreamSPDErrorLog.cxx:137
 AliITSRawStreamSPDErrorLog.cxx:138
 AliITSRawStreamSPDErrorLog.cxx:139
 AliITSRawStreamSPDErrorLog.cxx:140
 AliITSRawStreamSPDErrorLog.cxx:141
 AliITSRawStreamSPDErrorLog.cxx:142
 AliITSRawStreamSPDErrorLog.cxx:143
 AliITSRawStreamSPDErrorLog.cxx:144
 AliITSRawStreamSPDErrorLog.cxx:145
 AliITSRawStreamSPDErrorLog.cxx:146
 AliITSRawStreamSPDErrorLog.cxx:147
 AliITSRawStreamSPDErrorLog.cxx:148
 AliITSRawStreamSPDErrorLog.cxx:149
 AliITSRawStreamSPDErrorLog.cxx:150
 AliITSRawStreamSPDErrorLog.cxx:151
 AliITSRawStreamSPDErrorLog.cxx:152
 AliITSRawStreamSPDErrorLog.cxx:153
 AliITSRawStreamSPDErrorLog.cxx:154
 AliITSRawStreamSPDErrorLog.cxx:155
 AliITSRawStreamSPDErrorLog.cxx:156
 AliITSRawStreamSPDErrorLog.cxx:157
 AliITSRawStreamSPDErrorLog.cxx:158
 AliITSRawStreamSPDErrorLog.cxx:159
 AliITSRawStreamSPDErrorLog.cxx:160
 AliITSRawStreamSPDErrorLog.cxx:161
 AliITSRawStreamSPDErrorLog.cxx:162
 AliITSRawStreamSPDErrorLog.cxx:163
 AliITSRawStreamSPDErrorLog.cxx:164
 AliITSRawStreamSPDErrorLog.cxx:165
 AliITSRawStreamSPDErrorLog.cxx:166
 AliITSRawStreamSPDErrorLog.cxx:167
 AliITSRawStreamSPDErrorLog.cxx:168
 AliITSRawStreamSPDErrorLog.cxx:169
 AliITSRawStreamSPDErrorLog.cxx:170
 AliITSRawStreamSPDErrorLog.cxx:171
 AliITSRawStreamSPDErrorLog.cxx:172
 AliITSRawStreamSPDErrorLog.cxx:173
 AliITSRawStreamSPDErrorLog.cxx:174
 AliITSRawStreamSPDErrorLog.cxx:175
 AliITSRawStreamSPDErrorLog.cxx:176
 AliITSRawStreamSPDErrorLog.cxx:177
 AliITSRawStreamSPDErrorLog.cxx:178
 AliITSRawStreamSPDErrorLog.cxx:179
 AliITSRawStreamSPDErrorLog.cxx:180
 AliITSRawStreamSPDErrorLog.cxx:181
 AliITSRawStreamSPDErrorLog.cxx:182
 AliITSRawStreamSPDErrorLog.cxx:183
 AliITSRawStreamSPDErrorLog.cxx:184
 AliITSRawStreamSPDErrorLog.cxx:185
 AliITSRawStreamSPDErrorLog.cxx:186
 AliITSRawStreamSPDErrorLog.cxx:187
 AliITSRawStreamSPDErrorLog.cxx:188
 AliITSRawStreamSPDErrorLog.cxx:189
 AliITSRawStreamSPDErrorLog.cxx:190
 AliITSRawStreamSPDErrorLog.cxx:191
 AliITSRawStreamSPDErrorLog.cxx:192
 AliITSRawStreamSPDErrorLog.cxx:193
 AliITSRawStreamSPDErrorLog.cxx:194
 AliITSRawStreamSPDErrorLog.cxx:195
 AliITSRawStreamSPDErrorLog.cxx:196
 AliITSRawStreamSPDErrorLog.cxx:197
 AliITSRawStreamSPDErrorLog.cxx:198
 AliITSRawStreamSPDErrorLog.cxx:199
 AliITSRawStreamSPDErrorLog.cxx:200
 AliITSRawStreamSPDErrorLog.cxx:201
 AliITSRawStreamSPDErrorLog.cxx:202
 AliITSRawStreamSPDErrorLog.cxx:203
 AliITSRawStreamSPDErrorLog.cxx:204
 AliITSRawStreamSPDErrorLog.cxx:205
 AliITSRawStreamSPDErrorLog.cxx:206
 AliITSRawStreamSPDErrorLog.cxx:207
 AliITSRawStreamSPDErrorLog.cxx:208
 AliITSRawStreamSPDErrorLog.cxx:209
 AliITSRawStreamSPDErrorLog.cxx:210
 AliITSRawStreamSPDErrorLog.cxx:211
 AliITSRawStreamSPDErrorLog.cxx:212
 AliITSRawStreamSPDErrorLog.cxx:213
 AliITSRawStreamSPDErrorLog.cxx:214
 AliITSRawStreamSPDErrorLog.cxx:215
 AliITSRawStreamSPDErrorLog.cxx:216
 AliITSRawStreamSPDErrorLog.cxx:217
 AliITSRawStreamSPDErrorLog.cxx:218
 AliITSRawStreamSPDErrorLog.cxx:219
 AliITSRawStreamSPDErrorLog.cxx:220
 AliITSRawStreamSPDErrorLog.cxx:221
 AliITSRawStreamSPDErrorLog.cxx:222
 AliITSRawStreamSPDErrorLog.cxx:223
 AliITSRawStreamSPDErrorLog.cxx:224
 AliITSRawStreamSPDErrorLog.cxx:225
 AliITSRawStreamSPDErrorLog.cxx:226
 AliITSRawStreamSPDErrorLog.cxx:227
 AliITSRawStreamSPDErrorLog.cxx:228
 AliITSRawStreamSPDErrorLog.cxx:229
 AliITSRawStreamSPDErrorLog.cxx:230
 AliITSRawStreamSPDErrorLog.cxx:231
 AliITSRawStreamSPDErrorLog.cxx:232
 AliITSRawStreamSPDErrorLog.cxx:233
 AliITSRawStreamSPDErrorLog.cxx:234
 AliITSRawStreamSPDErrorLog.cxx:235
 AliITSRawStreamSPDErrorLog.cxx:236
 AliITSRawStreamSPDErrorLog.cxx:237
 AliITSRawStreamSPDErrorLog.cxx:238
 AliITSRawStreamSPDErrorLog.cxx:239
 AliITSRawStreamSPDErrorLog.cxx:240
 AliITSRawStreamSPDErrorLog.cxx:241
 AliITSRawStreamSPDErrorLog.cxx:242
 AliITSRawStreamSPDErrorLog.cxx:243
 AliITSRawStreamSPDErrorLog.cxx:244
 AliITSRawStreamSPDErrorLog.cxx:245
 AliITSRawStreamSPDErrorLog.cxx:246
 AliITSRawStreamSPDErrorLog.cxx:247
 AliITSRawStreamSPDErrorLog.cxx:248
 AliITSRawStreamSPDErrorLog.cxx:249
 AliITSRawStreamSPDErrorLog.cxx:250
 AliITSRawStreamSPDErrorLog.cxx:251
 AliITSRawStreamSPDErrorLog.cxx:252
 AliITSRawStreamSPDErrorLog.cxx:253
 AliITSRawStreamSPDErrorLog.cxx:254
 AliITSRawStreamSPDErrorLog.cxx:255
 AliITSRawStreamSPDErrorLog.cxx:256
 AliITSRawStreamSPDErrorLog.cxx:257
 AliITSRawStreamSPDErrorLog.cxx:258
 AliITSRawStreamSPDErrorLog.cxx:259
 AliITSRawStreamSPDErrorLog.cxx:260
 AliITSRawStreamSPDErrorLog.cxx:261
 AliITSRawStreamSPDErrorLog.cxx:262
 AliITSRawStreamSPDErrorLog.cxx:263
 AliITSRawStreamSPDErrorLog.cxx:264
 AliITSRawStreamSPDErrorLog.cxx:265
 AliITSRawStreamSPDErrorLog.cxx:266
 AliITSRawStreamSPDErrorLog.cxx:267
 AliITSRawStreamSPDErrorLog.cxx:268
 AliITSRawStreamSPDErrorLog.cxx:269
 AliITSRawStreamSPDErrorLog.cxx:270
 AliITSRawStreamSPDErrorLog.cxx:271
 AliITSRawStreamSPDErrorLog.cxx:272
 AliITSRawStreamSPDErrorLog.cxx:273
 AliITSRawStreamSPDErrorLog.cxx:274
 AliITSRawStreamSPDErrorLog.cxx:275
 AliITSRawStreamSPDErrorLog.cxx:276
 AliITSRawStreamSPDErrorLog.cxx:277
 AliITSRawStreamSPDErrorLog.cxx:278
 AliITSRawStreamSPDErrorLog.cxx:279
 AliITSRawStreamSPDErrorLog.cxx:280
 AliITSRawStreamSPDErrorLog.cxx:281
 AliITSRawStreamSPDErrorLog.cxx:282
 AliITSRawStreamSPDErrorLog.cxx:283
 AliITSRawStreamSPDErrorLog.cxx:284
 AliITSRawStreamSPDErrorLog.cxx:285
 AliITSRawStreamSPDErrorLog.cxx:286
 AliITSRawStreamSPDErrorLog.cxx:287
 AliITSRawStreamSPDErrorLog.cxx:288
 AliITSRawStreamSPDErrorLog.cxx:289
 AliITSRawStreamSPDErrorLog.cxx:290
 AliITSRawStreamSPDErrorLog.cxx:291
 AliITSRawStreamSPDErrorLog.cxx:292
 AliITSRawStreamSPDErrorLog.cxx:293
 AliITSRawStreamSPDErrorLog.cxx:294
 AliITSRawStreamSPDErrorLog.cxx:295
 AliITSRawStreamSPDErrorLog.cxx:296
 AliITSRawStreamSPDErrorLog.cxx:297
 AliITSRawStreamSPDErrorLog.cxx:298
 AliITSRawStreamSPDErrorLog.cxx:299
 AliITSRawStreamSPDErrorLog.cxx:300
 AliITSRawStreamSPDErrorLog.cxx:301
 AliITSRawStreamSPDErrorLog.cxx:302
 AliITSRawStreamSPDErrorLog.cxx:303
 AliITSRawStreamSPDErrorLog.cxx:304
 AliITSRawStreamSPDErrorLog.cxx:305
 AliITSRawStreamSPDErrorLog.cxx:306
 AliITSRawStreamSPDErrorLog.cxx:307
 AliITSRawStreamSPDErrorLog.cxx:308
 AliITSRawStreamSPDErrorLog.cxx:309
 AliITSRawStreamSPDErrorLog.cxx:310
 AliITSRawStreamSPDErrorLog.cxx:311
 AliITSRawStreamSPDErrorLog.cxx:312
 AliITSRawStreamSPDErrorLog.cxx:313
 AliITSRawStreamSPDErrorLog.cxx:314
 AliITSRawStreamSPDErrorLog.cxx:315
 AliITSRawStreamSPDErrorLog.cxx:316
 AliITSRawStreamSPDErrorLog.cxx:317
 AliITSRawStreamSPDErrorLog.cxx:318
 AliITSRawStreamSPDErrorLog.cxx:319
 AliITSRawStreamSPDErrorLog.cxx:320
 AliITSRawStreamSPDErrorLog.cxx:321
 AliITSRawStreamSPDErrorLog.cxx:322
 AliITSRawStreamSPDErrorLog.cxx:323
 AliITSRawStreamSPDErrorLog.cxx:324
 AliITSRawStreamSPDErrorLog.cxx:325
 AliITSRawStreamSPDErrorLog.cxx:326
 AliITSRawStreamSPDErrorLog.cxx:327
 AliITSRawStreamSPDErrorLog.cxx:328
 AliITSRawStreamSPDErrorLog.cxx:329
 AliITSRawStreamSPDErrorLog.cxx:330
 AliITSRawStreamSPDErrorLog.cxx:331
 AliITSRawStreamSPDErrorLog.cxx:332
 AliITSRawStreamSPDErrorLog.cxx:333
 AliITSRawStreamSPDErrorLog.cxx:334
 AliITSRawStreamSPDErrorLog.cxx:335
 AliITSRawStreamSPDErrorLog.cxx:336
 AliITSRawStreamSPDErrorLog.cxx:337
 AliITSRawStreamSPDErrorLog.cxx:338
 AliITSRawStreamSPDErrorLog.cxx:339
 AliITSRawStreamSPDErrorLog.cxx:340
 AliITSRawStreamSPDErrorLog.cxx:341
 AliITSRawStreamSPDErrorLog.cxx:342
 AliITSRawStreamSPDErrorLog.cxx:343
 AliITSRawStreamSPDErrorLog.cxx:344
 AliITSRawStreamSPDErrorLog.cxx:345
 AliITSRawStreamSPDErrorLog.cxx:346
 AliITSRawStreamSPDErrorLog.cxx:347
 AliITSRawStreamSPDErrorLog.cxx:348
 AliITSRawStreamSPDErrorLog.cxx:349
 AliITSRawStreamSPDErrorLog.cxx:350
 AliITSRawStreamSPDErrorLog.cxx:351
 AliITSRawStreamSPDErrorLog.cxx:352
 AliITSRawStreamSPDErrorLog.cxx:353
 AliITSRawStreamSPDErrorLog.cxx:354
 AliITSRawStreamSPDErrorLog.cxx:355
 AliITSRawStreamSPDErrorLog.cxx:356
 AliITSRawStreamSPDErrorLog.cxx:357
 AliITSRawStreamSPDErrorLog.cxx:358
 AliITSRawStreamSPDErrorLog.cxx:359
 AliITSRawStreamSPDErrorLog.cxx:360
 AliITSRawStreamSPDErrorLog.cxx:361
 AliITSRawStreamSPDErrorLog.cxx:362
 AliITSRawStreamSPDErrorLog.cxx:363
 AliITSRawStreamSPDErrorLog.cxx:364
 AliITSRawStreamSPDErrorLog.cxx:365
 AliITSRawStreamSPDErrorLog.cxx:366
 AliITSRawStreamSPDErrorLog.cxx:367
 AliITSRawStreamSPDErrorLog.cxx:368
 AliITSRawStreamSPDErrorLog.cxx:369
 AliITSRawStreamSPDErrorLog.cxx:370
 AliITSRawStreamSPDErrorLog.cxx:371
 AliITSRawStreamSPDErrorLog.cxx:372
 AliITSRawStreamSPDErrorLog.cxx:373
 AliITSRawStreamSPDErrorLog.cxx:374
 AliITSRawStreamSPDErrorLog.cxx:375
 AliITSRawStreamSPDErrorLog.cxx:376
 AliITSRawStreamSPDErrorLog.cxx:377
 AliITSRawStreamSPDErrorLog.cxx:378
 AliITSRawStreamSPDErrorLog.cxx:379
 AliITSRawStreamSPDErrorLog.cxx:380
 AliITSRawStreamSPDErrorLog.cxx:381
 AliITSRawStreamSPDErrorLog.cxx:382
 AliITSRawStreamSPDErrorLog.cxx:383
 AliITSRawStreamSPDErrorLog.cxx:384
 AliITSRawStreamSPDErrorLog.cxx:385
 AliITSRawStreamSPDErrorLog.cxx:386
 AliITSRawStreamSPDErrorLog.cxx:387
 AliITSRawStreamSPDErrorLog.cxx:388
 AliITSRawStreamSPDErrorLog.cxx:389
 AliITSRawStreamSPDErrorLog.cxx:390
 AliITSRawStreamSPDErrorLog.cxx:391
 AliITSRawStreamSPDErrorLog.cxx:392
 AliITSRawStreamSPDErrorLog.cxx:393
 AliITSRawStreamSPDErrorLog.cxx:394
 AliITSRawStreamSPDErrorLog.cxx:395
 AliITSRawStreamSPDErrorLog.cxx:396
 AliITSRawStreamSPDErrorLog.cxx:397
 AliITSRawStreamSPDErrorLog.cxx:398
 AliITSRawStreamSPDErrorLog.cxx:399
 AliITSRawStreamSPDErrorLog.cxx:400
 AliITSRawStreamSPDErrorLog.cxx:401
 AliITSRawStreamSPDErrorLog.cxx:402
 AliITSRawStreamSPDErrorLog.cxx:403
 AliITSRawStreamSPDErrorLog.cxx:404
 AliITSRawStreamSPDErrorLog.cxx:405
 AliITSRawStreamSPDErrorLog.cxx:406
 AliITSRawStreamSPDErrorLog.cxx:407
 AliITSRawStreamSPDErrorLog.cxx:408
 AliITSRawStreamSPDErrorLog.cxx:409
 AliITSRawStreamSPDErrorLog.cxx:410
 AliITSRawStreamSPDErrorLog.cxx:411
 AliITSRawStreamSPDErrorLog.cxx:412
 AliITSRawStreamSPDErrorLog.cxx:413
 AliITSRawStreamSPDErrorLog.cxx:414
 AliITSRawStreamSPDErrorLog.cxx:415
 AliITSRawStreamSPDErrorLog.cxx:416
 AliITSRawStreamSPDErrorLog.cxx:417
 AliITSRawStreamSPDErrorLog.cxx:418
 AliITSRawStreamSPDErrorLog.cxx:419
 AliITSRawStreamSPDErrorLog.cxx:420
 AliITSRawStreamSPDErrorLog.cxx:421
 AliITSRawStreamSPDErrorLog.cxx:422
 AliITSRawStreamSPDErrorLog.cxx:423
 AliITSRawStreamSPDErrorLog.cxx:424
 AliITSRawStreamSPDErrorLog.cxx:425
 AliITSRawStreamSPDErrorLog.cxx:426
 AliITSRawStreamSPDErrorLog.cxx:427
 AliITSRawStreamSPDErrorLog.cxx:428
 AliITSRawStreamSPDErrorLog.cxx:429
 AliITSRawStreamSPDErrorLog.cxx:430
 AliITSRawStreamSPDErrorLog.cxx:431
 AliITSRawStreamSPDErrorLog.cxx:432
 AliITSRawStreamSPDErrorLog.cxx:433
 AliITSRawStreamSPDErrorLog.cxx:434
 AliITSRawStreamSPDErrorLog.cxx:435
 AliITSRawStreamSPDErrorLog.cxx:436
 AliITSRawStreamSPDErrorLog.cxx:437
 AliITSRawStreamSPDErrorLog.cxx:438
 AliITSRawStreamSPDErrorLog.cxx:439
 AliITSRawStreamSPDErrorLog.cxx:440
 AliITSRawStreamSPDErrorLog.cxx:441
 AliITSRawStreamSPDErrorLog.cxx:442
 AliITSRawStreamSPDErrorLog.cxx:443
 AliITSRawStreamSPDErrorLog.cxx:444
 AliITSRawStreamSPDErrorLog.cxx:445
 AliITSRawStreamSPDErrorLog.cxx:446
 AliITSRawStreamSPDErrorLog.cxx:447
 AliITSRawStreamSPDErrorLog.cxx:448
 AliITSRawStreamSPDErrorLog.cxx:449
 AliITSRawStreamSPDErrorLog.cxx:450
 AliITSRawStreamSPDErrorLog.cxx:451
 AliITSRawStreamSPDErrorLog.cxx:452
 AliITSRawStreamSPDErrorLog.cxx:453
 AliITSRawStreamSPDErrorLog.cxx:454
 AliITSRawStreamSPDErrorLog.cxx:455
 AliITSRawStreamSPDErrorLog.cxx:456
 AliITSRawStreamSPDErrorLog.cxx:457
 AliITSRawStreamSPDErrorLog.cxx:458
 AliITSRawStreamSPDErrorLog.cxx:459
 AliITSRawStreamSPDErrorLog.cxx:460
 AliITSRawStreamSPDErrorLog.cxx:461
 AliITSRawStreamSPDErrorLog.cxx:462
 AliITSRawStreamSPDErrorLog.cxx:463
 AliITSRawStreamSPDErrorLog.cxx:464
 AliITSRawStreamSPDErrorLog.cxx:465
 AliITSRawStreamSPDErrorLog.cxx:466
 AliITSRawStreamSPDErrorLog.cxx:467
 AliITSRawStreamSPDErrorLog.cxx:468
 AliITSRawStreamSPDErrorLog.cxx:469
 AliITSRawStreamSPDErrorLog.cxx:470
 AliITSRawStreamSPDErrorLog.cxx:471
 AliITSRawStreamSPDErrorLog.cxx:472
 AliITSRawStreamSPDErrorLog.cxx:473
 AliITSRawStreamSPDErrorLog.cxx:474
 AliITSRawStreamSPDErrorLog.cxx:475
 AliITSRawStreamSPDErrorLog.cxx:476
 AliITSRawStreamSPDErrorLog.cxx:477
 AliITSRawStreamSPDErrorLog.cxx:478
 AliITSRawStreamSPDErrorLog.cxx:479
 AliITSRawStreamSPDErrorLog.cxx:480
 AliITSRawStreamSPDErrorLog.cxx:481
 AliITSRawStreamSPDErrorLog.cxx:482
 AliITSRawStreamSPDErrorLog.cxx:483
 AliITSRawStreamSPDErrorLog.cxx:484
 AliITSRawStreamSPDErrorLog.cxx:485
 AliITSRawStreamSPDErrorLog.cxx:486
 AliITSRawStreamSPDErrorLog.cxx:487
 AliITSRawStreamSPDErrorLog.cxx:488
 AliITSRawStreamSPDErrorLog.cxx:489
 AliITSRawStreamSPDErrorLog.cxx:490
 AliITSRawStreamSPDErrorLog.cxx:491
 AliITSRawStreamSPDErrorLog.cxx:492
 AliITSRawStreamSPDErrorLog.cxx:493
 AliITSRawStreamSPDErrorLog.cxx:494
 AliITSRawStreamSPDErrorLog.cxx:495
 AliITSRawStreamSPDErrorLog.cxx:496