ROOT logo
// --- ROOT system
#include <TFile.h>
#include <TClonesArray.h>
#include <TList.h>
#include <TObjString.h>
#include <TTimeStamp.h>

#include "AliZDCPreprocessor.h"
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "AliCDBMetaData.h"
#include "AliDCSValue.h"
#include "AliAlignObj.h"
#include "AliAlignObjParams.h"
#include "AliLog.h"
#include "AliZDCDataDCS.h"
#include "AliZDCChMap.h"
#include "AliZDCPedestals.h"
#include "AliZDCLaserCalib.h"
#include "AliZDCEnCalib.h"
#include "AliZDCTowerCalib.h"
#include "AliZDCMBCalib.h"
#include "AliZDCTDCCalib.h"

/////////////////////////////////////////////////////////////////////
//								   //
// Class implementing Shuttle ZDC pre-processor.	           //
// It takes data from DCS and DAQ and writes calibration objects   //
// in the OCDB and reference values/histos in the ReferenceData.   //
//								   //
/////////////////////////////////////////////////////////////////////

// ******************************************************************
//    RETURN CODES:
// return 0 : everything OK
// return 1 : no DCS input data Map
// return 2 : error storing DCS data in RefData 
// return 3 : error storing alignment object in OCDB
// return 4 : error in ZDCMapping.dat file retrieved from DAQ FXS (not existing|empty|corrupted)
// return 5 : error storing mapping obj. in OCDB
// return 6 : error storing energy calibration obj. in OCDB
// return 7 : error storing tower inter-calibration obj. in OCDB
// return 8 : error in ZDCEnergyCalib.dat file retrieved from DAQ FXS 
// return 9 : error in ZDCTowerCalib.dat file retrieved from DAQ FXS 
// return 10: error in ZDCPedestal.dat file retrieved from DAQ FXS 
// return 11: error storing pedestal calibration obj. in OCDB
// return 12: error in ZDCPedHisto.root file retrieved from DAQ FXS 
// return 13: error storing pedestal histos in RefData 
// return 14: error in ZDCLaserCalib.dat file retrieved from DAQ FXS 
// return 15: error storing laser calibration obj. in OCDB
// return 16: error in ZDCLaserHisto.root file retrieved from DAQ FXS 
// return 17: error storing laser histos in RefData 
// return 18: error in ZDCMBCalib.root file retrieved from DAQ FXS 
// return 19: error storing MB calibration obj. in OCDB
// return 20: error in ZDCTDCCalib.root file retrieved from DAQ FXS
// return 21: error in storing TDC calibration obj. in OCDB
// return 22: error in ZDCTDCHisto.root file retrieved from DAQ FXS
// Return 23: error storing TDC reference histos in RefData
// ******************************************************************

ClassImp(AliZDCPreprocessor)

//______________________________________________________________________________________________
AliZDCPreprocessor::AliZDCPreprocessor(AliShuttleInterface* shuttle) :
  AliPreprocessor("ZDC", shuttle),
  fData(0)
{
  // constructor
  // May 2009 - run types updated according to
  // http://alice-ecs.web.cern.ch/alice-ecs/runtypes_3.36.html
  AddRunType("STANDALONE_PEDESTAL");
  AddRunType("STANDALONE_LASER");
  AddRunType("STANDALONE_COSMIC");
  AddRunType("CALIBRATION_EMD");
  AddRunType("CALIBRATION_MB");
  AddRunType("CALIBRATION_CENTRAL");
  AddRunType("CALIBRATION_SEMICENTRAL");
  AddRunType("CALIBRATION_BC");
  AddRunType("PHYSICS");
}


//______________________________________________________________________________________________
AliZDCPreprocessor::~AliZDCPreprocessor()
{
  // destructor
}


//______________________________________________________________________________________________
void AliZDCPreprocessor::Initialize(Int_t run, UInt_t startTime, UInt_t endTime)
{
  // Creates AliZDCDataDCS object

  AliPreprocessor::Initialize(run, startTime, endTime);

  AliDebug(2,Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s \n\tStartTime DCS Query %s \n\tEndTime DCS Query %s", run,
		TTimeStamp(startTime).AsString(),
		TTimeStamp(endTime).AsString(), ((TTimeStamp)GetStartTimeDCSQuery()).AsString(), ((TTimeStamp)GetEndTimeDCSQuery()).AsString()));

  fRun = run;
  fStartTime = startTime;
  fEndTime = endTime;

  fData = new AliZDCDataDCS(fRun, fStartTime, fEndTime, GetStartTimeDCSQuery(), GetEndTimeDCSQuery());
}

//_____________________________________________________________________________
Bool_t AliZDCPreprocessor::ProcessDCS(){

  // tells whether DCS should be processed or not

  TString runType = GetRunType();
  Log(Form("RunType %s",runType.Data()));

  if (runType=="STANDALONE_COSMIC" || runType=="STANDALONE_PEDESTAL"){
    return kFALSE;
  }

  return kTRUE;
}

//______________________________________________________________________________________________
UInt_t AliZDCPreprocessor::ProcessDCSData(TMap* dcsAliasMap)
{
  
  // Fills data into a AliZDCDataDCS object
  if(!dcsAliasMap){
    Log(" No DCS map found: ZDC exiting from Shuttle");
    if(fData){
      delete fData;
      fData = 0;
    }
    return 1;
  }

  Log(Form("Processing data from DCS"));
   
  // The processing of the DCS input data is forwarded to AliZDCDataDCS
  //dcsAliasMap->Print(""); 
  Bool_t resDCSProcess = fData->ProcessData(*dcsAliasMap);
  if(resDCSProcess==kFALSE){
    Log(" Problems in processing DCS DP");
    return 1;
  }  
  
  // ------------------------------------------------------
  // Change introduced 26/9/09 in order NOT to process the
  // HV DP since some of them are never found in amanda DB
  // ------------------------------------------------------
  // Store DCS data as reference
  AliCDBMetaData metadata;
  metadata.SetResponsible("Chiara Oppedisano");
  metadata.SetComment("DCS DP TMap for ZDC");
  Bool_t resDCSRef = kTRUE;
  resDCSRef = StoreReferenceData("DCS","Data", dcsAliasMap, &metadata);
  
  if(resDCSRef==kFALSE) return 2;

  // --- Writing ZDC table positions into alignment object
  TClonesArray *array = new TClonesArray("AliAlignObjParams",10);
  TClonesArray &alobj = *array;
  AliAlignObjParams a;
  Double_t dx=0., dz=0., dpsi=0., dtheta=0., dphi=0.;
  // Vertical table position in mm from DCS
  Double_t dyZN1 = (Double_t) (fData->GetAlignData(0)/10.);
  Double_t dyZP1 = (Double_t) (fData->GetAlignData(1)/10.);
  Double_t dyZN2 = (Double_t) (fData->GetAlignData(2)/10.);
  Double_t dyZP2 = (Double_t) (fData->GetAlignData(3)/10.);
  //
  const char *n1ZDC="ZDC/NeutronZDC_C";  
  const char *p1ZDC="ZDC/ProtonZDC_C";
  const char *n2ZDC="ZDC/NeutronZDC_A";
  const char *p2ZDC="ZDC/ProtonZDC_A";
  //
  UShort_t iIndex=0;
  AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
  UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,iIndex);
  //
  new(alobj[0]) AliAlignObjParams(n1ZDC, volid, dx, dyZN1, dz, dpsi, dtheta, dphi, kTRUE);
  new(alobj[1]) AliAlignObjParams(p1ZDC, volid, dx, dyZP1, dz, dpsi, dtheta, dphi, kTRUE);
  new(alobj[2]) AliAlignObjParams(n2ZDC, volid, dx, dyZN2, dz, dpsi, dtheta, dphi, kTRUE);
  new(alobj[3]) AliAlignObjParams(p2ZDC, volid, dx, dyZP2, dz, dpsi, dtheta, dphi, kTRUE);
 
  // save in CDB storage
  AliCDBMetaData mdDCS;
  mdDCS.SetResponsible("Chiara Oppedisano");
  mdDCS.SetComment("Alignment object for ZDC");
  Bool_t resultAl = Store("Align","Data", array, &mdDCS, 0, kFALSE);
  if(resultAl==kFALSE)  return 3;
  
  return 0;
}

//______________________________________________________________________________________________
UInt_t AliZDCPreprocessor::ProcessChMap()
{ 
  const int kNModules=10, kNch=48, kNScch=32, kNtdcch=32;
  
  // Reading the file for mapping from FXS
  TList* daqSource = GetFileSources(kDAQ, "MAPPING");
  if(!daqSource){
    AliError(Form("No sources for file ZDCChMapping.dat in run %d ", fRun));
    return 4;
  }
  if(daqSource->GetEntries()==0) return 4;
  Log("\t List of DAQ sources for MAPPING id: "); daqSource->Print();
  //
  TIter iter(daqSource);
  TObjString* source = 0;
  Int_t isou = 0;
  Int_t modMap[kNModules][3], adcMap[kNch][6], scMap[kNScch][6], tdcMap[kNtdcch][4]; 
  //
  while((source = dynamic_cast<TObjString*> (iter.Next()))){
     TString fileName = GetFile(kDAQ, "MAPPING", source->GetName());
     Log(Form("\t Getting file #%d: ZDCChMapping.dat from %s\n",++isou, source->GetName()));

     if(fileName.Length() <= 0){
       Log(Form("No file from source %s!", source->GetName()));
       return 4;
     }
     // --- Reading file with calibration data
     //const char* fname = fileName.Data();
     if(fileName){
       FILE *file;
       if((file = fopen(fileName,"r")) == NULL){
	 printf("Cannot open file %s \n",fileName.Data());
         return 4;
       }
       Log(Form("File %s connected to process data for ADC mapping", fileName.Data()));
       //
       for(Int_t j=0; j<kNch; j++){	  
           for(Int_t k=0; k<6; k++){
             int read = fscanf(file,"%d",&adcMap[j][k]);
	     if(read == 0) AliDebug(3," Failing in reading data from mapping file");
           }
       }
       for(Int_t j=kNch; j<kNch+kNScch; j++){	  
           for(Int_t k=0; k<6; k++){
             int read = fscanf(file,"%d",&scMap[j-kNch][k]);
	     if(read == 0) AliDebug(3," Failing in reading data from mapping file");
           }
       }
       for(Int_t j=kNch+kNScch; j<kNch+kNScch+kNtdcch; j++){	  
           for(Int_t k=0; k<4; k++){
             int read = fscanf(file,"%d",&tdcMap[j-kNch-kNScch][k]);
	     if(read == 0) AliDebug(3," Failing in reading data from mapping file");
           }
       }
       for(Int_t j=kNch+kNScch+kNtdcch; j<kNch+kNScch+kNtdcch+kNModules; j++){	  
           for(Int_t k=0; k<3; k++){
             int read = fscanf(file,"%d",&modMap[j-kNch-kNScch-kNtdcch][k]);
	     if(read == 0) AliDebug(3," Failing in reading data from mapping file");
           }
       }
       fclose(file);
     }
     else{
       Log(Form("File %s not found", fileName.Data()));
       return 4;
     }
  }
  
  // Store the currently read map ONLY IF it is different
  // from the entry in the OCDB
  Bool_t adcMapUpdated=kFALSE, scMapUpdated=kFALSE, tdcMapUpdated=kFALSE;
  Bool_t updateOCDB = kFALSE;
  
  AliCDBEntry *cdbEntry = GetFromOCDB("Calib","ChMap");
  if(!cdbEntry){
    Log(" No existing CDB entry for ADC mapping");
    updateOCDB = kTRUE;
  }
  else{
    AliZDCChMap *chMap = (AliZDCChMap*) cdbEntry->GetObject();
    for(Int_t i=0; i<kNch; i++){
      if(  (adcMap[i][1] != chMap->GetADCModule(i)) 
        || (adcMap[i][2] != chMap->GetADCChannel(i)) 
	|| (adcMap[i][3] != chMap->GetADCSignalCode(i)) 
	|| (adcMap[i][4] != chMap->GetDetector(i)) 
	|| (adcMap[i][5] != chMap->GetSector(i))) 
	 adcMapUpdated = kTRUE;
    }
    for(Int_t i=0; i<kNScch; i++){
      if(  (scMap[i][2] != chMap->GetScChannel(i)) 
	|| (scMap[i][3] != chMap->GetScSignalCode(i)) )
	 scMapUpdated = kTRUE;
    }
    for(Int_t i=0; i<kNtdcch; i++){
      if(  (tdcMap[i][2] != chMap->GetTDCChannel(i)) 
	|| (tdcMap[i][3] != chMap->GetTDCSignalCode(i)))
	 tdcMapUpdated = kTRUE;
    }
  }
  if(adcMapUpdated || scMapUpdated || tdcMapUpdated) updateOCDB = kTRUE;
  //
  Bool_t resChMapStore = kTRUE;
  if(updateOCDB==kTRUE){
    Log(" A new entry ZDC/Calib/ChMap will be created");
    //
    // --- Initializing mapping calibration object
    AliZDCChMap *mapCalib = new AliZDCChMap("ZDC");
    // Writing channel map in the OCDB
    for(Int_t k=0; k<kNModules; k++){
      mapCalib->SetModuleMap(k, modMap[k][0], modMap[k][1], modMap[k][2]);
    }
    for(Int_t k=0; k<kNch; k++){
      mapCalib->SetADCModule(k,adcMap[k][1]);
      mapCalib->SetADCChannel(k,adcMap[k][2]);
      mapCalib->SetADCSignalCode(k,adcMap[k][3]);
      mapCalib->SetDetector(k,adcMap[k][4]);
      mapCalib->SetSector(k,adcMap[k][5]);
    }
    for(Int_t k=0; k<kNScch; k++){
       mapCalib->SetScChannel(k, scMap[k][2]);
       mapCalib->SetScSignalCode(k, scMap[k][3]);
       mapCalib->SetScDetector(k, scMap[k][4]);
       mapCalib->SetScSector(k, scMap[k][5]);
    }
    for(Int_t k=0; k<kNtdcch; k++){
       mapCalib->SetTDCChannel(k, tdcMap[k][2]);
       mapCalib->SetTDCSignalCode(k, tdcMap[k][3]);
    }
    //
    //mapCalib->Print("");
    // 
    AliCDBMetaData metaData;
    metaData.SetBeamPeriod(0);
    metaData.SetResponsible("Chiara Oppedisano");
    metaData.SetComment("AliZDCChMap object created by ZDC preprocessor");  
    //
    resChMapStore = Store("Calib","ChMap",mapCalib, &metaData, 0, kTRUE);
    printf("  Mapping object stored in OCDB\n");
  }
  else{
    Log(" ZDC/Calib/ChMap entry in OCDB is valid and won't be updated");
    resChMapStore = kTRUE;
  }
  delete daqSource; daqSource=0;
  
  TString runType = GetRunType();
  if(runType.CompareTo("PHYSICS")==0){
    Log(Form("RunType %s -> producing TDC calibration data",runType.Data()));
    
    // Reading the file for mapping from FXS
    TList* daqSourcetdc = GetFileSources(kDAQ, "TDCDATA");
    if(!daqSourcetdc){
      AliError(Form("No sources for file ZDCChMappingTDCCalib.dat in run %d ", fRun));
      return 20;
    }
    if(daqSourcetdc->GetEntries()==0) return 20;
    Log("\t List of DAQ sources for TDCDATA id: "); daqSourcetdc->Print();
    //
    Bool_t resTDCcal = kTRUE;
    TIter itertdc(daqSourcetdc);
    TObjString* sourcetdc = 0;
    Int_t isoutdc = 0;
    //
    while((sourcetdc = dynamic_cast<TObjString*> (itertdc.Next()))){
     TString fileNametdc = GetFile(kDAQ, "TDCDATA", sourcetdc->GetName());
     Log(Form("\t Getting file #%d: ZDCTDCdata.dat from %s\n",++isoutdc, sourcetdc->GetName()));

     if(fileNametdc.Length() <= 0){
       Log(Form("No file from source %s!", sourcetdc->GetName()));
       return 20;
     }
     // --- Initializing TDC calibration object
     AliZDCTDCCalib *tdcCalib = new AliZDCTDCCalib("ZDC");
     // --- Reading file with calibration data
     //const char* fname = fileName.Data();
     if(fileNametdc){
       FILE *filetdc;
       if((filetdc = fopen(fileNametdc,"r")) == NULL){
	 printf("Cannot open file %s \n",fileNametdc.Data());
         return 20;
       }
       Log(Form("File %s connected to process TDC data", fileNametdc.Data()));
       //
       Float_t tdcMean[6][2];
       for(Int_t it=0; it<6; it++){
         for(Int_t iu=0; iu<2; iu++) tdcMean[it][iu]=0.;
       }
       for(Int_t k=0; k<6; k++){
        for(Int_t j=0; j<2; j++){
           int leggi = fscanf(filetdc,"%f",&tdcMean[k][j]);
	   if(leggi==0) AliDebug(3," Failing reading data from tdc file");
	   tdcCalib->SetMeanTDC(k, tdcMean[k][0]);
	   tdcCalib->SetWidthTDC(k, tdcMean[k][1]);
	}
       }
       fclose(filetdc);
     }
     else{
       Log(Form("File %s not found", fileNametdc.Data()));
       return 20;
     }
     //
     AliCDBMetaData metaData;
     metaData.SetBeamPeriod(0);
     metaData.SetResponsible("Chiara Oppedisano");
     metaData.SetComment("Filling AliZDCTDCCalib object");  
     //
     resTDCcal = Store("Calib","TDCCalib",tdcCalib, &metaData, 0, kTRUE);
     if(resTDCcal==kFALSE) return 21;
    }
    delete daqSourcetdc; daqSourcetdc = 0;

    Bool_t restdcHist = kTRUE;
    TList* daqSourceH = GetFileSources(kDAQ, "TDCHISTOS");
    if(!daqSourceH){
      Log(Form("No source for TDCHISTOS id run %d !", fRun));
      return 22;
    }
    Log("\t List of DAQ sources for TDCHISTOS id: "); daqSourceH->Print();
    //
    TIter iterH(daqSourceH);
    TObjString* sourceH = 0;
    Int_t iH=0;
    while((sourceH = dynamic_cast<TObjString*> (iterH.Next()))){
     TString stringTDCFileName = GetFile(kDAQ, "TDCHISTOS", sourceH->GetName());
     if(stringTDCFileName.Length() <= 0){
     	Log(Form("No TDCHISTOS file from source %s!", sourceH->GetName()));
        return 22;
     }
     const char* tdcFileName = stringTDCFileName.Data();
     Log(Form("\t Getting file #%d: %s from %s\n",++iH, tdcFileName, sourceH->GetName()));
     restdcHist = StoreReferenceFile(tdcFileName, "tdcReference.root");
     if(restdcHist==kFALSE) return 23;
    }
    delete daqSourceH; daqSourceH=0;
  }
  
    if(resChMapStore==kFALSE) return 5;
    else return 0;

}

//______________________________________________________________________________________________
UInt_t AliZDCPreprocessor::ProcessppData()
{
   Bool_t resEnCal=kTRUE, resTowCal=kTRUE;
  
   // *********** Energy calibration
   // --- Cheking if there is already the entry in the OCDB
   AliCDBEntry *cdbEnEntry = GetFromOCDB("Calib", "EnergyCalib");
   if(!cdbEnEntry){   
     Log(Form(" ZDC/Calib/EnergyCalib entry will be created"));
     // --- Initializing calibration object
     AliCDBMetaData metaData;
     metaData.SetBeamPeriod(0);
     metaData.SetResponsible("Chiara Oppedisano");
     //
     AliZDCEnCalib *eCalib = new AliZDCEnCalib("ZDC");
     for(Int_t j=0; j<6; j++) eCalib->SetEnCalib(j,1.);
     metaData.SetComment("AliZDCEnCalib object");  
     //eCalib->Print("");
     resEnCal = Store("Calib", "EnergyCalib", eCalib, &metaData, 0, kTRUE);
   }
   else{ 
     // if entry exists it is still valid (=1 for all runs!)
     Log(Form(" Valid ZDC/Calib/EnergyCalib object already existing in OCDB!!!"));
     resEnCal = kTRUE;
   }
   
   if(resEnCal==kFALSE) return 6;

   //
   // *********** Tower inter-calibration
   // --- Cheking if there is already the entry in the OCDB
   AliCDBEntry *cdbTowEntry = GetFromOCDB("Calib", "TowerCalib");
   if(!cdbTowEntry){   
     AliZDCTowerCalib *towCalib = new AliZDCTowerCalib("ZDC");
     for(Int_t j=0; j<5; j++){  
        towCalib->SetZN1EqualCoeff(j, 1.);
        towCalib->SetZP1EqualCoeff(j, 1.);
        towCalib->SetZN2EqualCoeff(j, 1.);
        towCalib->SetZP2EqualCoeff(j, 1.);  
     }
     //towCalib->Print("");
     // 
     AliCDBMetaData metaData;
     metaData.SetBeamPeriod(0);
     metaData.SetResponsible("Chiara Oppedisano");
     metaData.SetComment("AliZDCTowerCalib object");  
     //
     resTowCal = Store("Calib", "TowerCalib", towCalib, &metaData, 0, kTRUE);
   }
   else{ 
     // if entry exists it is still valid (=1 for all runs!)
     Log(Form(" Valid ZDC/Calib/TowerCalib object already existing in OCDB!!!"));
     resTowCal = kTRUE;
   }
   
   if(resTowCal==kFALSE) return 7;
   
   return 0;
}

//______________________________________________________________________________________________
UInt_t AliZDCPreprocessor::ProcessCalibData(Float_t beamEnergy)
{
  TList* daqSources = GetFileSources(kDAQ, "EMDENERGYCALIB");
  if(!daqSources){
    AliError(Form("No sources for CALIBRATION_EMD run %d !", fRun));
    return 8;
  }
  Log("\t List of DAQ sources for EMDENERGYCALIB id: "); daqSources->Print();
  //
  TIter iter2(daqSources);
  TObjString* source = 0;
  Int_t i=0;
  Bool_t resEnCal=kTRUE, resTowCal=kTRUE;
  
  while((source = dynamic_cast<TObjString*> (iter2.Next()))){
    TString stringEMDFileName = GetFile(kDAQ, "EMDENERGYCALIB", source->GetName());
    if(stringEMDFileName.Length() <= 0){
      Log(Form("No file from source %s!", source->GetName()));
      return 8;
    }
    const char* emdFileName = stringEMDFileName.Data();
    Log(Form("\t Getting file #%d: %s from %s\n",++i,emdFileName,source->GetName()));
    //
    // --- Initializing energy calibration object
    AliZDCEnCalib *eCalib = new AliZDCEnCalib("ZDC");
    // --- Reading file with calibration data
    if(emdFileName){
      FILE *file;
      if((file = fopen(emdFileName,"r")) == NULL){
        printf("Cannot open file %s \n",emdFileName);
        return 8;
      }
      Log(Form("File %s connected to process data from EM dissociation events", emdFileName));
      //
      Float_t fitValEMD[6];
      for(Int_t j=0; j<6; j++){        
        if(j<6){
          int iread = fscanf(file,"%f",&fitValEMD[j]);
          if(iread==0) AliDebug(3," Failing reading data from EMD calibration data file");
          if(fitValEMD[j]!=1.) eCalib->SetEnCalib(j, beamEnergy/fitValEMD[j]);
	  else eCalib->SetEnCalib(j, fitValEMD[j]);
        }
      }
      //
      fclose(file);
    }
    else{
      Log(Form("File %s not found", emdFileName));
      return 8;
    }
    //eCalib->Print("");
    // 
    AliCDBMetaData metaData;
    metaData.SetBeamPeriod(0);
    metaData.SetResponsible("Chiara Oppedisano");
    metaData.SetComment("Filling AliZDCEnCalib object");  
    //
    resEnCal = Store("Calib","EnergyCalib",eCalib, &metaData, 0, kTRUE);
    if(resEnCal==kFALSE) return 6;
  }
  delete daqSources; daqSources = 0;
  
  TList* daqSourcesH = GetFileSources(kDAQ, "EMDTOWERCALIB");
  if(!daqSourcesH){
    AliError(Form("No sources for CALIBRATION_EMD run %d !", fRun));
    return 9;
  }
  Log("\t List of DAQ sources for EMDTOWERCALIB id: "); daqSourcesH->Print();
  //
  TIter iter2H(daqSourcesH);
  TObjString* sourceH = 0;
  Int_t iH=0;
  while((sourceH = dynamic_cast<TObjString*> (iter2H.Next()))){
    TString stringtowEMDFileName = GetFile(kDAQ, "EMDTOWERCALIB", sourceH->GetName());
    if(stringtowEMDFileName.Length() <= 0){
      Log(Form("No file from source %s!", sourceH->GetName()));
      return 9;
    }
    const char * towEMDFileName = stringtowEMDFileName.Data();
    Log(Form("\t Getting file #%d: %s from source %s\n",++iH,towEMDFileName,sourceH->GetName()));
    // --- Initializing energy calibration object
    AliZDCTowerCalib *towCalib = new AliZDCTowerCalib("ZDC");
    // --- Reading file with calibration data
    if(towEMDFileName){
      FILE *file;
      if((file = fopen(towEMDFileName,"r")) == NULL){
        printf("Cannot open file %s \n",towEMDFileName);
        return 9;
      }
      //
      Float_t equalCoeff[4][5];
      for(Int_t j=0; j<4; j++){        
         for(Int_t k=0; k<5; k++){
           int leggi = fscanf(file,"%f",&equalCoeff[j][k]);
           if(leggi==0) AliDebug(3," Failing reading data from EMD calibration file");
           if(j==0)	 towCalib->SetZN1EqualCoeff(k, equalCoeff[j][k]);
           else if(j==1) towCalib->SetZP1EqualCoeff(k, equalCoeff[j][k]);
           else if(j==2) towCalib->SetZN2EqualCoeff(k, equalCoeff[j][k]);
           else if(j==3) towCalib->SetZP2EqualCoeff(k, equalCoeff[j][k]);  
         }
      }
      //
      fclose(file);
    }
    else{
      Log(Form("File %s not found", towEMDFileName));
      return 9;
    }
    //towCalib->Print("");
    // 
    AliCDBMetaData metaData;
    metaData.SetBeamPeriod(0);
    metaData.SetResponsible("Chiara Oppedisano");
    metaData.SetComment("Filling AliZDCTowerCalib object");  
    //
    resTowCal = Store("Calib","TowerCalib",towCalib, &metaData, 0, kTRUE);
    if(resTowCal==kFALSE) return 7;
  }
  delete daqSourcesH; daqSourcesH = 0;
  
     
  return 0;
}

//______________________________________________________________________________________________
UInt_t AliZDCPreprocessor::ProcessPedestalData()
{
  TList* daqSources = GetFileSources(kDAQ, "PEDESTALDATA");
  if(!daqSources){
    Log(Form("No source for STANDALONE_PEDESTAL run %d !", fRun));
    return 10;
  }
  if(daqSources->GetEntries()==0) return 10;
  Log("\t List of DAQ sources for PEDESTALDATA id: "); daqSources->Print();
  //
  TIter iter(daqSources);
  TObjString* source;
  Int_t i=0;
  Bool_t resPedCal=kTRUE, resPedHist=kTRUE;
  
  while((source = dynamic_cast<TObjString*> (iter.Next()))){
     TString stringPedFileName = GetFile(kDAQ, "PEDESTALDATA", source->GetName());
     if(stringPedFileName.Length() <= 0){
     	Log(Form("No PEDESTALDATA file from source %s!", source->GetName()));
        return 10;
     }
     const char* pedFileName = stringPedFileName.Data();
     Log(Form("\t Getting file #%d: %s from %s\n",++i,pedFileName,source->GetName()));
     //
     // --- Initializing pedestal calibration object
     AliZDCPedestals *pedCalib = new AliZDCPedestals("ZDC");
     // --- Reading file with pedestal calibration data
     // no. ADCch = (22 signal ch. + 2 reference PMs) * 2 gain chain = 48
     const Int_t knZDCch = 48;
     FILE *file;
     if((file = fopen(pedFileName,"r")) == NULL){
       printf("Cannot open file %s \n",pedFileName);
       return 10;
     }
     Log(Form("File %s connected to process pedestal data", pedFileName));
     Float_t pedVal[(3*knZDCch)][2];
     for(Int_t k=0; k<(3*knZDCch); k++){
        for(Int_t j=0; j<2; j++){
           int aleggi = fscanf(file,"%f",&pedVal[k][j]);
           if(aleggi==0) AliDebug(3," Failing reading data from pedestal file");
           //if(j==1) printf("pedVal[%d] -> %f, %f \n",k,pedVal[k][0],pedVal[k][1]);
        }
        if(k<knZDCch){
          pedCalib->SetMeanPed(k,pedVal[k][0]);
          pedCalib->SetMeanPedWidth(k,pedVal[k][1]);
        }
        else if(k>=knZDCch && k<(2*knZDCch)){
          pedCalib->SetOOTPed(k-knZDCch,pedVal[k][0]);
          pedCalib->SetOOTPedWidth(k-knZDCch,pedVal[k][1]);
        }
        else if(k>=(2*knZDCch) && k<(3*knZDCch)){
          pedCalib->SetPedCorrCoeff(k-(2*knZDCch),pedVal[k][0],pedVal[k][1]);
        }
     }
     fclose(file);
     //pedCalib->Print("");
     // 
     AliCDBMetaData metaData;
     metaData.SetBeamPeriod(0);
     metaData.SetResponsible("Chiara Oppedisano");
     metaData.SetComment("Filling AliZDCPedestals object");  
     //
     resPedCal = Store("Calib","Pedestals",pedCalib, &metaData, 0, kTRUE);
     if(resPedCal==kFALSE) return 11;
  }
  delete daqSources; daqSources = 0;
  
  TList* daqSourceH = GetFileSources(kDAQ, "PEDESTALHISTOS");
  if(!daqSourceH){
    Log(Form("No source for PEDESTALHISTOS id run %d !", fRun));
    return 12;
  }
  Log("\t List of DAQ sources for PEDESTALHISTOS id: "); daqSourceH->Print();
  //
  TIter iterH(daqSourceH);
  TObjString* sourceH = 0;
  Int_t iH=0;
  while((sourceH = dynamic_cast<TObjString*> (iterH.Next()))){
     TString stringPedFileName = GetFile(kDAQ, "PEDESTALHISTOS", sourceH->GetName());
     if(stringPedFileName.Length() <= 0){
     	Log(Form("No PEDESTALHISTOS file from source %s!", sourceH->GetName()));
        return 12;
     }
     const char* pedFileName = stringPedFileName.Data();
     Log(Form("\t Getting file #%d: %s from %s\n",++iH, pedFileName, sourceH->GetName()));
     resPedHist = StoreReferenceFile(pedFileName, "pedestalReference.root");
     if(resPedHist==kFALSE) return 13;
  }
  delete daqSourceH; daqSourceH=0;
  
  return 0;
}

//______________________________________________________________________________________________
UInt_t AliZDCPreprocessor::ProcessLaserData()
{
  TList* daqSources = GetFileSources(kDAQ, "LASERDATA");
  if(!daqSources){
    AliError(Form("No sources for STANDALONE_LASER run %d !", fRun));
    return 14;
  }
  if(daqSources->GetEntries()==0) return 14;
  Log("\t List of DAQ sources for LASERDATA id: "); daqSources->Print();
  //
  TIter iter2(daqSources);
  TObjString* source = 0;
  Int_t i=0;
  Bool_t resLaserCal=kTRUE, resLaserHist=kTRUE;
  
  while((source = dynamic_cast<TObjString*> (iter2.Next()))){
     TString stringLaserFileName = GetFile(kDAQ, "LASERDATA", source->GetName());
     if(stringLaserFileName.Length() <= 0){
       Log(Form("No LASER file from source %s!", source->GetName()));
       return 14;
     }
     const char* laserFileName = stringLaserFileName.Data();
     Log(Form("\t Getting file #%d: %s from %s\n",++i,laserFileName,source->GetName()));
     //
     // --- Initializing pedestal calibration object
     AliZDCLaserCalib *lCalib = new AliZDCLaserCalib("ZDC");
     // --- Reading file with pedestal calibration data
     if(laserFileName){
       FILE *file;
       if((file = fopen(laserFileName,"r")) == NULL){
         printf("Cannot open file %s \n",laserFileName);
         return 14;
       }
       Log(Form("File %s connected to process data from LASER events", laserFileName));
       //
       Float_t ivalRead[22][4]; 
       for(Int_t j=0; j<22; j++){
          for(Int_t k=0; k<4; k++){
            int aleggi = fscanf(file,"%f",&ivalRead[j][k]);
            if(aleggi==0) AliDebug(3," Failng reading data from laser file");
            //printf(" %d %1.0f  ",k, ivalRead[j][k]);
          }
          lCalib->SetDetector(j, (Int_t) ivalRead[j][0]);
          lCalib->SetSector(j, (Int_t) ivalRead[j][1]);
          lCalib->SetfPMValue(j, ivalRead[j][2]);
          lCalib->SetfPMWidth(j, ivalRead[j][3]);
       }
       fclose(file);
     }
     else{
       Log(Form("File %s not found", laserFileName));
       return 14;
     }
     //lCalib->Print("");
     // 
     AliCDBMetaData metaData;
     metaData.SetBeamPeriod(0);
     metaData.SetResponsible("Chiara Oppedisano");
     metaData.SetComment("Filling AliZDCLaserCalib object");  
     //
     resLaserCal = Store("Calib","LaserCalib",lCalib, &metaData, 0, kTRUE);
     if(resLaserCal==kFALSE) return 15;
  }
  delete daqSources; daqSources = 0;

  TList* daqSourceH = GetFileSources(kDAQ, "LASERHISTOS");
  if(!daqSourceH){
    AliError(Form("No sources for STANDALONE_LASER run %d !", fRun));
    return 16;
  }
  Log("\t List of DAQ sources for LASERHISTOS id: "); daqSourceH->Print();
  //
  TIter iter2H(daqSourceH);
  TObjString* sourceH = 0;
  Int_t iH=0;
  while((sourceH = dynamic_cast<TObjString*> (iter2H.Next()))){
     Log(Form("\t Getting file #%d\n",++iH));
     TString stringLaserFileName = GetFile(kDAQ, "LASERHISTOS", sourceH->GetName());
     if(stringLaserFileName.Length() <= 0){
       Log(Form("No LASER file from source %s!", sourceH->GetName()));
       return 16;
     }
     resLaserHist = StoreReferenceFile(stringLaserFileName.Data(), "laserReference.root");
     //
     if(resLaserHist==kFALSE) return 17;
  }
  delete daqSourceH; daqSourceH = 0;
  
  return 0;
}


//______________________________________________________________________________________________
UInt_t AliZDCPreprocessor::ProcessMBCalibData()
{
  TList* daqSources = GetFileSources(kDAQ, "MBCALIB");
  if(!daqSources){
    AliError(Form("No sources for CALIBRATION_MB run %d !", fRun));
    return 18;
  }
  if(daqSources->GetEntries()==0) return 18;
  Log("\t List of DAQ sources for MBCALIB id: "); daqSources->Print();
  //
  TIter iter2(daqSources);
  TObjString* source = 0;
  Int_t i=0;
  Bool_t resMBCal=kTRUE;
  
  while((source = dynamic_cast<TObjString*> (iter2.Next()))){
     TString stringMBFileName = GetFile(kDAQ, "MBCALIB", source->GetName());
     if(stringMBFileName.Length() <= 0){
       Log(Form("No MBCALIB file from source %s!", source->GetName()));
       return 18;
     }
     const char* mbFileName = stringMBFileName.Data();
     Log(Form("\t Getting file #%d: %s from %s\n",++i,mbFileName,source->GetName()));
     //
     // --- Initializing calibration object
     AliZDCMBCalib *mbCalib = new AliZDCMBCalib("ZDC");
     // --- Reading file with calibration data
     if(mbFileName){
       TFile * fileHistos = TFile::Open(mbFileName);
       Log(Form("File %s connected to process data from CALIBRATION_MB events", mbFileName));
       //
       fileHistos->cd();
       TH2F *hZDCvsZEM = (TH2F*)  fileHistos->Get("hZDCvsZEM");
       TH2F *hZDCCvsZEM = (TH2F*) fileHistos->Get("hZDCCvsZEM");
       TH2F *hZDCAvsZEM = (TH2F*) fileHistos->Get("hZDCAvsZEM");
       //
       mbCalib->SetZDCvsZEM(hZDCvsZEM);
       mbCalib->SetZDCCvsZEM(hZDCCvsZEM);
       mbCalib->SetZDCAvsZEM(hZDCAvsZEM);
       //
       //fileHistos->Close();
     }
     else{
       Log(Form("File %s not found", mbFileName));
       return 14;
     }
     // 
     AliCDBMetaData metaData;
     metaData.SetBeamPeriod(0);
     metaData.SetResponsible("Chiara Oppedisano");
     metaData.SetComment("Filling AliZDCMBCalib object");  
     //
     //mbCalib->Dump();
     //
     resMBCal = Store("Calib","MBCalib",mbCalib, &metaData, 0, kTRUE);
       printf(" here 1000\n");
     if(resMBCal==kFALSE) return 19;
  }
  delete daqSources; daqSources = 0;
  
  return 0;
}

//______________________________________________________________________________________________
UInt_t AliZDCPreprocessor::Process(TMap* dcsAliasMap)
{
 UInt_t resDCS = 0;
 UInt_t resChMap=0;
 UInt_t resEnergyCalib=0, resPedestalCalib=0, resLaserCalib=0, resMBCalib=0;

 // ************************* Process DCS data ****************************
 if(ProcessDCS()) resDCS = ProcessDCSData(dcsAliasMap);
  
 // ********************************* From DAQ ************************************

 const char* beamType = GetRunParameter("beamType");
 TString runType = GetRunType();
 Float_t beamEnergy = (Float_t)(((TString)GetRunParameter("beamEnergy")).Atof()); 
 printf("\t **** AliZDCPreprocessor -> runType %s, beamType %s,  beamEnergy %1.0f ****\n",
 	runType.Data(),beamType,beamEnergy);

 // ******************************************
 // ADC channel mapping
 // ******************************************
 resChMap = ProcessChMap();
 
 // ******************************************
 // Calibration param. for p-p data (all = 1)
 // ******************************************
 // NO ENERGY CALIBRATION -> coefficients set to 1.
 // Temp -> also inter-calibration coefficients are set to 1.
 if((strcmp(beamType,"p-p")==0) || (strcmp(beamType,"P-P")==0) 
     || (strcmp(beamType,"P-A")==0) || (strcmp(beamType,"A-P")==0)) 
     	resEnergyCalib = ProcessppData();
 
 // *****************************************************
 // CALIBRATION_EMD -> Energy calibration and equalization
 // *****************************************************
 if((strcmp(beamType,"A-A")==0) && (runType.CompareTo("CALIBRATION_EMD")==0)) 
   resEnergyCalib =  ProcessCalibData(beamEnergy);
 
 // *****************************************************
 // STANDALONE_PEDESTALS -> Pedestal subtraction 
 // *****************************************************
 if(runType.CompareTo("STANDALONE_PEDESTAL")==0) resPedestalCalib = ProcessPedestalData();
 
 // *****************************************************
 // STANDALONE_LASER -> Signal stability and ageing 
 // *****************************************************
 else if(runType.CompareTo("STANDALONE_LASER")==0) resLaserCalib = ProcessLaserData();

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