ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

///////////////////////////////////////////////////////////////////////////////
//									     //
// This class provides access to ZDC digits in raw data.		     //
//									     //
// It loops over all ZDC digits in the raw data given by the AliRawReader.   //
// The Next method goes to the next digit. If there are no digits left	     //
// it returns kFALSE.							     //
// Getters provide information about the current digit. 		     //
//									     //
///////////////////////////////////////////////////////////////////////////////

#include <TSystem.h>
#include "AliZDCRawStream.h"
#include "AliRawReader.h"
#include "AliRawDataHeader.h"
#include "AliRawEventHeaderBase.h"
#include "AliLog.h"

ClassImp(AliZDCRawStream)


//_____________________________________________________________________________
AliZDCRawStream::AliZDCRawStream(AliRawReader* rawReader) :
  fRawReader(rawReader),
  fBuffer(0),
  fReadOutCard(-1),
  fEvType(0),
  fPosition(0),
  fIsCalib(kFALSE),
  fIsDARCHeader(kFALSE),
  fIsHeaderMapping(kFALSE),
  fIsChMapping(kFALSE),
  fIsADCDataWord(kFALSE),
  fIsADCHeader(kFALSE),
  fIsADCEOB(kFALSE),
  fSODReading(kFALSE),
  fIsMapRead(kFALSE),
  fReadCDH(kFALSE),
  fDeadfaceOffset(-1),
  fDeadbeefOffset(-1),
  fDataOffset(0),
  fModType(-1),
  fADCModule(-1),
  fADCNChannels(-1),	 
  fADCChannel(-1),	 
  fADCValue(-1),	 
  fADCGain(-1),
  fIsUnderflow(kFALSE),
  fIsOverflow(kFALSE),
  fScGeo(0),	  
  fScNWords(0),	  
  fScTriggerSource(0),	  
  fScTriggerNumber(0),
  fIsScEventGood(kTRUE),
  fIsScHeaderRead(kFALSE),
  fScStartCounter(0),
  fScEvCounter(0),
  fIsScalerWord(kFALSE),
  fDetPattern(0),
  fTrigCountNWords(0),
  fIsTriggerScaler(kFALSE),
  fTrigCountStart(0),
  fMBTrigInput(0),	   
  fCentralTrigInput(0), 
  fSCentralTrigInput(0),
  fEMDTrigInput(0),     
  fL0Received(0),	   
  fMBtrig2CTP(0),	   
  fCentralTrig2CTP(0),  
  fSCentralTrig2CTP(0), 
  fEMDTrig2CTP(0),	      
  fTrigHistNWords(0),
  fIsTriggerHistory(kFALSE),
  fTrigHistStart(0),
  fPileUpBit1stWord(0),
  fL0Bit1stWord(0),
  fCentralTrigHist(0),
  fMBTrigHist(0),
  fPileUpBit2ndWord(0),
  fL0Bit2ndWord(0), 
  fSCentralTrigHist(0),
  fEMDTrigHist(0),
  fNChannelsOn(0),
  fCurrentCh(-1),
  fCabledSignal(-1),
  fCurrScCh(-1),
  fCurrTDCCh(-1),
  fIsADCEventGood(kTRUE),
  fIsL0BitSet(kTRUE),
  fIsPileUpEvent(kFALSE),
  fIsADDChannel(kFALSE),
  fADDADCdatum(0),
  fIsTDCHeaderRead(kFALSE),
  fTDCStartCounter(0),
  fIsZDCTDCHeader(kFALSE),
  fIsZDCTDCdatum(kFALSE),
  fZDCTDCdatum(0),
  fIsADDTDCHeader(kFALSE),
  fIsADDTDCdatum(kFALSE),
  fADDTDCdatum(0)
{
  // Create an object to read ZDC raw digits
  fRawReader->Reset();
  fRawReader->Select("ZDC");
  //
  const int kNch = 48;
  for(Int_t i=0; i<kNch; i++){
    for(Int_t j=0; j<5; j++){
      fMapADC[i][j]=-1;
      if(i<32){
        fScalerMap[i][j]=-1;
        if(j<3) fTDCMap[i][j]=-1;
      }
    }
  }
  
  for(Int_t k=0; k<4; k++) fCPTInput[k] = 0;

}

//_____________________________________________________________________________
AliZDCRawStream::AliZDCRawStream(const AliZDCRawStream& stream) :
  TObject(stream),
  fRawReader(stream.fRawReader),
  fBuffer(stream.GetRawBuffer()),
  fReadOutCard(stream.GetReadOutCard()),
  fEvType(stream.fEvType),
  fPosition(stream.fPosition),
  fIsCalib(stream.fIsCalib),
  fIsDARCHeader(stream.fIsDARCHeader), 
  fIsHeaderMapping(stream.fIsHeaderMapping),
  fIsChMapping(stream.fIsChMapping),
  fIsADCDataWord(stream.fIsADCDataWord), 
  fIsADCHeader(stream.fIsADCHeader), 
  fIsADCEOB(stream.fIsADCEOB), 
  fSODReading(stream.fSODReading),
  fIsMapRead(stream.fIsMapRead),
  fReadCDH(stream.fReadCDH),
  fDeadfaceOffset(stream.GetDeadfaceOffset()),
  fDeadbeefOffset(stream.GetDeadbeefOffset()),
  fDataOffset(stream.GetDataOffset()),
  fModType(stream.GetModType()),
  fADCModule(stream.GetADCModule()),	 
  fADCNChannels(stream.GetADCNChannels()),	 
  fADCChannel(stream.GetADCChannel()),	 
  fADCValue(stream.GetADCValue()),	 
  fADCGain(stream.GetADCGain()),
  fIsUnderflow(stream.fIsUnderflow),
  fIsOverflow(stream.fIsOverflow),
  fScGeo(stream.GetScGeo()),	  
  fScNWords(stream.GetScNWords()),	  
  fScTriggerSource(stream.GetScTriggerSource()),	  
  fScTriggerNumber(stream.fScTriggerNumber),
  fIsScEventGood(stream.fIsScEventGood),
  fIsScHeaderRead(stream.fIsScHeaderRead),
  fScStartCounter(stream.fScStartCounter),
  fScEvCounter(stream.fScEvCounter),
  fIsScalerWord(stream.fIsScalerWord),
  fDetPattern(stream.fDetPattern),
  fTrigCountNWords(stream.fTrigCountNWords),
  fIsTriggerScaler(stream.fIsTriggerScaler),
  fTrigCountStart(stream.fTrigCountStart),
  fMBTrigInput(stream.fMBTrigInput),	   
  fCentralTrigInput(stream.fCentralTrigInput), 
  fSCentralTrigInput(stream.fSCentralTrigInput),
  fEMDTrigInput(stream.fEMDTrigInput),     
  fL0Received(stream.fL0Received),	   
  fMBtrig2CTP(stream.fMBtrig2CTP),	   
  fCentralTrig2CTP(stream.fCentralTrig2CTP),  
  fSCentralTrig2CTP(stream.fSCentralTrig2CTP), 
  fEMDTrig2CTP(stream.fEMDTrig2CTP),	      
  fTrigHistNWords(stream.fTrigHistNWords),
  fIsTriggerHistory(stream.fIsTriggerHistory),
  fTrigHistStart(stream.fTrigHistStart),
  fPileUpBit1stWord(stream.fPileUpBit1stWord),
  fL0Bit1stWord(stream.fL0Bit1stWord), 
  fCentralTrigHist(stream.fCentralTrigHist),
  fMBTrigHist(stream.fMBTrigHist),
  fPileUpBit2ndWord(stream.fPileUpBit2ndWord),
  fL0Bit2ndWord(stream.fL0Bit2ndWord), 
  fSCentralTrigHist(stream.fSCentralTrigHist),
  fEMDTrigHist(stream.fEMDTrigHist),
  fNChannelsOn(stream.fNChannelsOn),
  fCurrentCh(stream.fCurrentCh),
  fCabledSignal(stream.GetCabledSignal()),
  fCurrScCh(stream.fCurrScCh),
  fCurrTDCCh(stream.fCurrTDCCh),
  fIsADCEventGood(stream.fIsADCEventGood),
  fIsL0BitSet(stream.fIsL0BitSet),
  fIsPileUpEvent(stream.fIsPileUpEvent),
  fIsADDChannel(stream.fIsADDChannel),
  fADDADCdatum(stream.fADDADCdatum),
  fIsTDCHeaderRead(stream.fIsTDCHeaderRead),
  fTDCStartCounter(stream.fTDCStartCounter),
  fIsZDCTDCHeader(stream.fIsZDCTDCHeader),
  fIsZDCTDCdatum(stream.fIsZDCTDCdatum),
  fZDCTDCdatum(stream.fZDCTDCdatum),
  fIsADDTDCHeader(stream.fIsADDTDCHeader),
  fIsADDTDCdatum(stream.fIsADDTDCdatum),
  fADDTDCdatum(stream.fADDTDCdatum)
{
  // Copy constructor
  const int kNch = 48;
  for(Int_t j=0; j<2; j++) fSector[j] = stream.GetSector(j);	 
  for(Int_t i=0; i<kNch; i++){
    for(Int_t j=0; j<5; j++){
      fMapADC[i][j] = stream.fMapADC[i][j];
      if(i<32) fScalerMap[i][j] = stream.fMapADC[i][j];
    }
  }
  
  for(Int_t k=0; k<4; k++) fCPTInput[k] = stream.fCPTInput[k];
}

//_____________________________________________________________________________
AliZDCRawStream& AliZDCRawStream::operator = (const AliZDCRawStream& 
					      /* stream */)
{
  // Assignment operator
  Fatal("operator =", "assignment operator not implemented");
  return *this;
}

//_____________________________________________________________________________
AliZDCRawStream::~AliZDCRawStream()
{
// Destructor

}

//_____________________________________________________________________________
void AliZDCRawStream::ReadChMap()
{
  // Reading channel map
  const int kNch = 48;
  AliDebug(2,"\t Reading ZDC ADC mapping from OCDB\n");
  AliZDCChMap * chMap = GetChMap();
  //chMap->Print("");
  if(chMap){
    for(Int_t i=0; i<kNch; i++){
      fMapADC[i][0] = chMap->GetADCModule(i);
      fMapADC[i][1] = chMap->GetADCChannel(i);
      fMapADC[i][2] = chMap->GetADCSignalCode(i);
      fMapADC[i][3] = chMap->GetDetector(i);
      fMapADC[i][4] = chMap->GetSector(i);
    }
    fIsMapRead = kTRUE;
  }
  else printf("  AliZDCRawStream::ReadChMap -> No valid object fr mapping loaded!!!\n\n");
}

//_____________________________________________________________________________
void AliZDCRawStream::ReadCDHHeader()
{
  // Reading CDH 
  const AliRawDataHeader* header = fRawReader->GetDataHeader();
  const AliRawDataHeaderV3* headerV3 = fRawReader->GetDataHeaderV3();
  if(!header && !headerV3) {
      AliError(" No CDH in raw data streaming");
      fRawReader->AddMajorErrorLog(kCDHError);
      return;
  }

    //printf("\t AliZDCRawStream::ReadCDHHeader -> Data Size = %x\n",fRawReader->GetDataSize());

  UChar_t message = header ? header->GetAttributes() : headerV3->GetAttributes();
    //printf("\t AliZDCRawStream::ReadCDHHeader -> Attributes %x\n",message);
    
    if((message & 0xf0) == 0x0){ // PHYSICS RUN
       //printf("\t PHYSICS RUN raw data found\n");
    }
    else if((message & 0xf0) == 0x10){ // COSMIC RUN
       //printf("\t STANDALONE_COSMIC RUN raw data found\n");
    }
    else if((message & 0xf0) == 0x20){ // PEDESTAL RUN
       //printf("\t STANDALONE_PEDESTAL RUN raw data found\n");
    }
    else if((message & 0xf0) == 0x30){ // LASER RUN
       //printf("\t STANDALONE_LASER RUN raw data found\n");
    }
    else if((message & 0xf0) == 0x40){ // CALIBRATION_CENTRAL RUN
       //printf("\t CALIBRATION_CENTRAL RUN raw data found\n");
    }
    else if((message & 0xf0) == 0x50){ // CALIBRATION_SEMICENTRAL
       //printf("\t CALIBRATION_SEMICENTRAL RUN raw data found\n");
    }
    else if((message & 0xf0) == 0x60){ // CALIBRATION_MB
       //printf("\t CALIBRATION_MB RUN raw data found\n");
    }
    else if((message & 0xf0) == 0x70){ // CALIBRATION_EMD
       //printf("\t CALIBRATION_EMD RUN raw data found\n");
    }
    // *** Checking the bit indicating the used readout card
    // (the payload is different in the 2 cases!)
    if((message & 0x08) == 0){  // ** DARC card
       fReadOutCard = 0;
       fIsDARCHeader = kTRUE;
       //AliInfo("\t ZDC readout card used: DARC");
    }
    else if((message & 0x08) == 0x08){  // ** ZRC card
       fReadOutCard = 1;
       //AliInfo("\t ZDC readout card used: ZRC");
    }

    fIsCalib = (header ? header->GetL1TriggerMessage() : headerV3->GetL1TriggerMessage()) & 0x1;

    //printf("\t AliZDCRawStream::ReadCDHHeader -> L1TriggerMessage %x\n",header->GetL1TriggerMessage());
    //printf("\t AliZDCRawStream::ReadCDHHeader -> Calibration bit = %d\n",fIsCalib);    
    
/*    UInt_t status = header->GetStatus();
    //printf("\t AliZDCRawStream::ReadCDHHeader -> status = %d\n",status);
    if((status & 0x000f) == 0x0001){
      AliDebug(2,"CDH -> DARC trg0 overlap error");
      fRawReader->AddMajorErrorLog(kDARCError);
    }
    if((status & 0x000f) == 0x0002){
      AliDebug(2,"CDH -> DARC trg0 missing error");
      fRawReader->AddMajorErrorLog(kDARCError);
    }
    if((status & 0x000f) == 0x0004){
      AliDebug(2,"CDH -> DARC data parity error");
      fRawReader->AddMajorErrorLog(kDARCError);
    }
    if((status & 0x000f) == 0x0008){
      AliDebug(2,"CDH -> DARC ctrl parity error");
      fRawReader->AddMajorErrorLog(kDARCError);
    }
    //
    if((status & 0x00f0) == 0x0010){
      AliDebug(2,"CDH -> DARC trg unavailable");
      fRawReader->AddMajorErrorLog(kDARCError);
    }
    if((status & 0x00f0) == 0x0020){
      AliDebug(2,"CDH -> DARC FEE error");
      fRawReader->AddMajorErrorLog(kDARCError);
    }
    //
    if((status & 0x0f00) == 0x0200){
      AliDebug(2,"CDH -> DARC L1 time violation");
      fRawReader->AddMajorErrorLog(kDARCError);
    }
    if((status & 0x0f00) == 0x0400){
      AliDebug(2,"CDH -> DARC L2 time-out");
      fRawReader->AddMajorErrorLog(kDARCError);
    }
    if((status & 0x0f00) == 0x0800){
      AliDebug(2,"CDH -> DARC prepulse time violation");
      fRawReader->AddMajorErrorLog(kDARCError);
    }
    //
    if((status & 0xf000) == 0x1000){
      AliDebug(2,"CDH -> DARC other error");
      fRawReader->AddMajorErrorLog(kDARCError);
    }
    */
  
}

//_____________________________________________________________________________
Bool_t AliZDCRawStream::Next()
{
  // Read the next raw digit
  // Returns kFALSE if there is no digit left

  if(!fRawReader->ReadNextInt((UInt_t&) fBuffer)) return kFALSE;
  const int kNch = 48;
  //
  fIsHeaderMapping = kFALSE; fIsChMapping = kFALSE; 
  fIsADCHeader = kFALSE; fIsADCDataWord = kFALSE; fIsADCEOB = kFALSE;
  fIsZDCTDCdatum = kFALSE; fIsADDChannel = kFALSE; fIsADDTDCdatum=kFALSE;
  fIsUnderflow = kFALSE; fIsOverflow = kFALSE; fIsScalerWord = kFALSE;
  fSector[0] = fSector[1] = -1;
  for(Int_t kl=0; kl<4; kl++) fCPTInput[kl] = 0;

  fEvType = fRawReader->GetType();
  if(fPosition==0){
    ReadCDHHeader();
    // Needed to read simulated raw data (temporary solution?)
    if(!fReadCDH) fReadOutCard=1;
    fCurrentCh=0; fCurrScCh=0;  fCurrTDCCh=0;fNChannelsOn=0;
    // Ch. debug
    //printf("\n  AliZDCRawStream::Next() - ev. type %d",fEvType);
  }
  // Ch. debug
  //printf("\n  AliZDCRawStream::Next() - fBuffer[%d] = %x\n",fPosition, fBuffer);
  
  // *** End of ZDC event
  if(fBuffer == 0xcafefade){
    //printf("\n  AliZDCRawStream::Next() ***** End of ZDC event *****\n\n");
    return kFALSE;
  }
  
  // -------------------------------------------
  // --- DARC header
  // -------------------------------------------
  // If the CDH has been read then 
  // the DARC header must follow
  if(fReadOutCard==0 && fIsDARCHeader){
    //printf("\t ---- DARC header ----\n");
    if(fIsCalib){
      fDeadfaceOffset = 9;
      fDeadbeefOffset = 25;
    }
    else{
      fDeadfaceOffset = 1;
      fDeadbeefOffset = 7;
    }
    fDataOffset = 1+fDeadbeefOffset;
    fIsDARCHeader = kFALSE;
  }
    
  // ---------------------------------------------
  // --- Start of data event (SOD)             ---
  // --- decoding mapping of connected ADC ch. ---
  // ---------------------------------------------
  // In the SOD event ADC ch. mapping is written
  if(fEvType==10){
   if(fSODReading){
    
    if(fPosition>=fDataOffset){
      if((fBuffer&0xff000001) == 0xff000001){ // ************** Mapping
        // DARC 1st datum @ fDataOffset+1 \ ZRC 1st valid datum @ fDataOffset=0
        if((fPosition==fDataOffset+1) || (fPosition==fDataOffset)){ 
	   printf("\n\n ------ AliZDCRawStream -> Reading mapping from StartOfData event ------\n");
	   fCurrentCh=0; fCurrScCh=0; fCurrTDCCh=0;	
        }
	else{
	  printf(" ------ AliZDCRawStream -> End of ZDC StartOfData event ------\n\n");
          fSODReading = kFALSE;
	  return kFALSE;
	}
      }
      else if((fBuffer&0xff000002) == 0xff000002){ // ************** Threshold settings
        fPosition++;
	return kFALSE; // !!!!!!!!!!!!!!!!!!!!!  For the moment thresholds are not read
      }
      else if((fBuffer&0x80000000)>>31 == 1){ // --- Mapping header
        fIsHeaderMapping = kTRUE;
	fADCModule = ((fBuffer & 0x7f000000)>>24); // GEO address!!!
	fModType = ((fBuffer & 0x7ff00)>>8); 
	fADCNChannels = (fBuffer & 0xff);          // # of channels following the header
	//
	printf("  ******** GEO %d, mod. type %d, #ch. %d\n",fADCModule,fModType,fADCNChannels);
      }
      else if((fBuffer&0x80000000)>>31 == 0){ // --- Mapping channel
	fADCChannel = ((fBuffer & 0x3fff0000)>>16);
	fCabledSignal = (fBuffer&0xffff);
        //
	if(fModType == kV965){ // ******** ADCs ********************************
          // Channel signal
	  if((fBuffer&0x40000000)>>30==0 && fADCModule<=kLastADCGeo){ // *ZDC* high range chain ADC
            fIsChMapping = kTRUE;
	    fMapADC[fCurrentCh][0] = fADCModule;
	    fMapADC[fCurrentCh][1] = fADCChannel;
	    fMapADC[fCurrentCh][2] = fCabledSignal;
	    //  - No. of channels on
	    fNChannelsOn++;
	    //
	    // Determining detector and sector
	    // -----------------------------------------
	    //  For the decoding of the following lines 
	    //  look the enum in AliZDCRawStream.h file
	    // -----------------------------------------
	    if((fCabledSignal>=2 && fCabledSignal<=6) || (fCabledSignal>=26 && fCabledSignal<=30)
	      || fCabledSignal==24 || fCabledSignal==48){
	      fMapADC[fCurrentCh][3] = 4; //ZNA
	      //
	      if(fCabledSignal==kZNAC || fCabledSignal==kZNACoot)       fMapADC[fCurrentCh][4]=0;
	      else if(fCabledSignal==kZNA1 || fCabledSignal==kZNA1oot)  fMapADC[fCurrentCh][4]=1;
	      else if(fCabledSignal==kZNA2 || fCabledSignal==kZNA2oot)  fMapADC[fCurrentCh][4]=2;
	      else if(fCabledSignal==kZNA3 || fCabledSignal==kZNA3oot)  fMapADC[fCurrentCh][4]=3;
	      else if(fCabledSignal==kZNA4 || fCabledSignal==kZNA4oot)  fMapADC[fCurrentCh][4]=4;
	      else if(fCabledSignal==kZDCAMon || fCabledSignal==kZDCAMonoot) fMapADC[fCurrentCh][4]=5; //Reference PTM
	    }
	    else if((fCabledSignal>=7 && fCabledSignal<=11) || (fCabledSignal>=31 && fCabledSignal<=35)){
	      fMapADC[fCurrentCh][3] = 5; //ZPA
	      //
	      if(fCabledSignal==kZPAC || fCabledSignal==kZPACoot)      fMapADC[fCurrentCh][4]=0;
	      else if(fCabledSignal==kZPA1 || fCabledSignal==kZPA1oot) fMapADC[fCurrentCh][4]=1;
	      else if(fCabledSignal==kZPA2 || fCabledSignal==kZPA2oot) fMapADC[fCurrentCh][4]=2;
	      else if(fCabledSignal==kZPA3 || fCabledSignal==kZPA3oot) fMapADC[fCurrentCh][4]=3;
	      else if(fCabledSignal==kZPA4 || fCabledSignal==kZPA4oot) fMapADC[fCurrentCh][4]=4;
	    }
	    else if((fCabledSignal>=12 && fCabledSignal<=16) || (fCabledSignal>=36 && fCabledSignal<=40)
	       || fCabledSignal==25 || fCabledSignal==49){
	      fMapADC[fCurrentCh][3] = 1; //ZNC
	      //
	      if(fCabledSignal==kZNCC || fCabledSignal==kZNCCoot)      fMapADC[fCurrentCh][4]=0;
	      else if(fCabledSignal==kZNC1 || fCabledSignal==kZNC1oot) fMapADC[fCurrentCh][4]=1;
	      else if(fCabledSignal==kZNC2 || fCabledSignal==kZNC2oot) fMapADC[fCurrentCh][4]=2;
	      else if(fCabledSignal==kZNC3 || fCabledSignal==kZNC3oot) fMapADC[fCurrentCh][4]=3;
	      else if(fCabledSignal==kZNC4 || fCabledSignal==kZNC4oot) fMapADC[fCurrentCh][4]=4;
	      else if(fCabledSignal==kZDCCMon || fCabledSignal==kZDCCMonoot) fMapADC[fCurrentCh][4]=5; //Reference PTM
	    }
	    else if((fCabledSignal>=17 && fCabledSignal<=21) || (fCabledSignal>=41 && fCabledSignal<=45)){
	      fMapADC[fCurrentCh][3] = 2; //ZPC
	      //
	      if(fCabledSignal==kZPCC || fCabledSignal==kZPCCoot)   fMapADC[fCurrentCh][4]=0;
	      else if(fCabledSignal==kZPC1 || fCabledSignal==kZPC1oot) fMapADC[fCurrentCh][4]=1;
	      else if(fCabledSignal==kZPC2 || fCabledSignal==kZPC2oot) fMapADC[fCurrentCh][4]=2;
	      else if(fCabledSignal==kZPC3 || fCabledSignal==kZPC3oot) fMapADC[fCurrentCh][4]=3;
	      else if(fCabledSignal==kZPC4 || fCabledSignal==kZPC4oot) fMapADC[fCurrentCh][4]=4;
	    }
	    else if(fCabledSignal==22 || fCabledSignal==23 || fCabledSignal==46 || fCabledSignal==47){
	      fMapADC[fCurrentCh][3] = 3; // ZEM
	      //
	      if(fCabledSignal==kZEM1 || fCabledSignal==kZEM1oot)      fMapADC[fCurrentCh][4]=1;
	      else if(fCabledSignal==kZEM2 || fCabledSignal==kZEM2oot) fMapADC[fCurrentCh][4]=2;
	    }
	    //Ch. debug
      	    //printf("\tADC mod. %d ch. %d signal %d ",fADCModule,fADCChannel,fCabledSignal);
	    //printf("  det. %d sec. %d\n",fMapADC[fCurrentCh][3],fMapADC[fCurrentCh][4]);
	    //
	    fCurrentCh++;
	    //
	  } // high range channels
        }// ModType=1 (ADC mapping)
        else if(fModType == kV830){  // ******** VME scaler **************************
          fIsChMapping = kTRUE;
	  fScalerMap[fCurrScCh][0] = fADCModule;
	  fScalerMap[fCurrScCh][1] = fADCChannel;
	  fScalerMap[fCurrScCh][2] = fCabledSignal;
	  //
	  // Determining detector and sector
	  // -----------------------------------------
	  //  For the decoding of the following lines 
	  //  look the enum in AliZDCRawStream.h file
	  // -----------------------------------------
	  // NOT CONSIDERING OUT OF TIME OR REFERENCE SIGNALS FOR SCALER!!!!!
	  if((fCabledSignal>=2 && fCabledSignal<=6) ||
	     (fCabledSignal>=61 && fCabledSignal<=65)){
	    fScalerMap[fCurrScCh][3] = 4; //ZNA
	    //
	    if(fCabledSignal==kZNAC || fCabledSignal==kZNACD)      fScalerMap[fCurrScCh][4]=0;
	    else if(fCabledSignal==kZNA1 || fCabledSignal==kZNA1D) fScalerMap[fCurrScCh][4]=1;
	    else if(fCabledSignal==kZNA2 || fCabledSignal==kZNA2D) fScalerMap[fCurrScCh][4]=2;
	    else if(fCabledSignal==kZNA3 || fCabledSignal==kZNA3D) fScalerMap[fCurrScCh][4]=3;
	    else if(fCabledSignal==kZNA4 || fCabledSignal==kZNA4D) fScalerMap[fCurrScCh][4]=4;
	  }
	  else if((fCabledSignal>=7 && fCabledSignal<=11) ||
	     (fCabledSignal>=66 && fCabledSignal<=70)){
	    fScalerMap[fCurrScCh][3] = 5; //ZPA
	    //
	    if(fCabledSignal==kZPAC || fCabledSignal==kZPACD)      fScalerMap[fCurrScCh][4]=0;
	    else if(fCabledSignal==kZPA1 || fCabledSignal==kZPA1D) fScalerMap[fCurrScCh][4]=1;
	    else if(fCabledSignal==kZPA2 || fCabledSignal==kZPA2D) fScalerMap[fCurrScCh][4]=2;
	    else if(fCabledSignal==kZPA3 || fCabledSignal==kZPA3D) fScalerMap[fCurrScCh][4]=3;
	    else if(fCabledSignal==kZPA4 || fCabledSignal==kZPA4D) fScalerMap[fCurrScCh][4]=4;
	  }
	  else if((fCabledSignal>=12 && fCabledSignal<=16) ||
	     (fCabledSignal>=71 && fCabledSignal<=75)){
	    fScalerMap[fCurrScCh][3] = 1; //ZNC
	    //
	    if(fCabledSignal==kZNCC || fCabledSignal==kZNCCD)      fScalerMap[fCurrScCh][4]=0;
	    else if(fCabledSignal==kZNC1 || fCabledSignal==kZNC1D) fScalerMap[fCurrScCh][4]=1;
	    else if(fCabledSignal==kZNC2 || fCabledSignal==kZNC2D) fScalerMap[fCurrScCh][4]=2;
	    else if(fCabledSignal==kZNC3 || fCabledSignal==kZNC3D) fScalerMap[fCurrScCh][4]=3;
	    else if(fCabledSignal==kZNC4 || fCabledSignal==kZNC4D) fScalerMap[fCurrScCh][4]=4;
	  }
	  else if((fCabledSignal>=17 && fCabledSignal<=21) ||
	     (fCabledSignal>=76 && fCabledSignal<=80)){
	    fScalerMap[fCurrScCh][3] = 2; //ZPC
	    //
	    if(fCabledSignal==kZPCC || fCabledSignal==kZPCCD) fScalerMap[fCurrScCh][4]=0;
	    else if(fCabledSignal==kZPC1 || fCabledSignal==kZPC1D)  fScalerMap[fCurrScCh][4]=1;
	    else if(fCabledSignal==kZPC2 || fCabledSignal==kZPC2D)  fScalerMap[fCurrScCh][4]=2;
	    else if(fCabledSignal==kZPC3 || fCabledSignal==kZPC3D)  fScalerMap[fCurrScCh][4]=3;
	    else if(fCabledSignal==kZPC4 || fCabledSignal==kZPC4D)  fScalerMap[fCurrScCh][4]=4;
	  }
	  else if(fCabledSignal==22 || fCabledSignal==23 ||
	          fCabledSignal==81 || fCabledSignal==82){
	    fScalerMap[fCurrScCh][3] = 3; // ZEM
	    //
	    if(fCabledSignal==kZEM1 || fCabledSignal==kZEM1D)      fScalerMap[fCurrScCh][4]=1;
	    else if(fCabledSignal==kZEM2 || fCabledSignal==kZEM2D) fScalerMap[fCurrScCh][4]=2;
	  }
      	  // Ch debug.
	  /*printf("\t VME scaler mod. %d ch. %d, signal %d",fScalerMap[fCurrScCh][0],fADCChannel,fCabledSignal);
	  if(fCabledSignal!=0 && fCabledSignal!=1) printf("  det. %d sec. %d\n",fScalerMap[fCurrScCh][3],fScalerMap[fCurrScCh][4]);
	  else printf("  Signal void/not connected\n");*/
	  
          fCurrScCh++;
        }
	else if(fModType==KV1290 && fADCModule==kZDCTDCGeo){  // ******** ZDC TDC **************************
          fIsChMapping = kTRUE;
	  fTDCMap[fCurrTDCCh][0] = fADCModule;
	  fTDCMap[fCurrTDCCh][1] = fADCChannel;
	  fTDCMap[fCurrTDCCh][2] = fCabledSignal;
          
	  fCurrTDCCh++;
      	  
      	  // Ch debug.
	  //printf("\tZDC TDC: mod. %d ch. %d, signal %d\n",fADCModule,fADCChannel,fCabledSignal);	  
        }
	/*else if(fModType == kTRG){ // **** scalers from trigger card
      	  //printf("\t Trigger scaler mod. %d ch. %d, signal %d\n",fADCModule,fADCChannel,fCabledSignal);	  
        }
	else if(fModType == kTRGI){ // **** trigger history from trigger card
      	  //printf("\t Trigger card ch. %d, signal %d\n",fADCChannel,fCabledSignal);
        }
	else if(fModType == kPU){ // **** pattern unit
      	  //printf("\t P.U. mod. %d ch. %d, signal %d\n",fADCModule,fADCChannel,fCabledSignal);
        }*/
      }//reading channel mapping
    }
   } // if fSODREading
   fPosition++;
   return kTRUE;
  } // ------------------------------- SOD event
  
  // -------------------------------------------
  // --- DARC data
  // -------------------------------------------
  if(fPosition<fDeadfaceOffset && fReadOutCard==0){
    fPosition++;
    return kTRUE;
  }
  else if(fPosition==fDeadfaceOffset && fReadOutCard==0){
    if(fBuffer != 0xdeadface){
      //AliWarning(" NO deadface after DARC data");
      fRawReader->AddMajorErrorLog(kDARCError); 
    }
    else{
      fPosition++;
      return kTRUE;
    }
  }
  else if(fPosition>fDeadfaceOffset && fPosition<fDeadbeefOffset && fReadOutCard==0){
    fPosition++;
    return kTRUE;
  }
  else if(fPosition==fDeadbeefOffset && fReadOutCard==0){
    if(fBuffer != 0xdeadbeef){
      //AliWarning(" NO deadbeef after DARC global data");
      fRawReader->AddMajorErrorLog(kDARCError);  
      fPosition++;
      return kFALSE;
    }
    else{
      fPosition++;
      return kTRUE;
    }
  } // ------------------------------- End of DARC data
  
  // ---------------------------------------------
  // --- ZDC data
  // --- ADCs + VME scaler + trigger card + P.U.
  // ---------------------------------------------
  else if(fPosition>=fDataOffset){
    
    if(!fSODReading && !fIsMapRead) ReadChMap();
    
    //  !!!!!!!!!!!!!!! DARC readout card only !!!!!!!!!!!
    // Not valid datum before the event 
    // there MUST be a NOT valid datum before the event!!!
    if(fReadOutCard==0){
      if(fPosition==fDataOffset){ 
        //printf("\t **** ZDC data begin ****\n");
        if((fBuffer & 0x07000000) != 0x06000000){
          fRawReader->AddMajorErrorLog(kZDCDataError);
        }
        //else if((fBuffer & 0x07000000) == 0x06000001){ // Corrupted event!!!
        //  fIsADCEventGood = kFALSE;
        //}
      }
    
      // If the not valid datum isn't followed by the 1st ADC header
      // the event is corrupted (i.e., 2 gates arrived before trigger)
      else if(fPosition==fDataOffset+1){ 
        if((fBuffer & 0x07000000) != 0x02000000){
          AliWarning("ZDC ADC -> The not valid datum is NOT followed by an ADC header!");
          fRawReader->AddMajorErrorLog(kZDCDataError);
          fIsADCEventGood = kFALSE;
	  fPosition++;
	  return kFALSE;
        }
      }
    }
     
    // Get geo address of current word
    if(fIsTDCHeaderRead && fIsZDCTDCHeader) fADCModule = kZDCTDCGeo;
    else if(fIsTDCHeaderRead && fIsADDTDCHeader) fADCModule = kADDTDCGeo;
    else fADCModule = (Int_t) ((fBuffer & 0xf8000000)>>27);
    
    // ************************************ ADC MODULES ************************************
    if(fADCModule>=kFirstADCGeo && fADCModule<=kLastADCGeo && 
       !fIsTriggerHistory && !fIsScHeaderRead && !fIsTriggerScaler){
      // *** ADC header
      if((fBuffer & 0x07000000) == 0x02000000){
        fIsADCHeader = kTRUE;
    	fADCNChannels = ((fBuffer & 0x00003f00)>>8);
    	//printf("  AliZDCRawStream -> ADC HEADER: mod.%d has %d ch. \n",fADCModule,fADCNChannels);
      }
      // *** ADC data word
      else if((fBuffer & 0x07000000) == 0x00000000){
        fIsADCDataWord = kTRUE;
        fADCChannel = ((fBuffer & 0x1e0000) >> 17);
        fADCGain = ((fBuffer & 0x10000) >> 16);       
        fADCValue = (fBuffer & 0xfff);  
    	//
	//printf("  AliZDCRawStream -> ADC DATUM: mod. %d ch. %d gain %d value %d\n",
	  //fADCModule,fADCChannel,fADCGain,fADCValue);
	
	// Checking if the channel map for the ADCs has been provided/read
	if(fMapADC[0][0]==-1){
	  printf("\t ATTENTION!!! No ADC mapping has been found/provided!!!\n");
	  return kFALSE;
	}
	//
	/*for(Int_t ci=0; ci<kNch; ci++){
	  printf("  %d mod %d ch %d det %d sec %d\n",ci,fMapADC[ci][0],
          fMapADC[ci][1], fMapADC[ci][3], fMapADC[ci][4]);
	}*/
		
	// Scan of the map to assign the correct volumes
	Int_t foundMapEntry = kFALSE;
	for(Int_t k=0; k<kNch; k++){
	   if(fADCModule==fMapADC[k][0] && fADCChannel==fMapADC[k][1]){
	     fSector[0] = fMapADC[k][3];
	     fSector[1] = fMapADC[k][4];
	     foundMapEntry = kTRUE;
	     break;
	   } 
	}
	if(foundMapEntry==kFALSE && fEvType==7){
	  AliWarning(Form(" No valid entry in ADC mapping for raw data %d ADCmod. %d ch. %d\n",
	      fPosition,fADCModule,fADCChannel));
	}

	// Final checks
	if(foundMapEntry==kTRUE && fEvType==7){
	  if(fSector[0]<1 || fSector[0]>5){
            AliWarning(Form(" No valid detector assignment: %d",fSector[0]));
            fRawReader->AddMajorErrorLog(kInvalidSector);
	  }
	  //
	  if(fSector[1]<0 || fSector[1]>5){
            AliWarning(Form(" No valid sector assignment: %d",fSector[1]));
            fRawReader->AddMajorErrorLog(kInvalidSector);
	  }
	  //
	  if(fADCModule<0 || fADCModule>3){
            AliError(Form(" No valid ADC module: %d",fADCModule));
            fRawReader->AddMajorErrorLog(kInvalidADCModule);
          }
	}

	// Checking the underflow and overflow bits
        if(fBuffer & 0x1000)       fIsUnderflow = kTRUE;
	else if (fBuffer & 0x2000) fIsOverflow = kTRUE; 
        	
      }//ADC data word
      // *** ADC EOB
      else if((fBuffer & 0x07000000) == 0x04000000){
        fIsADCEOB = kTRUE;
    	//printf("  AliZDCRawStream -> ADC EOB --------------------------\n");
      }
    }//ADC module
    // ********************************* ADD ADC *********************************
    else if(fADCModule == kADDADCGeo){
      // *** ADC header
      if((fBuffer & 0x07000000) == 0x02000000){
        fIsADCHeader = kTRUE;
    	fADCNChannels = ((fBuffer & 0x00003f00)>>8);
    	//printf("  AliZDCRawStream -> ADD ADC HEADER: mod.%d has %d ch. \n",fADCModule,fADCNChannels);
      }
      // *** ADC data word
      else if((fBuffer & 0x07000000) == 0x00000000){
        fIsADDChannel = kTRUE;
        fADCChannel = ((fBuffer & 0x1e0000) >> 17);
        fADCGain = ((fBuffer & 0x10000) >> 16);       
        fADCValue = (fBuffer & 0xfff);  
    	//
	//printf("  ADD ADC DATUM -> mod. %d ch. %d gain %d value %d\n",
	//  fADCModule,fADCChannel,fADCGain,fADCValue);
      }
      // *** ADC EOB
      else if((fBuffer & 0x07000000) == 0x04000000){
        fIsADCEOB = kTRUE;
    	//printf("  AliZDCRawStream -> ADD ADC EOB --------------------------\n");
      }
    }
    // ********************************* TDC *********************************
    else if(fADCModule==kTDCFakeGeo && fIsTDCHeaderRead==kFALSE){
      // *** TDC header
      fIsTDCHeaderRead = kTRUE;
      fTDCStartCounter = fPosition;
      // GEO address from TDC header
      fADCModule = (Int_t) (fBuffer & 0x1f);
      if(fADCModule==kZDCTDCGeo){ // *** ZDC TDC
        fIsZDCTDCHeader = kTRUE;
        //Ch. debug
        //printf("  AliZDCRawStream -> ZDC TDC header: mod.%d\n",fADCModule);
      }
      else if(fADCModule==kADDTDCGeo){ // *** ADD TDC
        fIsADDTDCHeader = kTRUE;
        //Ch. debug
        //printf("  AliZDCRawStream -> ADD TDC: mod.%d\n",fADCModule);
      }
    }
    // ********************************* VME SCALER HEADER *********************************
    else if(fADCModule == kScalerGeo){
      if(fBuffer & 0x04000000 && fIsScHeaderRead==kFALSE){ // *** Scaler header
        fScGeo = (fBuffer & 0xf8000000)>>27;	   
        fScNWords = (fBuffer & 0x00fc0000)>>18;	   
        fScTriggerSource = (fBuffer & 0x00030000)>>16;	   
        fScTriggerNumber = (fBuffer & 0x0000ffff);
        fIsScHeaderRead = kTRUE; 
	fScStartCounter = fPosition;
        //Ch. debug
        //printf("  AliZDCRawStream -> VME SCALER HEADER: geo %d Nwords %d TrigSource %d TrigNo. %d\n",
        //   fScGeo,fScNWords,fScTriggerSource,fScTriggerNumber);
      } 
      // Commented by C.O. & M.G. (23/09/2011)
      //else if(!(fBuffer & 0x04000000) && fIsScHeaderRead==kFALSE){
      //  fIsScEventGood = kFALSE;
      //}
    }
    // *********************************** PATTERN UNIT ***********************************
    else if(fADCModule == kPUGeo){
      // still to be implemented!!! Not yet in data!!!
      fDetPattern = (fBuffer & 0x0000003f);
      // Ch. debug
      //printf("  AliZDCRawStream -> Pattern Unit\n");
      
    }
    // ******************************** TRIGGER CARD COUNTS ********************************
    else if(fADCModule == kTrigScales){
      if(fIsTriggerScaler == kFALSE){
        fTrigCountNWords = (Int_t) ((fBuffer & 0xfc0000)>>17);
        fTrigCountStart = fPosition;
	fIsTriggerScaler = kTRUE;
      }
      // Ch. debug
      //printf("  AliZDCRawStream -> Trigger Scaler header\n");      
    }
    // ********************************** TRIGGER HISTORY **********************************
    else if(fADCModule == kTrigHistory){
      if(fIsTriggerHistory == kFALSE){
        fTrigHistNWords = (Int_t) ((fBuffer & 0xfc0000)>>17);
	fTrigHistStart = fPosition;
        fIsTriggerHistory = kTRUE;
      }
      // Ch. debug
      //printf("  AliZDCRawStream -> Trigger History header\n");
      
    } 
    // ********************************** VME SCALER DATA **********************************
    //  Reading VME scaler data 
    if(fIsScHeaderRead && fPosition>=fScStartCounter+1){ // *** Scaler word
      fADCModule=kScalerGeo; 
      fIsADCDataWord=kFALSE; 
      fIsScalerWord=kTRUE;
      fScEvCounter = fBuffer;
      Int_t nWords = (Int_t) (fScNWords);
      if(fPosition == fScStartCounter+nWords) fIsScHeaderRead = kFALSE;
      //Ch. debug
      //printf("  AliZDCRawStream -> scaler datum %x \n", fScEvCounter);
    }
    // ********************************** ZDC TDC DATA **********************************
    //  ZDC TDC data
    if(fIsTDCHeaderRead && fIsZDCTDCHeader && fPosition>=fTDCStartCounter+1){ 
      fIsADCDataWord=kFALSE; fIsScalerWord=kFALSE;
      if(((fBuffer & 0xf0000000)==0x00000000) && (((fBuffer & 0x08000000) >> 27) == 0)){ // TDC datum
        fADCChannel = (Int_t) ((fBuffer & 0x3e00000) >> 21);
	fIsZDCTDCdatum = kTRUE;
	fZDCTDCdatum = (Int_t) (fBuffer & 0x1fffff);
        // Ch. debug
        //printf("  AliZDCRawStream -> ZDC TDC mod. %d ch. %d datum %d\n",fADCModule,fADCChannel,fZDCTDCdatum);
      }
      if(((fBuffer & 0xf0000000) == 0x80000000) && ((fBuffer & 0x08000000) >> 27) == 0){
	// Trailer
	fIsTDCHeaderRead = kFALSE;
        // Ch. debug
        //printf("  AliZDCRawStream -> ZDC TDC global trailer\n");
      }
    }
    // ********************************** ADD TDC DATA **********************************
    //  ADD TDC data
    if(fIsTDCHeaderRead && fIsADDTDCHeader && fPosition>=fTDCStartCounter+1){ 
      fIsADCDataWord=kFALSE; fIsScalerWord=kFALSE;
      if(((fBuffer & 0xf0000000)==0x00000000) && (((fBuffer & 0x08000000) >> 27) == 0)){ // TDC datum
        fADCChannel = (Int_t) ((fBuffer & 0x3e00000) >> 21);
	fIsADDTDCdatum = kTRUE;
	fADDTDCdatum = (Int_t) (fBuffer & 0x1fffff);
        // Ch. debug
        //printf("  AliZDCRawStream -> ADD TDC mod. %d ch. %d datum %d\n",fADCModule,fADCChannel,fADDTDCdatum);
      }
      if(((fBuffer & 0xf0000000) == 0x80000000) && ((fBuffer & 0x08000000) >> 27) == 0){
	// Trailer
	fIsTDCHeaderRead = kFALSE;
        // Ch. debug
        //printf("  AliZDCRawStream -> ADD TDC global trailer\n");
      }
    }
    // ******************************** TRIGGER SCALER DATA ********************************
    //  Reading trigger scaler data 
    if(fIsTriggerScaler && fPosition>=fTrigCountStart+1){
      fADCModule = kTrigScales; fIsADCDataWord = kFALSE;	
      if(fPosition == fTrigCountStart+1)      fMBTrigInput = fBuffer;		    
      else if(fPosition == fTrigCountStart+2) fCentralTrigInput = fBuffer;		    
      else if(fPosition == fTrigCountStart+3) fSCentralTrigInput = fBuffer;
      else if(fPosition == fTrigCountStart+4) fEMDTrigInput = fBuffer; 
      else if(fPosition == fTrigCountStart+5) fL0Received = fBuffer;
      else if(fPosition == fTrigCountStart+6) fMBtrig2CTP = fBuffer;	 
      else if(fPosition == fTrigCountStart+7) fCentralTrig2CTP = fBuffer;  
      else if(fPosition == fTrigCountStart+8) fSCentralTrig2CTP = fBuffer; 
      else if(fPosition == fTrigCountStart+9){
        fEMDTrig2CTP = fBuffer;       
        fIsTriggerScaler = kFALSE;
      }
      // Ch. debug
      //printf("  AliZDCRawStream -> Trigger Scaler datum %d\n", fPosition-fTrigCountStart);
    }
    // ******************************* TRIGGER HISTORY WORDS ******************************
    //  Reading trigger history
    if(fIsTriggerHistory && fPosition>=fTrigHistStart+1){
	fADCModule = kTrigHistory; fIsADCDataWord = kFALSE;	
	if(fPosition == fTrigHistStart+1){
	  fPileUpBit1stWord = (fBuffer & 0x80000000) >> 31;
	  fL0Bit1stWord = (fBuffer & 0x40000000) >> 30;        
	  fCentralTrigHist = (fBuffer & 0x3fff8000) >> 14; 
	  fMBTrigHist =  (fBuffer & 0x00007fff);        
	  //
	  fCPTInput[0] = (fBuffer & 0x00000080) >> 6;  // MB bit
	  fCPTInput[1] = (fBuffer & 0x00400000) >> 21; // CENTRAL bit
        }
	
	else if(fPosition == fTrigHistStart+fTrigHistNWords){
          fPileUpBit2ndWord = (fBuffer & 0x80000000) >> 31;
          fL0Bit2ndWord = (fBuffer & 0x40000000) >> 30;	     
          fSCentralTrigHist = (fBuffer & 0x3fff8000) >> 14; 
          fEMDTrigHist =  (fBuffer & 0x00007fff); 	 
          //
          fCPTInput[2] = (fBuffer & 0x00000080) >> 6;  // SEMICENTRAL bit
          fCPTInput[3] = (fBuffer & 0x00400000) >> 21; // EMD bit
	  //
	  fIsTriggerHistory = kFALSE;
          
	  // Checking if the event is good
          // (1) both history word pile up bits must be = 0
          if(fPileUpBit1stWord==0 && fPileUpBit2ndWord==0) fIsPileUpEvent = kFALSE;
          else{
            fIsPileUpEvent = kTRUE;
	    printf("  AliZDCRawStream -> PILE UP EVENT: bitPileUp0 %d bitPileUp1 %d\n",
	    	fPileUpBit1stWord, fPileUpBit2ndWord);
          }
	  // (2) both history word L0 bits must be = 1
          if(fL0Bit1stWord==1 && fL0Bit2ndWord==1) fIsL0BitSet = kTRUE;
          else{
            fIsL0BitSet = kFALSE;
	    printf("  AliZDCRawStream -> L0 wrongly set: bitL0word0 %d bitL0word1 %d\n",
	    	fL0Bit1stWord, fL0Bit2ndWord);
          }
        }       
        // Ch. debug
        //printf("  AliZDCRawStream -> Trigger history word[%d] %x\n", fPosition, fBuffer);
    }
    
  }

  fPosition++;

  return kTRUE;
}

//_____________________________________________________________________________
AliCDBStorage* AliZDCRawStream::SetStorage(const char *uri) 
{
  // Setting the storage
  
  AliCDBStorage *storage = AliCDBManager::Instance()->GetStorage(uri); 

  return storage; 
}


//_____________________________________________________________________________
AliZDCChMap* AliZDCRawStream::GetChMap() const
{

  // Getting calibration object for ZDC
  AliZDCChMap *calibdata = 0x0;
  AliCDBEntry  *entry = AliCDBManager::Instance()->Get("ZDC/Calib/ChMap");
  if(!entry) AliFatal("No calibration data loaded!");  
  else{
    calibdata = dynamic_cast<AliZDCChMap*> (entry->GetObject());
    if(!calibdata) AliFatal("Wrong calibration object in calibration  file!");
  }

  return calibdata;
}
 AliZDCRawStream.cxx:1
 AliZDCRawStream.cxx:2
 AliZDCRawStream.cxx:3
 AliZDCRawStream.cxx:4
 AliZDCRawStream.cxx:5
 AliZDCRawStream.cxx:6
 AliZDCRawStream.cxx:7
 AliZDCRawStream.cxx:8
 AliZDCRawStream.cxx:9
 AliZDCRawStream.cxx:10
 AliZDCRawStream.cxx:11
 AliZDCRawStream.cxx:12
 AliZDCRawStream.cxx:13
 AliZDCRawStream.cxx:14
 AliZDCRawStream.cxx:15
 AliZDCRawStream.cxx:16
 AliZDCRawStream.cxx:17
 AliZDCRawStream.cxx:18
 AliZDCRawStream.cxx:19
 AliZDCRawStream.cxx:20
 AliZDCRawStream.cxx:21
 AliZDCRawStream.cxx:22
 AliZDCRawStream.cxx:23
 AliZDCRawStream.cxx:24
 AliZDCRawStream.cxx:25
 AliZDCRawStream.cxx:26
 AliZDCRawStream.cxx:27
 AliZDCRawStream.cxx:28
 AliZDCRawStream.cxx:29
 AliZDCRawStream.cxx:30
 AliZDCRawStream.cxx:31
 AliZDCRawStream.cxx:32
 AliZDCRawStream.cxx:33
 AliZDCRawStream.cxx:34
 AliZDCRawStream.cxx:35
 AliZDCRawStream.cxx:36
 AliZDCRawStream.cxx:37
 AliZDCRawStream.cxx:38
 AliZDCRawStream.cxx:39
 AliZDCRawStream.cxx:40
 AliZDCRawStream.cxx:41
 AliZDCRawStream.cxx:42
 AliZDCRawStream.cxx:43
 AliZDCRawStream.cxx:44
 AliZDCRawStream.cxx:45
 AliZDCRawStream.cxx:46
 AliZDCRawStream.cxx:47
 AliZDCRawStream.cxx:48
 AliZDCRawStream.cxx:49
 AliZDCRawStream.cxx:50
 AliZDCRawStream.cxx:51
 AliZDCRawStream.cxx:52
 AliZDCRawStream.cxx:53
 AliZDCRawStream.cxx:54
 AliZDCRawStream.cxx:55
 AliZDCRawStream.cxx:56
 AliZDCRawStream.cxx:57
 AliZDCRawStream.cxx:58
 AliZDCRawStream.cxx:59
 AliZDCRawStream.cxx:60
 AliZDCRawStream.cxx:61
 AliZDCRawStream.cxx:62
 AliZDCRawStream.cxx:63
 AliZDCRawStream.cxx:64
 AliZDCRawStream.cxx:65
 AliZDCRawStream.cxx:66
 AliZDCRawStream.cxx:67
 AliZDCRawStream.cxx:68
 AliZDCRawStream.cxx:69
 AliZDCRawStream.cxx:70
 AliZDCRawStream.cxx:71
 AliZDCRawStream.cxx:72
 AliZDCRawStream.cxx:73
 AliZDCRawStream.cxx:74
 AliZDCRawStream.cxx:75
 AliZDCRawStream.cxx:76
 AliZDCRawStream.cxx:77
 AliZDCRawStream.cxx:78
 AliZDCRawStream.cxx:79
 AliZDCRawStream.cxx:80
 AliZDCRawStream.cxx:81
 AliZDCRawStream.cxx:82
 AliZDCRawStream.cxx:83
 AliZDCRawStream.cxx:84
 AliZDCRawStream.cxx:85
 AliZDCRawStream.cxx:86
 AliZDCRawStream.cxx:87
 AliZDCRawStream.cxx:88
 AliZDCRawStream.cxx:89
 AliZDCRawStream.cxx:90
 AliZDCRawStream.cxx:91
 AliZDCRawStream.cxx:92
 AliZDCRawStream.cxx:93
 AliZDCRawStream.cxx:94
 AliZDCRawStream.cxx:95
 AliZDCRawStream.cxx:96
 AliZDCRawStream.cxx:97
 AliZDCRawStream.cxx:98
 AliZDCRawStream.cxx:99
 AliZDCRawStream.cxx:100
 AliZDCRawStream.cxx:101
 AliZDCRawStream.cxx:102
 AliZDCRawStream.cxx:103
 AliZDCRawStream.cxx:104
 AliZDCRawStream.cxx:105
 AliZDCRawStream.cxx:106
 AliZDCRawStream.cxx:107
 AliZDCRawStream.cxx:108
 AliZDCRawStream.cxx:109
 AliZDCRawStream.cxx:110
 AliZDCRawStream.cxx:111
 AliZDCRawStream.cxx:112
 AliZDCRawStream.cxx:113
 AliZDCRawStream.cxx:114
 AliZDCRawStream.cxx:115
 AliZDCRawStream.cxx:116
 AliZDCRawStream.cxx:117
 AliZDCRawStream.cxx:118
 AliZDCRawStream.cxx:119
 AliZDCRawStream.cxx:120
 AliZDCRawStream.cxx:121
 AliZDCRawStream.cxx:122
 AliZDCRawStream.cxx:123
 AliZDCRawStream.cxx:124
 AliZDCRawStream.cxx:125
 AliZDCRawStream.cxx:126
 AliZDCRawStream.cxx:127
 AliZDCRawStream.cxx:128
 AliZDCRawStream.cxx:129
 AliZDCRawStream.cxx:130
 AliZDCRawStream.cxx:131
 AliZDCRawStream.cxx:132
 AliZDCRawStream.cxx:133
 AliZDCRawStream.cxx:134
 AliZDCRawStream.cxx:135
 AliZDCRawStream.cxx:136
 AliZDCRawStream.cxx:137
 AliZDCRawStream.cxx:138
 AliZDCRawStream.cxx:139
 AliZDCRawStream.cxx:140
 AliZDCRawStream.cxx:141
 AliZDCRawStream.cxx:142
 AliZDCRawStream.cxx:143
 AliZDCRawStream.cxx:144
 AliZDCRawStream.cxx:145
 AliZDCRawStream.cxx:146
 AliZDCRawStream.cxx:147
 AliZDCRawStream.cxx:148
 AliZDCRawStream.cxx:149
 AliZDCRawStream.cxx:150
 AliZDCRawStream.cxx:151
 AliZDCRawStream.cxx:152
 AliZDCRawStream.cxx:153
 AliZDCRawStream.cxx:154
 AliZDCRawStream.cxx:155
 AliZDCRawStream.cxx:156
 AliZDCRawStream.cxx:157
 AliZDCRawStream.cxx:158
 AliZDCRawStream.cxx:159
 AliZDCRawStream.cxx:160
 AliZDCRawStream.cxx:161
 AliZDCRawStream.cxx:162
 AliZDCRawStream.cxx:163
 AliZDCRawStream.cxx:164
 AliZDCRawStream.cxx:165
 AliZDCRawStream.cxx:166
 AliZDCRawStream.cxx:167
 AliZDCRawStream.cxx:168
 AliZDCRawStream.cxx:169
 AliZDCRawStream.cxx:170
 AliZDCRawStream.cxx:171
 AliZDCRawStream.cxx:172
 AliZDCRawStream.cxx:173
 AliZDCRawStream.cxx:174
 AliZDCRawStream.cxx:175
 AliZDCRawStream.cxx:176
 AliZDCRawStream.cxx:177
 AliZDCRawStream.cxx:178
 AliZDCRawStream.cxx:179
 AliZDCRawStream.cxx:180
 AliZDCRawStream.cxx:181
 AliZDCRawStream.cxx:182
 AliZDCRawStream.cxx:183
 AliZDCRawStream.cxx:184
 AliZDCRawStream.cxx:185
 AliZDCRawStream.cxx:186
 AliZDCRawStream.cxx:187
 AliZDCRawStream.cxx:188
 AliZDCRawStream.cxx:189
 AliZDCRawStream.cxx:190
 AliZDCRawStream.cxx:191
 AliZDCRawStream.cxx:192
 AliZDCRawStream.cxx:193
 AliZDCRawStream.cxx:194
 AliZDCRawStream.cxx:195
 AliZDCRawStream.cxx:196
 AliZDCRawStream.cxx:197
 AliZDCRawStream.cxx:198
 AliZDCRawStream.cxx:199
 AliZDCRawStream.cxx:200
 AliZDCRawStream.cxx:201
 AliZDCRawStream.cxx:202
 AliZDCRawStream.cxx:203
 AliZDCRawStream.cxx:204
 AliZDCRawStream.cxx:205
 AliZDCRawStream.cxx:206
 AliZDCRawStream.cxx:207
 AliZDCRawStream.cxx:208
 AliZDCRawStream.cxx:209
 AliZDCRawStream.cxx:210
 AliZDCRawStream.cxx:211
 AliZDCRawStream.cxx:212
 AliZDCRawStream.cxx:213
 AliZDCRawStream.cxx:214
 AliZDCRawStream.cxx:215
 AliZDCRawStream.cxx:216
 AliZDCRawStream.cxx:217
 AliZDCRawStream.cxx:218
 AliZDCRawStream.cxx:219
 AliZDCRawStream.cxx:220
 AliZDCRawStream.cxx:221
 AliZDCRawStream.cxx:222
 AliZDCRawStream.cxx:223
 AliZDCRawStream.cxx:224
 AliZDCRawStream.cxx:225
 AliZDCRawStream.cxx:226
 AliZDCRawStream.cxx:227
 AliZDCRawStream.cxx:228
 AliZDCRawStream.cxx:229
 AliZDCRawStream.cxx:230
 AliZDCRawStream.cxx:231
 AliZDCRawStream.cxx:232
 AliZDCRawStream.cxx:233
 AliZDCRawStream.cxx:234
 AliZDCRawStream.cxx:235
 AliZDCRawStream.cxx:236
 AliZDCRawStream.cxx:237
 AliZDCRawStream.cxx:238
 AliZDCRawStream.cxx:239
 AliZDCRawStream.cxx:240
 AliZDCRawStream.cxx:241
 AliZDCRawStream.cxx:242
 AliZDCRawStream.cxx:243
 AliZDCRawStream.cxx:244
 AliZDCRawStream.cxx:245
 AliZDCRawStream.cxx:246
 AliZDCRawStream.cxx:247
 AliZDCRawStream.cxx:248
 AliZDCRawStream.cxx:249
 AliZDCRawStream.cxx:250
 AliZDCRawStream.cxx:251
 AliZDCRawStream.cxx:252
 AliZDCRawStream.cxx:253
 AliZDCRawStream.cxx:254
 AliZDCRawStream.cxx:255
 AliZDCRawStream.cxx:256
 AliZDCRawStream.cxx:257
 AliZDCRawStream.cxx:258
 AliZDCRawStream.cxx:259
 AliZDCRawStream.cxx:260
 AliZDCRawStream.cxx:261
 AliZDCRawStream.cxx:262
 AliZDCRawStream.cxx:263
 AliZDCRawStream.cxx:264
 AliZDCRawStream.cxx:265
 AliZDCRawStream.cxx:266
 AliZDCRawStream.cxx:267
 AliZDCRawStream.cxx:268
 AliZDCRawStream.cxx:269
 AliZDCRawStream.cxx:270
 AliZDCRawStream.cxx:271
 AliZDCRawStream.cxx:272
 AliZDCRawStream.cxx:273
 AliZDCRawStream.cxx:274
 AliZDCRawStream.cxx:275
 AliZDCRawStream.cxx:276
 AliZDCRawStream.cxx:277
 AliZDCRawStream.cxx:278
 AliZDCRawStream.cxx:279
 AliZDCRawStream.cxx:280
 AliZDCRawStream.cxx:281
 AliZDCRawStream.cxx:282
 AliZDCRawStream.cxx:283
 AliZDCRawStream.cxx:284
 AliZDCRawStream.cxx:285
 AliZDCRawStream.cxx:286
 AliZDCRawStream.cxx:287
 AliZDCRawStream.cxx:288
 AliZDCRawStream.cxx:289
 AliZDCRawStream.cxx:290
 AliZDCRawStream.cxx:291
 AliZDCRawStream.cxx:292
 AliZDCRawStream.cxx:293
 AliZDCRawStream.cxx:294
 AliZDCRawStream.cxx:295
 AliZDCRawStream.cxx:296
 AliZDCRawStream.cxx:297
 AliZDCRawStream.cxx:298
 AliZDCRawStream.cxx:299
 AliZDCRawStream.cxx:300
 AliZDCRawStream.cxx:301
 AliZDCRawStream.cxx:302
 AliZDCRawStream.cxx:303
 AliZDCRawStream.cxx:304
 AliZDCRawStream.cxx:305
 AliZDCRawStream.cxx:306
 AliZDCRawStream.cxx:307
 AliZDCRawStream.cxx:308
 AliZDCRawStream.cxx:309
 AliZDCRawStream.cxx:310
 AliZDCRawStream.cxx:311
 AliZDCRawStream.cxx:312
 AliZDCRawStream.cxx:313
 AliZDCRawStream.cxx:314
 AliZDCRawStream.cxx:315
 AliZDCRawStream.cxx:316
 AliZDCRawStream.cxx:317
 AliZDCRawStream.cxx:318
 AliZDCRawStream.cxx:319
 AliZDCRawStream.cxx:320
 AliZDCRawStream.cxx:321
 AliZDCRawStream.cxx:322
 AliZDCRawStream.cxx:323
 AliZDCRawStream.cxx:324
 AliZDCRawStream.cxx:325
 AliZDCRawStream.cxx:326
 AliZDCRawStream.cxx:327
 AliZDCRawStream.cxx:328
 AliZDCRawStream.cxx:329
 AliZDCRawStream.cxx:330
 AliZDCRawStream.cxx:331
 AliZDCRawStream.cxx:332
 AliZDCRawStream.cxx:333
 AliZDCRawStream.cxx:334
 AliZDCRawStream.cxx:335
 AliZDCRawStream.cxx:336
 AliZDCRawStream.cxx:337
 AliZDCRawStream.cxx:338
 AliZDCRawStream.cxx:339
 AliZDCRawStream.cxx:340
 AliZDCRawStream.cxx:341
 AliZDCRawStream.cxx:342
 AliZDCRawStream.cxx:343
 AliZDCRawStream.cxx:344
 AliZDCRawStream.cxx:345
 AliZDCRawStream.cxx:346
 AliZDCRawStream.cxx:347
 AliZDCRawStream.cxx:348
 AliZDCRawStream.cxx:349
 AliZDCRawStream.cxx:350
 AliZDCRawStream.cxx:351
 AliZDCRawStream.cxx:352
 AliZDCRawStream.cxx:353
 AliZDCRawStream.cxx:354
 AliZDCRawStream.cxx:355
 AliZDCRawStream.cxx:356
 AliZDCRawStream.cxx:357
 AliZDCRawStream.cxx:358
 AliZDCRawStream.cxx:359
 AliZDCRawStream.cxx:360
 AliZDCRawStream.cxx:361
 AliZDCRawStream.cxx:362
 AliZDCRawStream.cxx:363
 AliZDCRawStream.cxx:364
 AliZDCRawStream.cxx:365
 AliZDCRawStream.cxx:366
 AliZDCRawStream.cxx:367
 AliZDCRawStream.cxx:368
 AliZDCRawStream.cxx:369
 AliZDCRawStream.cxx:370
 AliZDCRawStream.cxx:371
 AliZDCRawStream.cxx:372
 AliZDCRawStream.cxx:373
 AliZDCRawStream.cxx:374
 AliZDCRawStream.cxx:375
 AliZDCRawStream.cxx:376
 AliZDCRawStream.cxx:377
 AliZDCRawStream.cxx:378
 AliZDCRawStream.cxx:379
 AliZDCRawStream.cxx:380
 AliZDCRawStream.cxx:381
 AliZDCRawStream.cxx:382
 AliZDCRawStream.cxx:383
 AliZDCRawStream.cxx:384
 AliZDCRawStream.cxx:385
 AliZDCRawStream.cxx:386
 AliZDCRawStream.cxx:387
 AliZDCRawStream.cxx:388
 AliZDCRawStream.cxx:389
 AliZDCRawStream.cxx:390
 AliZDCRawStream.cxx:391
 AliZDCRawStream.cxx:392
 AliZDCRawStream.cxx:393
 AliZDCRawStream.cxx:394
 AliZDCRawStream.cxx:395
 AliZDCRawStream.cxx:396
 AliZDCRawStream.cxx:397
 AliZDCRawStream.cxx:398
 AliZDCRawStream.cxx:399
 AliZDCRawStream.cxx:400
 AliZDCRawStream.cxx:401
 AliZDCRawStream.cxx:402
 AliZDCRawStream.cxx:403
 AliZDCRawStream.cxx:404
 AliZDCRawStream.cxx:405
 AliZDCRawStream.cxx:406
 AliZDCRawStream.cxx:407
 AliZDCRawStream.cxx:408
 AliZDCRawStream.cxx:409
 AliZDCRawStream.cxx:410
 AliZDCRawStream.cxx:411
 AliZDCRawStream.cxx:412
 AliZDCRawStream.cxx:413
 AliZDCRawStream.cxx:414
 AliZDCRawStream.cxx:415
 AliZDCRawStream.cxx:416
 AliZDCRawStream.cxx:417
 AliZDCRawStream.cxx:418
 AliZDCRawStream.cxx:419
 AliZDCRawStream.cxx:420
 AliZDCRawStream.cxx:421
 AliZDCRawStream.cxx:422
 AliZDCRawStream.cxx:423
 AliZDCRawStream.cxx:424
 AliZDCRawStream.cxx:425
 AliZDCRawStream.cxx:426
 AliZDCRawStream.cxx:427
 AliZDCRawStream.cxx:428
 AliZDCRawStream.cxx:429
 AliZDCRawStream.cxx:430
 AliZDCRawStream.cxx:431
 AliZDCRawStream.cxx:432
 AliZDCRawStream.cxx:433
 AliZDCRawStream.cxx:434
 AliZDCRawStream.cxx:435
 AliZDCRawStream.cxx:436
 AliZDCRawStream.cxx:437
 AliZDCRawStream.cxx:438
 AliZDCRawStream.cxx:439
 AliZDCRawStream.cxx:440
 AliZDCRawStream.cxx:441
 AliZDCRawStream.cxx:442
 AliZDCRawStream.cxx:443
 AliZDCRawStream.cxx:444
 AliZDCRawStream.cxx:445
 AliZDCRawStream.cxx:446
 AliZDCRawStream.cxx:447
 AliZDCRawStream.cxx:448
 AliZDCRawStream.cxx:449
 AliZDCRawStream.cxx:450
 AliZDCRawStream.cxx:451
 AliZDCRawStream.cxx:452
 AliZDCRawStream.cxx:453
 AliZDCRawStream.cxx:454
 AliZDCRawStream.cxx:455
 AliZDCRawStream.cxx:456
 AliZDCRawStream.cxx:457
 AliZDCRawStream.cxx:458
 AliZDCRawStream.cxx:459
 AliZDCRawStream.cxx:460
 AliZDCRawStream.cxx:461
 AliZDCRawStream.cxx:462
 AliZDCRawStream.cxx:463
 AliZDCRawStream.cxx:464
 AliZDCRawStream.cxx:465
 AliZDCRawStream.cxx:466
 AliZDCRawStream.cxx:467
 AliZDCRawStream.cxx:468
 AliZDCRawStream.cxx:469
 AliZDCRawStream.cxx:470
 AliZDCRawStream.cxx:471
 AliZDCRawStream.cxx:472
 AliZDCRawStream.cxx:473
 AliZDCRawStream.cxx:474
 AliZDCRawStream.cxx:475
 AliZDCRawStream.cxx:476
 AliZDCRawStream.cxx:477
 AliZDCRawStream.cxx:478
 AliZDCRawStream.cxx:479
 AliZDCRawStream.cxx:480
 AliZDCRawStream.cxx:481
 AliZDCRawStream.cxx:482
 AliZDCRawStream.cxx:483
 AliZDCRawStream.cxx:484
 AliZDCRawStream.cxx:485
 AliZDCRawStream.cxx:486
 AliZDCRawStream.cxx:487
 AliZDCRawStream.cxx:488
 AliZDCRawStream.cxx:489
 AliZDCRawStream.cxx:490
 AliZDCRawStream.cxx:491
 AliZDCRawStream.cxx:492
 AliZDCRawStream.cxx:493
 AliZDCRawStream.cxx:494
 AliZDCRawStream.cxx:495
 AliZDCRawStream.cxx:496
 AliZDCRawStream.cxx:497
 AliZDCRawStream.cxx:498
 AliZDCRawStream.cxx:499
 AliZDCRawStream.cxx:500
 AliZDCRawStream.cxx:501
 AliZDCRawStream.cxx:502
 AliZDCRawStream.cxx:503
 AliZDCRawStream.cxx:504
 AliZDCRawStream.cxx:505
 AliZDCRawStream.cxx:506
 AliZDCRawStream.cxx:507
 AliZDCRawStream.cxx:508
 AliZDCRawStream.cxx:509
 AliZDCRawStream.cxx:510
 AliZDCRawStream.cxx:511
 AliZDCRawStream.cxx:512
 AliZDCRawStream.cxx:513
 AliZDCRawStream.cxx:514
 AliZDCRawStream.cxx:515
 AliZDCRawStream.cxx:516
 AliZDCRawStream.cxx:517
 AliZDCRawStream.cxx:518
 AliZDCRawStream.cxx:519
 AliZDCRawStream.cxx:520
 AliZDCRawStream.cxx:521
 AliZDCRawStream.cxx:522
 AliZDCRawStream.cxx:523
 AliZDCRawStream.cxx:524
 AliZDCRawStream.cxx:525
 AliZDCRawStream.cxx:526
 AliZDCRawStream.cxx:527
 AliZDCRawStream.cxx:528
 AliZDCRawStream.cxx:529
 AliZDCRawStream.cxx:530
 AliZDCRawStream.cxx:531
 AliZDCRawStream.cxx:532
 AliZDCRawStream.cxx:533
 AliZDCRawStream.cxx:534
 AliZDCRawStream.cxx:535
 AliZDCRawStream.cxx:536
 AliZDCRawStream.cxx:537
 AliZDCRawStream.cxx:538
 AliZDCRawStream.cxx:539
 AliZDCRawStream.cxx:540
 AliZDCRawStream.cxx:541
 AliZDCRawStream.cxx:542
 AliZDCRawStream.cxx:543
 AliZDCRawStream.cxx:544
 AliZDCRawStream.cxx:545
 AliZDCRawStream.cxx:546
 AliZDCRawStream.cxx:547
 AliZDCRawStream.cxx:548
 AliZDCRawStream.cxx:549
 AliZDCRawStream.cxx:550
 AliZDCRawStream.cxx:551
 AliZDCRawStream.cxx:552
 AliZDCRawStream.cxx:553
 AliZDCRawStream.cxx:554
 AliZDCRawStream.cxx:555
 AliZDCRawStream.cxx:556
 AliZDCRawStream.cxx:557
 AliZDCRawStream.cxx:558
 AliZDCRawStream.cxx:559
 AliZDCRawStream.cxx:560
 AliZDCRawStream.cxx:561
 AliZDCRawStream.cxx:562
 AliZDCRawStream.cxx:563
 AliZDCRawStream.cxx:564
 AliZDCRawStream.cxx:565
 AliZDCRawStream.cxx:566
 AliZDCRawStream.cxx:567
 AliZDCRawStream.cxx:568
 AliZDCRawStream.cxx:569
 AliZDCRawStream.cxx:570
 AliZDCRawStream.cxx:571
 AliZDCRawStream.cxx:572
 AliZDCRawStream.cxx:573
 AliZDCRawStream.cxx:574
 AliZDCRawStream.cxx:575
 AliZDCRawStream.cxx:576
 AliZDCRawStream.cxx:577
 AliZDCRawStream.cxx:578
 AliZDCRawStream.cxx:579
 AliZDCRawStream.cxx:580
 AliZDCRawStream.cxx:581
 AliZDCRawStream.cxx:582
 AliZDCRawStream.cxx:583
 AliZDCRawStream.cxx:584
 AliZDCRawStream.cxx:585
 AliZDCRawStream.cxx:586
 AliZDCRawStream.cxx:587
 AliZDCRawStream.cxx:588
 AliZDCRawStream.cxx:589
 AliZDCRawStream.cxx:590
 AliZDCRawStream.cxx:591
 AliZDCRawStream.cxx:592
 AliZDCRawStream.cxx:593
 AliZDCRawStream.cxx:594
 AliZDCRawStream.cxx:595
 AliZDCRawStream.cxx:596
 AliZDCRawStream.cxx:597
 AliZDCRawStream.cxx:598
 AliZDCRawStream.cxx:599
 AliZDCRawStream.cxx:600
 AliZDCRawStream.cxx:601
 AliZDCRawStream.cxx:602
 AliZDCRawStream.cxx:603
 AliZDCRawStream.cxx:604
 AliZDCRawStream.cxx:605
 AliZDCRawStream.cxx:606
 AliZDCRawStream.cxx:607
 AliZDCRawStream.cxx:608
 AliZDCRawStream.cxx:609
 AliZDCRawStream.cxx:610
 AliZDCRawStream.cxx:611
 AliZDCRawStream.cxx:612
 AliZDCRawStream.cxx:613
 AliZDCRawStream.cxx:614
 AliZDCRawStream.cxx:615
 AliZDCRawStream.cxx:616
 AliZDCRawStream.cxx:617
 AliZDCRawStream.cxx:618
 AliZDCRawStream.cxx:619
 AliZDCRawStream.cxx:620
 AliZDCRawStream.cxx:621
 AliZDCRawStream.cxx:622
 AliZDCRawStream.cxx:623
 AliZDCRawStream.cxx:624
 AliZDCRawStream.cxx:625
 AliZDCRawStream.cxx:626
 AliZDCRawStream.cxx:627
 AliZDCRawStream.cxx:628
 AliZDCRawStream.cxx:629
 AliZDCRawStream.cxx:630
 AliZDCRawStream.cxx:631
 AliZDCRawStream.cxx:632
 AliZDCRawStream.cxx:633
 AliZDCRawStream.cxx:634
 AliZDCRawStream.cxx:635
 AliZDCRawStream.cxx:636
 AliZDCRawStream.cxx:637
 AliZDCRawStream.cxx:638
 AliZDCRawStream.cxx:639
 AliZDCRawStream.cxx:640
 AliZDCRawStream.cxx:641
 AliZDCRawStream.cxx:642
 AliZDCRawStream.cxx:643
 AliZDCRawStream.cxx:644
 AliZDCRawStream.cxx:645
 AliZDCRawStream.cxx:646
 AliZDCRawStream.cxx:647
 AliZDCRawStream.cxx:648
 AliZDCRawStream.cxx:649
 AliZDCRawStream.cxx:650
 AliZDCRawStream.cxx:651
 AliZDCRawStream.cxx:652
 AliZDCRawStream.cxx:653
 AliZDCRawStream.cxx:654
 AliZDCRawStream.cxx:655
 AliZDCRawStream.cxx:656
 AliZDCRawStream.cxx:657
 AliZDCRawStream.cxx:658
 AliZDCRawStream.cxx:659
 AliZDCRawStream.cxx:660
 AliZDCRawStream.cxx:661
 AliZDCRawStream.cxx:662
 AliZDCRawStream.cxx:663
 AliZDCRawStream.cxx:664
 AliZDCRawStream.cxx:665
 AliZDCRawStream.cxx:666
 AliZDCRawStream.cxx:667
 AliZDCRawStream.cxx:668
 AliZDCRawStream.cxx:669
 AliZDCRawStream.cxx:670
 AliZDCRawStream.cxx:671
 AliZDCRawStream.cxx:672
 AliZDCRawStream.cxx:673
 AliZDCRawStream.cxx:674
 AliZDCRawStream.cxx:675
 AliZDCRawStream.cxx:676
 AliZDCRawStream.cxx:677
 AliZDCRawStream.cxx:678
 AliZDCRawStream.cxx:679
 AliZDCRawStream.cxx:680
 AliZDCRawStream.cxx:681
 AliZDCRawStream.cxx:682
 AliZDCRawStream.cxx:683
 AliZDCRawStream.cxx:684
 AliZDCRawStream.cxx:685
 AliZDCRawStream.cxx:686
 AliZDCRawStream.cxx:687
 AliZDCRawStream.cxx:688
 AliZDCRawStream.cxx:689
 AliZDCRawStream.cxx:690
 AliZDCRawStream.cxx:691
 AliZDCRawStream.cxx:692
 AliZDCRawStream.cxx:693
 AliZDCRawStream.cxx:694
 AliZDCRawStream.cxx:695
 AliZDCRawStream.cxx:696
 AliZDCRawStream.cxx:697
 AliZDCRawStream.cxx:698
 AliZDCRawStream.cxx:699
 AliZDCRawStream.cxx:700
 AliZDCRawStream.cxx:701
 AliZDCRawStream.cxx:702
 AliZDCRawStream.cxx:703
 AliZDCRawStream.cxx:704
 AliZDCRawStream.cxx:705
 AliZDCRawStream.cxx:706
 AliZDCRawStream.cxx:707
 AliZDCRawStream.cxx:708
 AliZDCRawStream.cxx:709
 AliZDCRawStream.cxx:710
 AliZDCRawStream.cxx:711
 AliZDCRawStream.cxx:712
 AliZDCRawStream.cxx:713
 AliZDCRawStream.cxx:714
 AliZDCRawStream.cxx:715
 AliZDCRawStream.cxx:716
 AliZDCRawStream.cxx:717
 AliZDCRawStream.cxx:718
 AliZDCRawStream.cxx:719
 AliZDCRawStream.cxx:720
 AliZDCRawStream.cxx:721
 AliZDCRawStream.cxx:722
 AliZDCRawStream.cxx:723
 AliZDCRawStream.cxx:724
 AliZDCRawStream.cxx:725
 AliZDCRawStream.cxx:726
 AliZDCRawStream.cxx:727
 AliZDCRawStream.cxx:728
 AliZDCRawStream.cxx:729
 AliZDCRawStream.cxx:730
 AliZDCRawStream.cxx:731
 AliZDCRawStream.cxx:732
 AliZDCRawStream.cxx:733
 AliZDCRawStream.cxx:734
 AliZDCRawStream.cxx:735
 AliZDCRawStream.cxx:736
 AliZDCRawStream.cxx:737
 AliZDCRawStream.cxx:738
 AliZDCRawStream.cxx:739
 AliZDCRawStream.cxx:740
 AliZDCRawStream.cxx:741
 AliZDCRawStream.cxx:742
 AliZDCRawStream.cxx:743
 AliZDCRawStream.cxx:744
 AliZDCRawStream.cxx:745
 AliZDCRawStream.cxx:746
 AliZDCRawStream.cxx:747
 AliZDCRawStream.cxx:748
 AliZDCRawStream.cxx:749
 AliZDCRawStream.cxx:750
 AliZDCRawStream.cxx:751
 AliZDCRawStream.cxx:752
 AliZDCRawStream.cxx:753
 AliZDCRawStream.cxx:754
 AliZDCRawStream.cxx:755
 AliZDCRawStream.cxx:756
 AliZDCRawStream.cxx:757
 AliZDCRawStream.cxx:758
 AliZDCRawStream.cxx:759
 AliZDCRawStream.cxx:760
 AliZDCRawStream.cxx:761
 AliZDCRawStream.cxx:762
 AliZDCRawStream.cxx:763
 AliZDCRawStream.cxx:764
 AliZDCRawStream.cxx:765
 AliZDCRawStream.cxx:766
 AliZDCRawStream.cxx:767
 AliZDCRawStream.cxx:768
 AliZDCRawStream.cxx:769
 AliZDCRawStream.cxx:770
 AliZDCRawStream.cxx:771
 AliZDCRawStream.cxx:772
 AliZDCRawStream.cxx:773
 AliZDCRawStream.cxx:774
 AliZDCRawStream.cxx:775
 AliZDCRawStream.cxx:776
 AliZDCRawStream.cxx:777
 AliZDCRawStream.cxx:778
 AliZDCRawStream.cxx:779
 AliZDCRawStream.cxx:780
 AliZDCRawStream.cxx:781
 AliZDCRawStream.cxx:782
 AliZDCRawStream.cxx:783
 AliZDCRawStream.cxx:784
 AliZDCRawStream.cxx:785
 AliZDCRawStream.cxx:786
 AliZDCRawStream.cxx:787
 AliZDCRawStream.cxx:788
 AliZDCRawStream.cxx:789
 AliZDCRawStream.cxx:790
 AliZDCRawStream.cxx:791
 AliZDCRawStream.cxx:792
 AliZDCRawStream.cxx:793
 AliZDCRawStream.cxx:794
 AliZDCRawStream.cxx:795
 AliZDCRawStream.cxx:796
 AliZDCRawStream.cxx:797
 AliZDCRawStream.cxx:798
 AliZDCRawStream.cxx:799
 AliZDCRawStream.cxx:800
 AliZDCRawStream.cxx:801
 AliZDCRawStream.cxx:802
 AliZDCRawStream.cxx:803
 AliZDCRawStream.cxx:804
 AliZDCRawStream.cxx:805
 AliZDCRawStream.cxx:806
 AliZDCRawStream.cxx:807
 AliZDCRawStream.cxx:808
 AliZDCRawStream.cxx:809
 AliZDCRawStream.cxx:810
 AliZDCRawStream.cxx:811
 AliZDCRawStream.cxx:812
 AliZDCRawStream.cxx:813
 AliZDCRawStream.cxx:814
 AliZDCRawStream.cxx:815
 AliZDCRawStream.cxx:816
 AliZDCRawStream.cxx:817
 AliZDCRawStream.cxx:818
 AliZDCRawStream.cxx:819
 AliZDCRawStream.cxx:820
 AliZDCRawStream.cxx:821
 AliZDCRawStream.cxx:822
 AliZDCRawStream.cxx:823
 AliZDCRawStream.cxx:824
 AliZDCRawStream.cxx:825
 AliZDCRawStream.cxx:826
 AliZDCRawStream.cxx:827
 AliZDCRawStream.cxx:828
 AliZDCRawStream.cxx:829
 AliZDCRawStream.cxx:830
 AliZDCRawStream.cxx:831
 AliZDCRawStream.cxx:832
 AliZDCRawStream.cxx:833
 AliZDCRawStream.cxx:834
 AliZDCRawStream.cxx:835
 AliZDCRawStream.cxx:836
 AliZDCRawStream.cxx:837
 AliZDCRawStream.cxx:838
 AliZDCRawStream.cxx:839
 AliZDCRawStream.cxx:840
 AliZDCRawStream.cxx:841
 AliZDCRawStream.cxx:842
 AliZDCRawStream.cxx:843
 AliZDCRawStream.cxx:844
 AliZDCRawStream.cxx:845
 AliZDCRawStream.cxx:846
 AliZDCRawStream.cxx:847
 AliZDCRawStream.cxx:848
 AliZDCRawStream.cxx:849
 AliZDCRawStream.cxx:850
 AliZDCRawStream.cxx:851
 AliZDCRawStream.cxx:852
 AliZDCRawStream.cxx:853
 AliZDCRawStream.cxx:854
 AliZDCRawStream.cxx:855
 AliZDCRawStream.cxx:856
 AliZDCRawStream.cxx:857
 AliZDCRawStream.cxx:858
 AliZDCRawStream.cxx:859
 AliZDCRawStream.cxx:860
 AliZDCRawStream.cxx:861
 AliZDCRawStream.cxx:862
 AliZDCRawStream.cxx:863
 AliZDCRawStream.cxx:864
 AliZDCRawStream.cxx:865
 AliZDCRawStream.cxx:866
 AliZDCRawStream.cxx:867
 AliZDCRawStream.cxx:868
 AliZDCRawStream.cxx:869
 AliZDCRawStream.cxx:870
 AliZDCRawStream.cxx:871
 AliZDCRawStream.cxx:872
 AliZDCRawStream.cxx:873
 AliZDCRawStream.cxx:874
 AliZDCRawStream.cxx:875
 AliZDCRawStream.cxx:876
 AliZDCRawStream.cxx:877
 AliZDCRawStream.cxx:878
 AliZDCRawStream.cxx:879
 AliZDCRawStream.cxx:880
 AliZDCRawStream.cxx:881
 AliZDCRawStream.cxx:882
 AliZDCRawStream.cxx:883
 AliZDCRawStream.cxx:884
 AliZDCRawStream.cxx:885
 AliZDCRawStream.cxx:886
 AliZDCRawStream.cxx:887
 AliZDCRawStream.cxx:888
 AliZDCRawStream.cxx:889
 AliZDCRawStream.cxx:890
 AliZDCRawStream.cxx:891
 AliZDCRawStream.cxx:892
 AliZDCRawStream.cxx:893
 AliZDCRawStream.cxx:894
 AliZDCRawStream.cxx:895
 AliZDCRawStream.cxx:896
 AliZDCRawStream.cxx:897
 AliZDCRawStream.cxx:898
 AliZDCRawStream.cxx:899
 AliZDCRawStream.cxx:900
 AliZDCRawStream.cxx:901
 AliZDCRawStream.cxx:902
 AliZDCRawStream.cxx:903
 AliZDCRawStream.cxx:904
 AliZDCRawStream.cxx:905
 AliZDCRawStream.cxx:906
 AliZDCRawStream.cxx:907
 AliZDCRawStream.cxx:908
 AliZDCRawStream.cxx:909
 AliZDCRawStream.cxx:910
 AliZDCRawStream.cxx:911
 AliZDCRawStream.cxx:912
 AliZDCRawStream.cxx:913
 AliZDCRawStream.cxx:914
 AliZDCRawStream.cxx:915
 AliZDCRawStream.cxx:916
 AliZDCRawStream.cxx:917
 AliZDCRawStream.cxx:918
 AliZDCRawStream.cxx:919
 AliZDCRawStream.cxx:920
 AliZDCRawStream.cxx:921
 AliZDCRawStream.cxx:922
 AliZDCRawStream.cxx:923
 AliZDCRawStream.cxx:924
 AliZDCRawStream.cxx:925
 AliZDCRawStream.cxx:926
 AliZDCRawStream.cxx:927
 AliZDCRawStream.cxx:928
 AliZDCRawStream.cxx:929
 AliZDCRawStream.cxx:930
 AliZDCRawStream.cxx:931
 AliZDCRawStream.cxx:932
 AliZDCRawStream.cxx:933
 AliZDCRawStream.cxx:934
 AliZDCRawStream.cxx:935
 AliZDCRawStream.cxx:936
 AliZDCRawStream.cxx:937
 AliZDCRawStream.cxx:938
 AliZDCRawStream.cxx:939
 AliZDCRawStream.cxx:940
 AliZDCRawStream.cxx:941
 AliZDCRawStream.cxx:942
 AliZDCRawStream.cxx:943
 AliZDCRawStream.cxx:944
 AliZDCRawStream.cxx:945
 AliZDCRawStream.cxx:946
 AliZDCRawStream.cxx:947
 AliZDCRawStream.cxx:948
 AliZDCRawStream.cxx:949
 AliZDCRawStream.cxx:950
 AliZDCRawStream.cxx:951
 AliZDCRawStream.cxx:952
 AliZDCRawStream.cxx:953
 AliZDCRawStream.cxx:954
 AliZDCRawStream.cxx:955
 AliZDCRawStream.cxx:956
 AliZDCRawStream.cxx:957
 AliZDCRawStream.cxx:958
 AliZDCRawStream.cxx:959
 AliZDCRawStream.cxx:960
 AliZDCRawStream.cxx:961
 AliZDCRawStream.cxx:962
 AliZDCRawStream.cxx:963
 AliZDCRawStream.cxx:964
 AliZDCRawStream.cxx:965
 AliZDCRawStream.cxx:966
 AliZDCRawStream.cxx:967
 AliZDCRawStream.cxx:968
 AliZDCRawStream.cxx:969
 AliZDCRawStream.cxx:970
 AliZDCRawStream.cxx:971
 AliZDCRawStream.cxx:972
 AliZDCRawStream.cxx:973
 AliZDCRawStream.cxx:974
 AliZDCRawStream.cxx:975
 AliZDCRawStream.cxx:976
 AliZDCRawStream.cxx:977
 AliZDCRawStream.cxx:978
 AliZDCRawStream.cxx:979
 AliZDCRawStream.cxx:980
 AliZDCRawStream.cxx:981
 AliZDCRawStream.cxx:982
 AliZDCRawStream.cxx:983
 AliZDCRawStream.cxx:984
 AliZDCRawStream.cxx:985
 AliZDCRawStream.cxx:986
 AliZDCRawStream.cxx:987
 AliZDCRawStream.cxx:988
 AliZDCRawStream.cxx:989
 AliZDCRawStream.cxx:990
 AliZDCRawStream.cxx:991
 AliZDCRawStream.cxx:992
 AliZDCRawStream.cxx:993
 AliZDCRawStream.cxx:994
 AliZDCRawStream.cxx:995
 AliZDCRawStream.cxx:996
 AliZDCRawStream.cxx:997
 AliZDCRawStream.cxx:998
 AliZDCRawStream.cxx:999
 AliZDCRawStream.cxx:1000
 AliZDCRawStream.cxx:1001
 AliZDCRawStream.cxx:1002
 AliZDCRawStream.cxx:1003
 AliZDCRawStream.cxx:1004
 AliZDCRawStream.cxx:1005
 AliZDCRawStream.cxx:1006
 AliZDCRawStream.cxx:1007
 AliZDCRawStream.cxx:1008
 AliZDCRawStream.cxx:1009