ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2008, 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.                  *
 **************************************************************************/

/////////////////////////////////////////////////////////////
//							   //
//	Class to analyze ZDC data			   //
//							   //
/////////////////////////////////////////////////////////////

#include <TTree.h>
//#include <TList.h>
#include <TFile.h>
#include <TString.h>
#include <TCanvas.h>

#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "AliVEvent.h"
#include "AliESD.h"
#include "AliESDEvent.h"
#include "AliESDHeader.h"
#include "AliESDInputHandler.h"
#include "AliESDZDC.h"
#include "AliMultiplicity.h"
#include "AliAODHandler.h"
#include "AliAODEvent.h"
#include "AliAODHeader.h"
#include "AliAODVertex.h"
#include "AliAODVZERO.h"
#include "AliAODZDC.h"
#include "AliAODMCHeader.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliHeader.h"
#include "AliAODMCParticle.h"
#include "AliAnalysisTaskSE.h"
#include "AliGenEventHeader.h"
#include "AliGenHijingEventHeader.h"
#include "AliPhysicsSelectionTask.h"
#include "AliPhysicsSelection.h"
#include "AliTriggerAnalysis.h"
#include "AliCentrality.h"
#include "AliAnalysisTaskZDCTreeMaker.h"

ClassImp(AliAnalysisTaskZDCTreeMaker)


//________________________________________________________________________
AliAnalysisTaskZDCTreeMaker::AliAnalysisTaskZDCTreeMaker():
  AliAnalysisTaskSE(),
    fDebug(0),
    fAnalysisInput("ESD"),
    fIsMCInput(kFALSE),
    fUseSpecialOutput(kFALSE),
    fOutput(0x0),
    fCentralityTree(0x0),
    fIsEventSelected(kFALSE),
    fIsPileupFromSPD(kFALSE),
    /*fxVertex(0),	 
    fyVertex(0),	 
    fzVertex(0),	 
    fVertexer3d(kFALSE),*/
    fNTracklets(0),
    fIsV0ATriggered(0),
    fIsV0CTriggered(0),
    fMultV0A(0),	 
    fMultV0C(0), 
    fESDFlag(0),	 
    /*fZNCEnergy(0), 
    fZPCEnergy(0),  
    fZNAEnergy(0),  
    fZPAEnergy(0),*/
    fZEM1Energy(0), 
    fZEM2Energy(0),
    //fCentralityV0M(0),
    fCentralityV0A(0),
    fCentralityV0C(0),
    fCentralityCL1(0),
    fCentralityZNA(0),
    fCentralityZPA(0),    
    fCentralityZNC(0),
    fCentralityZPC(0)    
{   
   // Default constructor

  for(int i=0; i<400; i++) fTracklEta[i] = -999.;
  fNClusters[0]=fNClusters[1]=0;
  for(int i=0; i<8; i++) fRingMultV0[i] = 0.;
  for(Int_t itow=0; itow<5; itow++){
     fZNCtower[itow]=0.;  
     fZPCtower[itow]=0.;  
     fZNAtower[itow]=0.;  
     fZPAtower[itow]=0.;  
     fZNCtowerLG[itow]=0.;
     fZPCtowerLG[itow]=0.;
     fZNAtowerLG[itow]=0.;
     fZPAtowerLG[itow]=0.;

  }
  /*for(Int_t itdc=0; itdc<32; itdc++){
    for(Int_t ihit=0; ihit<4; ihit++) fTDCvalues[itdc][ihit]=9999;
  }*/
  
}   

//________________________________________________________________________
AliAnalysisTaskZDCTreeMaker::AliAnalysisTaskZDCTreeMaker(const char *name):
  AliAnalysisTaskSE(name),
    fDebug(0),
    fAnalysisInput("ESD"),
    fIsMCInput(kFALSE),
    fUseSpecialOutput(kFALSE),
    fOutput(0x0),
    fCentralityTree(0x0),
    fIsEventSelected(kFALSE),
    fIsPileupFromSPD(kFALSE),
    /*fxVertex(0),	 
    fyVertex(0),	 
    fzVertex(0),	 
    fVertexer3d(kFALSE),*/
    fNTracklets(0),
    fIsV0ATriggered(0),
    fIsV0CTriggered(0),
    fMultV0A(0),	 
    fMultV0C(0), 
    fESDFlag(0),	 
    /*fZNCEnergy(0), 
    fZPCEnergy(0),  
    fZNAEnergy(0),  
    fZPAEnergy(0),*/
    fZEM1Energy(0), 
    fZEM2Energy(0),
    //fCentralityV0M(0),
    fCentralityV0A(0),
    fCentralityV0C(0),
    fCentralityCL1(0),
    fCentralityZNA(0),
    fCentralityZPA(0),    
    fCentralityZNC(0),
    fCentralityZPC(0)    
    
{
  // Default constructor

  for(int i=0; i<400; i++) fTracklEta[i] = -999.;
  fNClusters[0]=fNClusters[1]=0;
  for(int i=0; i<8; i++) fRingMultV0[i] = 0.;
 
  for(Int_t itow=0; itow<5; itow++){
     fZNCtower[itow]=0.;  
     fZPCtower[itow]=0.;  
     fZNAtower[itow]=0.;  
     fZPAtower[itow]=0.;  
     fZNCtowerLG[itow]=0.;
     fZPCtowerLG[itow]=0.;
     fZNAtowerLG[itow]=0.;
     fZPAtowerLG[itow]=0.;

  }
  /*for(Int_t itdc=0; itdc<32; itdc++){
    for(Int_t ihit=0; ihit<4; ihit++) fTDCvalues[itdc][ihit]=9999;
  }*/
  
  // Output slot #1 writes into a TList container
  DefineOutput(1, TList::Class()); 
  //DefineOutput(1, TTree::Class()); 
  
}
 
//________________________________________________________________________
AliAnalysisTaskZDCTreeMaker::~AliAnalysisTaskZDCTreeMaker()
{
  // Destructor
  if(fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()){
    delete fOutput; fOutput=0;
  } 
  /*if(fCentralityTree && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()){
    delete fCentralityTree; fCentralityTree=0;
  } 
  */ 
}  

//________________________________________________________________________
void AliAnalysisTaskZDCTreeMaker::UserCreateOutputObjects()
{
  // Create the output containers
  if(fDebug>1) printf("AliAnalysisTaskZDCTreeMaker::UserCreateOutputObjects() \n");

  if (fUseSpecialOutput) OpenFile(1);

  // Several histograms are more conveniently managed in a TList
  fOutput = new TList;
  fOutput->SetOwner();
  //fOutput->SetName("output");

    fCentralityTree = new TTree("fCentralityTree", "Centrality vs. multiplicity tree");
    //
    fCentralityTree->Branch("trigClass",&fTrigClass,"trigClass/C");
    fCentralityTree->Branch("eventSelected",&fIsEventSelected,"eventSelected/O");
    fCentralityTree->Branch("pileupSPD",&fIsPileupFromSPD,"pileupSPD/O");
    /*fCentralityTree->Branch("xVertex", &fxVertex,"xVertex/D");
    fCentralityTree->Branch("yVertex", &fyVertex,"yVertex/D");
    fCentralityTree->Branch("zVertex", &fzVertex,"zVertex/D");
    fCentralityTree->Branch("vertexer3d", &fVertexer3d,"vertexer3d/O");*/
    fCentralityTree->Branch("nTracklets", &fNTracklets,"nTracklets/I");
    fCentralityTree->Branch("tracklEta", fTracklEta,"tracklEta[400]/D");
    fCentralityTree->Branch("nClusters", fNClusters,"nClusters[2]/I");
    //
    fCentralityTree->Branch("isV0ATriggered", &fIsV0ATriggered,"isV0ATriggered/I");
    fCentralityTree->Branch("isV0CTriggered", &fIsV0CTriggered,"isV0CTriggered/I");
    fCentralityTree->Branch("multV0A", &fMultV0A,"multV0A/F");
    fCentralityTree->Branch("multV0C", &fMultV0C,"multV0C/F");
    fCentralityTree->Branch("ringmultV0", fRingMultV0,"ringmultV0[8]/F");
    
    fCentralityTree->Branch("esdFlag", &fESDFlag,"esdFlag/i");
    /*fCentralityTree->Branch("zncEnergy",  &fZNCEnergy,  "zncEnergy/F");
    fCentralityTree->Branch("zpcEnergy",  &fZPCEnergy,  "zpcEnergy/F");
    fCentralityTree->Branch("znaEnergy",  &fZNAEnergy,  "znaEnergy/F");
    fCentralityTree->Branch("zpaEnergy",  &fZPAEnergy,  "zpaEnergy/F");*/
    fCentralityTree->Branch("zem1Energy", &fZEM1Energy, "zem1Energy/F");
    fCentralityTree->Branch("zem2Energy", &fZEM2Energy, "zem2Energy/F");

    fCentralityTree->Branch("znctower", fZNCtower, "znctower[5]/F");
    fCentralityTree->Branch("zpctower", fZPCtower, "zpctower[5]/F");
    fCentralityTree->Branch("znatower", fZNAtower, "znatower[5]/F");
    fCentralityTree->Branch("zpatower", fZPAtower, "zpatower[5]/F");
    fCentralityTree->Branch("znctowerLG", fZNCtowerLG, "znctowerLG[5]/F");
    fCentralityTree->Branch("zpctowerLG", fZPCtowerLG, "zpctowerLG[5]/F");
    fCentralityTree->Branch("znatowerLG", fZNAtowerLG, "znatowerLG[5]/F");
    fCentralityTree->Branch("zpatowerLG", fZPAtowerLG, "zpatowerLG[5]/F");

//    fCentralityTree->Branch("tdc", fTDCvalues, "tdc[32][4]/I");
//    fCentralityTree->Branch("tdcCorr", fTDCcorr, "tdcCorr[32][4]/F");
     
    //fCentralityTree->Branch("centrV0mult", &fCentralityV0M, "centrV0mult/F");
    fCentralityTree->Branch("centrV0Amult", &fCentralityV0A, "centrV0Amult/F");
    fCentralityTree->Branch("centrV0Cmult", &fCentralityV0C, "centrV0Cmult/F");
    fCentralityTree->Branch("centrSPDclu1", &fCentralityCL1, "centrSPDclu1/F");
    fCentralityTree->Branch("centrZNA", &fCentralityZNA, "centrZNA/F");
    fCentralityTree->Branch("centrZPA", &fCentralityZPA, "centrZPA/F");
    fCentralityTree->Branch("centrZNC", &fCentralityZNC, "centrZNC/F");
    fCentralityTree->Branch("centrZPC", &fCentralityZPC, "centrZPC/F");
  
    fOutput->Add(fCentralityTree);      
    PostData(1, fOutput);
  
  //PostData(1, fCentralityTree);
}

//________________________________________________________________________
void AliAnalysisTaskZDCTreeMaker::UserExec(Option_t */*option*/)
{
  // Execute analysis for current event:
  if(fDebug>1) printf(" **** AliAnalysisTaskZDCTreeMaker::UserExec() \n");
  
  if (!InputEvent()) {
    Printf("ERROR: InputEvent not available");
    return;
  }

  if(fAnalysisInput.CompareTo("ESD")==0){
      
      //printf(" \t ***Analizing ESD ev. %d\n",fNev);
      
      AliESDEvent* esd = dynamic_cast<AliESDEvent*> (InputEvent());
      if(!esd) return;
      
      // Select PHYSICS events (type=7, for data)
      if(!fIsMCInput && esd->GetEventType()!=7) return; 

      for(int ir=0; ir<8; ir++) fRingMultV0[ir]=0.;
            
      // ***** Trigger selection
      TString triggerClass = esd->GetFiredTriggerClasses();
      sprintf(fTrigClass,"%s",triggerClass.Data());
      
      // use response of AliPhysicsSelection
      fIsEventSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kAnyINT);       
      fIsPileupFromSPD = esd->IsPileupFromSPD(6, 0.8);
      //fIsPileupFromSPD = esd->IsPileupFromSPDInMultBins();

      AliCentrality *centrality = esd->GetCentrality();
      //fCentralityV0M = centrality->GetCentralityPercentile("V0M");
      fCentralityV0A = centrality->GetCentralityPercentile("V0A");
      fCentralityV0C = centrality->GetCentralityPercentile("V0C");
      fCentralityCL1 = centrality->GetCentralityPercentile("CL1");
      fCentralityZNA = centrality->GetCentralityPercentile("ZNA");
      fCentralityZPA = centrality->GetCentralityPercentile("ZPA");
      fCentralityZNC = centrality->GetCentralityPercentile("ZNC");
      fCentralityZPC = centrality->GetCentralityPercentile("ZPC");
                
      /*const AliESDVertex *vertex = esd->GetPrimaryVertexSPD();
      fxVertex = vertex->GetX();
      fyVertex = vertex->GetY();
      fzVertex = vertex->GetZ();
      if(vertex->IsFromVertexer3D()) fVertexer3d = kTRUE;
      else fVertexer3d = kFALSE;*/
      
      const AliMultiplicity *mult = esd->GetMultiplicity();
      fNTracklets = mult->GetNumberOfTracklets();
      for(int itr=0; itr<fNTracklets; itr++){
         if(itr<400) fTracklEta[itr] = mult->GetEta(itr);
      }
      
      for(Int_t ilay=0; ilay<2; ilay++){
        fNClusters[ilay] = mult->GetNumberOfITSClusters(ilay);
      }
          
      AliESDVZERO *vzeroESD = esd->GetVZEROData();
      fMultV0A = vzeroESD->GetMTotV0A();
      fMultV0C = vzeroESD->GetMTotV0C();
      //
      fIsV0ATriggered = vzeroESD->GetV0ADecision();
      fIsV0CTriggered = vzeroESD->GetV0CDecision();
      //
      for(Int_t iRing = 0; iRing < 8; ++iRing) {
    	for(Int_t i = 0; i < 8; ++i) {
//      	   fRingMultV0[iRing] += esd->GetVZEROEqMultiplicity(8*iRing+i);
      	   fRingMultV0[iRing] += vzeroESD->GetMultiplicity(8*iRing+i);
    	}
      }
        
      AliESDZDC *esdZDC = esd->GetESDZDC();
      
      fESDFlag =  esdZDC->GetESDQuality();   
      
      /*fZNCEnergy = (Float_t) (esdZDC->GetZDCN1Energy());
      fZPCEnergy = (Float_t) (esdZDC->GetZDCP1Energy());
      fZNAEnergy = (Float_t) (esdZDC->GetZDCN2Energy());
      fZPAEnergy = (Float_t) (esdZDC->GetZDCP2Energy());*/
      fZEM1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0));
      fZEM2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1));
       
      const Double_t * towZNC = esdZDC->GetZN1TowerEnergy();
      const Double_t * towZPC = esdZDC->GetZP1TowerEnergy();
      const Double_t * towZNA = esdZDC->GetZN2TowerEnergy();
      const Double_t * towZPA = esdZDC->GetZP2TowerEnergy();
      //
      const Double_t * towZNCLG = esdZDC->GetZN1TowerEnergyLR();
      const Double_t * towZPCLG = esdZDC->GetZP1TowerEnergyLR();
      const Double_t * towZNALG = esdZDC->GetZN2TowerEnergyLR();
      const Double_t * towZPALG = esdZDC->GetZP2TowerEnergyLR();
      //
      for(Int_t it=0; it<5; it++){
         fZNCtower[it] = (Float_t) (towZNC[it]);
         fZPCtower[it] = (Float_t) (towZPC[it]);
         fZNAtower[it] = (Float_t) (towZNA[it]); 
         fZPAtower[it] = (Float_t) (towZPA[it]);  
         fZNCtowerLG[it] = (Float_t) (towZNCLG[it]);
         fZPCtowerLG[it] = (Float_t) (towZPCLG[it]);
         fZNAtowerLG[it] = (Float_t) (towZNALG[it]); 
         fZPAtowerLG[it] = (Float_t) (towZPALG[it]);  
      }
      
      /*for(Int_t itdc=0; itdc<32; itdc++){
	 for(Int_t i=0; i<4; i++){
	   fTDCvalues[itdc][i] = esdZDC->GetZDCTDCData(itdc, i);
	 }
      }*/      

  }   
  else if(fAnalysisInput.CompareTo("AOD")==0){

      printf("\n \t *** Analysis on AODs is NOT implemented\n\n");
      

  }
  
  fCentralityTree->Fill();
 
  PostData(1, fOutput);
  
  //PostData(1, fCentralityTree);
   
}



//________________________________________________________________________
void AliAnalysisTaskZDCTreeMaker::Terminate(Option_t */*option*/)
{
  // Terminate analysis
  //
  printf(" **** AliAnalysisTaskZDCTreeMaker::Terminate() \n");
}
 AliAnalysisTaskZDCTreeMaker.cxx:1
 AliAnalysisTaskZDCTreeMaker.cxx:2
 AliAnalysisTaskZDCTreeMaker.cxx:3
 AliAnalysisTaskZDCTreeMaker.cxx:4
 AliAnalysisTaskZDCTreeMaker.cxx:5
 AliAnalysisTaskZDCTreeMaker.cxx:6
 AliAnalysisTaskZDCTreeMaker.cxx:7
 AliAnalysisTaskZDCTreeMaker.cxx:8
 AliAnalysisTaskZDCTreeMaker.cxx:9
 AliAnalysisTaskZDCTreeMaker.cxx:10
 AliAnalysisTaskZDCTreeMaker.cxx:11
 AliAnalysisTaskZDCTreeMaker.cxx:12
 AliAnalysisTaskZDCTreeMaker.cxx:13
 AliAnalysisTaskZDCTreeMaker.cxx:14
 AliAnalysisTaskZDCTreeMaker.cxx:15
 AliAnalysisTaskZDCTreeMaker.cxx:16
 AliAnalysisTaskZDCTreeMaker.cxx:17
 AliAnalysisTaskZDCTreeMaker.cxx:18
 AliAnalysisTaskZDCTreeMaker.cxx:19
 AliAnalysisTaskZDCTreeMaker.cxx:20
 AliAnalysisTaskZDCTreeMaker.cxx:21
 AliAnalysisTaskZDCTreeMaker.cxx:22
 AliAnalysisTaskZDCTreeMaker.cxx:23
 AliAnalysisTaskZDCTreeMaker.cxx:24
 AliAnalysisTaskZDCTreeMaker.cxx:25
 AliAnalysisTaskZDCTreeMaker.cxx:26
 AliAnalysisTaskZDCTreeMaker.cxx:27
 AliAnalysisTaskZDCTreeMaker.cxx:28
 AliAnalysisTaskZDCTreeMaker.cxx:29
 AliAnalysisTaskZDCTreeMaker.cxx:30
 AliAnalysisTaskZDCTreeMaker.cxx:31
 AliAnalysisTaskZDCTreeMaker.cxx:32
 AliAnalysisTaskZDCTreeMaker.cxx:33
 AliAnalysisTaskZDCTreeMaker.cxx:34
 AliAnalysisTaskZDCTreeMaker.cxx:35
 AliAnalysisTaskZDCTreeMaker.cxx:36
 AliAnalysisTaskZDCTreeMaker.cxx:37
 AliAnalysisTaskZDCTreeMaker.cxx:38
 AliAnalysisTaskZDCTreeMaker.cxx:39
 AliAnalysisTaskZDCTreeMaker.cxx:40
 AliAnalysisTaskZDCTreeMaker.cxx:41
 AliAnalysisTaskZDCTreeMaker.cxx:42
 AliAnalysisTaskZDCTreeMaker.cxx:43
 AliAnalysisTaskZDCTreeMaker.cxx:44
 AliAnalysisTaskZDCTreeMaker.cxx:45
 AliAnalysisTaskZDCTreeMaker.cxx:46
 AliAnalysisTaskZDCTreeMaker.cxx:47
 AliAnalysisTaskZDCTreeMaker.cxx:48
 AliAnalysisTaskZDCTreeMaker.cxx:49
 AliAnalysisTaskZDCTreeMaker.cxx:50
 AliAnalysisTaskZDCTreeMaker.cxx:51
 AliAnalysisTaskZDCTreeMaker.cxx:52
 AliAnalysisTaskZDCTreeMaker.cxx:53
 AliAnalysisTaskZDCTreeMaker.cxx:54
 AliAnalysisTaskZDCTreeMaker.cxx:55
 AliAnalysisTaskZDCTreeMaker.cxx:56
 AliAnalysisTaskZDCTreeMaker.cxx:57
 AliAnalysisTaskZDCTreeMaker.cxx:58
 AliAnalysisTaskZDCTreeMaker.cxx:59
 AliAnalysisTaskZDCTreeMaker.cxx:60
 AliAnalysisTaskZDCTreeMaker.cxx:61
 AliAnalysisTaskZDCTreeMaker.cxx:62
 AliAnalysisTaskZDCTreeMaker.cxx:63
 AliAnalysisTaskZDCTreeMaker.cxx:64
 AliAnalysisTaskZDCTreeMaker.cxx:65
 AliAnalysisTaskZDCTreeMaker.cxx:66
 AliAnalysisTaskZDCTreeMaker.cxx:67
 AliAnalysisTaskZDCTreeMaker.cxx:68
 AliAnalysisTaskZDCTreeMaker.cxx:69
 AliAnalysisTaskZDCTreeMaker.cxx:70
 AliAnalysisTaskZDCTreeMaker.cxx:71
 AliAnalysisTaskZDCTreeMaker.cxx:72
 AliAnalysisTaskZDCTreeMaker.cxx:73
 AliAnalysisTaskZDCTreeMaker.cxx:74
 AliAnalysisTaskZDCTreeMaker.cxx:75
 AliAnalysisTaskZDCTreeMaker.cxx:76
 AliAnalysisTaskZDCTreeMaker.cxx:77
 AliAnalysisTaskZDCTreeMaker.cxx:78
 AliAnalysisTaskZDCTreeMaker.cxx:79
 AliAnalysisTaskZDCTreeMaker.cxx:80
 AliAnalysisTaskZDCTreeMaker.cxx:81
 AliAnalysisTaskZDCTreeMaker.cxx:82
 AliAnalysisTaskZDCTreeMaker.cxx:83
 AliAnalysisTaskZDCTreeMaker.cxx:84
 AliAnalysisTaskZDCTreeMaker.cxx:85
 AliAnalysisTaskZDCTreeMaker.cxx:86
 AliAnalysisTaskZDCTreeMaker.cxx:87
 AliAnalysisTaskZDCTreeMaker.cxx:88
 AliAnalysisTaskZDCTreeMaker.cxx:89
 AliAnalysisTaskZDCTreeMaker.cxx:90
 AliAnalysisTaskZDCTreeMaker.cxx:91
 AliAnalysisTaskZDCTreeMaker.cxx:92
 AliAnalysisTaskZDCTreeMaker.cxx:93
 AliAnalysisTaskZDCTreeMaker.cxx:94
 AliAnalysisTaskZDCTreeMaker.cxx:95
 AliAnalysisTaskZDCTreeMaker.cxx:96
 AliAnalysisTaskZDCTreeMaker.cxx:97
 AliAnalysisTaskZDCTreeMaker.cxx:98
 AliAnalysisTaskZDCTreeMaker.cxx:99
 AliAnalysisTaskZDCTreeMaker.cxx:100
 AliAnalysisTaskZDCTreeMaker.cxx:101
 AliAnalysisTaskZDCTreeMaker.cxx:102
 AliAnalysisTaskZDCTreeMaker.cxx:103
 AliAnalysisTaskZDCTreeMaker.cxx:104
 AliAnalysisTaskZDCTreeMaker.cxx:105
 AliAnalysisTaskZDCTreeMaker.cxx:106
 AliAnalysisTaskZDCTreeMaker.cxx:107
 AliAnalysisTaskZDCTreeMaker.cxx:108
 AliAnalysisTaskZDCTreeMaker.cxx:109
 AliAnalysisTaskZDCTreeMaker.cxx:110
 AliAnalysisTaskZDCTreeMaker.cxx:111
 AliAnalysisTaskZDCTreeMaker.cxx:112
 AliAnalysisTaskZDCTreeMaker.cxx:113
 AliAnalysisTaskZDCTreeMaker.cxx:114
 AliAnalysisTaskZDCTreeMaker.cxx:115
 AliAnalysisTaskZDCTreeMaker.cxx:116
 AliAnalysisTaskZDCTreeMaker.cxx:117
 AliAnalysisTaskZDCTreeMaker.cxx:118
 AliAnalysisTaskZDCTreeMaker.cxx:119
 AliAnalysisTaskZDCTreeMaker.cxx:120
 AliAnalysisTaskZDCTreeMaker.cxx:121
 AliAnalysisTaskZDCTreeMaker.cxx:122
 AliAnalysisTaskZDCTreeMaker.cxx:123
 AliAnalysisTaskZDCTreeMaker.cxx:124
 AliAnalysisTaskZDCTreeMaker.cxx:125
 AliAnalysisTaskZDCTreeMaker.cxx:126
 AliAnalysisTaskZDCTreeMaker.cxx:127
 AliAnalysisTaskZDCTreeMaker.cxx:128
 AliAnalysisTaskZDCTreeMaker.cxx:129
 AliAnalysisTaskZDCTreeMaker.cxx:130
 AliAnalysisTaskZDCTreeMaker.cxx:131
 AliAnalysisTaskZDCTreeMaker.cxx:132
 AliAnalysisTaskZDCTreeMaker.cxx:133
 AliAnalysisTaskZDCTreeMaker.cxx:134
 AliAnalysisTaskZDCTreeMaker.cxx:135
 AliAnalysisTaskZDCTreeMaker.cxx:136
 AliAnalysisTaskZDCTreeMaker.cxx:137
 AliAnalysisTaskZDCTreeMaker.cxx:138
 AliAnalysisTaskZDCTreeMaker.cxx:139
 AliAnalysisTaskZDCTreeMaker.cxx:140
 AliAnalysisTaskZDCTreeMaker.cxx:141
 AliAnalysisTaskZDCTreeMaker.cxx:142
 AliAnalysisTaskZDCTreeMaker.cxx:143
 AliAnalysisTaskZDCTreeMaker.cxx:144
 AliAnalysisTaskZDCTreeMaker.cxx:145
 AliAnalysisTaskZDCTreeMaker.cxx:146
 AliAnalysisTaskZDCTreeMaker.cxx:147
 AliAnalysisTaskZDCTreeMaker.cxx:148
 AliAnalysisTaskZDCTreeMaker.cxx:149
 AliAnalysisTaskZDCTreeMaker.cxx:150
 AliAnalysisTaskZDCTreeMaker.cxx:151
 AliAnalysisTaskZDCTreeMaker.cxx:152
 AliAnalysisTaskZDCTreeMaker.cxx:153
 AliAnalysisTaskZDCTreeMaker.cxx:154
 AliAnalysisTaskZDCTreeMaker.cxx:155
 AliAnalysisTaskZDCTreeMaker.cxx:156
 AliAnalysisTaskZDCTreeMaker.cxx:157
 AliAnalysisTaskZDCTreeMaker.cxx:158
 AliAnalysisTaskZDCTreeMaker.cxx:159
 AliAnalysisTaskZDCTreeMaker.cxx:160
 AliAnalysisTaskZDCTreeMaker.cxx:161
 AliAnalysisTaskZDCTreeMaker.cxx:162
 AliAnalysisTaskZDCTreeMaker.cxx:163
 AliAnalysisTaskZDCTreeMaker.cxx:164
 AliAnalysisTaskZDCTreeMaker.cxx:165
 AliAnalysisTaskZDCTreeMaker.cxx:166
 AliAnalysisTaskZDCTreeMaker.cxx:167
 AliAnalysisTaskZDCTreeMaker.cxx:168
 AliAnalysisTaskZDCTreeMaker.cxx:169
 AliAnalysisTaskZDCTreeMaker.cxx:170
 AliAnalysisTaskZDCTreeMaker.cxx:171
 AliAnalysisTaskZDCTreeMaker.cxx:172
 AliAnalysisTaskZDCTreeMaker.cxx:173
 AliAnalysisTaskZDCTreeMaker.cxx:174
 AliAnalysisTaskZDCTreeMaker.cxx:175
 AliAnalysisTaskZDCTreeMaker.cxx:176
 AliAnalysisTaskZDCTreeMaker.cxx:177
 AliAnalysisTaskZDCTreeMaker.cxx:178
 AliAnalysisTaskZDCTreeMaker.cxx:179
 AliAnalysisTaskZDCTreeMaker.cxx:180
 AliAnalysisTaskZDCTreeMaker.cxx:181
 AliAnalysisTaskZDCTreeMaker.cxx:182
 AliAnalysisTaskZDCTreeMaker.cxx:183
 AliAnalysisTaskZDCTreeMaker.cxx:184
 AliAnalysisTaskZDCTreeMaker.cxx:185
 AliAnalysisTaskZDCTreeMaker.cxx:186
 AliAnalysisTaskZDCTreeMaker.cxx:187
 AliAnalysisTaskZDCTreeMaker.cxx:188
 AliAnalysisTaskZDCTreeMaker.cxx:189
 AliAnalysisTaskZDCTreeMaker.cxx:190
 AliAnalysisTaskZDCTreeMaker.cxx:191
 AliAnalysisTaskZDCTreeMaker.cxx:192
 AliAnalysisTaskZDCTreeMaker.cxx:193
 AliAnalysisTaskZDCTreeMaker.cxx:194
 AliAnalysisTaskZDCTreeMaker.cxx:195
 AliAnalysisTaskZDCTreeMaker.cxx:196
 AliAnalysisTaskZDCTreeMaker.cxx:197
 AliAnalysisTaskZDCTreeMaker.cxx:198
 AliAnalysisTaskZDCTreeMaker.cxx:199
 AliAnalysisTaskZDCTreeMaker.cxx:200
 AliAnalysisTaskZDCTreeMaker.cxx:201
 AliAnalysisTaskZDCTreeMaker.cxx:202
 AliAnalysisTaskZDCTreeMaker.cxx:203
 AliAnalysisTaskZDCTreeMaker.cxx:204
 AliAnalysisTaskZDCTreeMaker.cxx:205
 AliAnalysisTaskZDCTreeMaker.cxx:206
 AliAnalysisTaskZDCTreeMaker.cxx:207
 AliAnalysisTaskZDCTreeMaker.cxx:208
 AliAnalysisTaskZDCTreeMaker.cxx:209
 AliAnalysisTaskZDCTreeMaker.cxx:210
 AliAnalysisTaskZDCTreeMaker.cxx:211
 AliAnalysisTaskZDCTreeMaker.cxx:212
 AliAnalysisTaskZDCTreeMaker.cxx:213
 AliAnalysisTaskZDCTreeMaker.cxx:214
 AliAnalysisTaskZDCTreeMaker.cxx:215
 AliAnalysisTaskZDCTreeMaker.cxx:216
 AliAnalysisTaskZDCTreeMaker.cxx:217
 AliAnalysisTaskZDCTreeMaker.cxx:218
 AliAnalysisTaskZDCTreeMaker.cxx:219
 AliAnalysisTaskZDCTreeMaker.cxx:220
 AliAnalysisTaskZDCTreeMaker.cxx:221
 AliAnalysisTaskZDCTreeMaker.cxx:222
 AliAnalysisTaskZDCTreeMaker.cxx:223
 AliAnalysisTaskZDCTreeMaker.cxx:224
 AliAnalysisTaskZDCTreeMaker.cxx:225
 AliAnalysisTaskZDCTreeMaker.cxx:226
 AliAnalysisTaskZDCTreeMaker.cxx:227
 AliAnalysisTaskZDCTreeMaker.cxx:228
 AliAnalysisTaskZDCTreeMaker.cxx:229
 AliAnalysisTaskZDCTreeMaker.cxx:230
 AliAnalysisTaskZDCTreeMaker.cxx:231
 AliAnalysisTaskZDCTreeMaker.cxx:232
 AliAnalysisTaskZDCTreeMaker.cxx:233
 AliAnalysisTaskZDCTreeMaker.cxx:234
 AliAnalysisTaskZDCTreeMaker.cxx:235
 AliAnalysisTaskZDCTreeMaker.cxx:236
 AliAnalysisTaskZDCTreeMaker.cxx:237
 AliAnalysisTaskZDCTreeMaker.cxx:238
 AliAnalysisTaskZDCTreeMaker.cxx:239
 AliAnalysisTaskZDCTreeMaker.cxx:240
 AliAnalysisTaskZDCTreeMaker.cxx:241
 AliAnalysisTaskZDCTreeMaker.cxx:242
 AliAnalysisTaskZDCTreeMaker.cxx:243
 AliAnalysisTaskZDCTreeMaker.cxx:244
 AliAnalysisTaskZDCTreeMaker.cxx:245
 AliAnalysisTaskZDCTreeMaker.cxx:246
 AliAnalysisTaskZDCTreeMaker.cxx:247
 AliAnalysisTaskZDCTreeMaker.cxx:248
 AliAnalysisTaskZDCTreeMaker.cxx:249
 AliAnalysisTaskZDCTreeMaker.cxx:250
 AliAnalysisTaskZDCTreeMaker.cxx:251
 AliAnalysisTaskZDCTreeMaker.cxx:252
 AliAnalysisTaskZDCTreeMaker.cxx:253
 AliAnalysisTaskZDCTreeMaker.cxx:254
 AliAnalysisTaskZDCTreeMaker.cxx:255
 AliAnalysisTaskZDCTreeMaker.cxx:256
 AliAnalysisTaskZDCTreeMaker.cxx:257
 AliAnalysisTaskZDCTreeMaker.cxx:258
 AliAnalysisTaskZDCTreeMaker.cxx:259
 AliAnalysisTaskZDCTreeMaker.cxx:260
 AliAnalysisTaskZDCTreeMaker.cxx:261
 AliAnalysisTaskZDCTreeMaker.cxx:262
 AliAnalysisTaskZDCTreeMaker.cxx:263
 AliAnalysisTaskZDCTreeMaker.cxx:264
 AliAnalysisTaskZDCTreeMaker.cxx:265
 AliAnalysisTaskZDCTreeMaker.cxx:266
 AliAnalysisTaskZDCTreeMaker.cxx:267
 AliAnalysisTaskZDCTreeMaker.cxx:268
 AliAnalysisTaskZDCTreeMaker.cxx:269
 AliAnalysisTaskZDCTreeMaker.cxx:270
 AliAnalysisTaskZDCTreeMaker.cxx:271
 AliAnalysisTaskZDCTreeMaker.cxx:272
 AliAnalysisTaskZDCTreeMaker.cxx:273
 AliAnalysisTaskZDCTreeMaker.cxx:274
 AliAnalysisTaskZDCTreeMaker.cxx:275
 AliAnalysisTaskZDCTreeMaker.cxx:276
 AliAnalysisTaskZDCTreeMaker.cxx:277
 AliAnalysisTaskZDCTreeMaker.cxx:278
 AliAnalysisTaskZDCTreeMaker.cxx:279
 AliAnalysisTaskZDCTreeMaker.cxx:280
 AliAnalysisTaskZDCTreeMaker.cxx:281
 AliAnalysisTaskZDCTreeMaker.cxx:282
 AliAnalysisTaskZDCTreeMaker.cxx:283
 AliAnalysisTaskZDCTreeMaker.cxx:284
 AliAnalysisTaskZDCTreeMaker.cxx:285
 AliAnalysisTaskZDCTreeMaker.cxx:286
 AliAnalysisTaskZDCTreeMaker.cxx:287
 AliAnalysisTaskZDCTreeMaker.cxx:288
 AliAnalysisTaskZDCTreeMaker.cxx:289
 AliAnalysisTaskZDCTreeMaker.cxx:290
 AliAnalysisTaskZDCTreeMaker.cxx:291
 AliAnalysisTaskZDCTreeMaker.cxx:292
 AliAnalysisTaskZDCTreeMaker.cxx:293
 AliAnalysisTaskZDCTreeMaker.cxx:294
 AliAnalysisTaskZDCTreeMaker.cxx:295
 AliAnalysisTaskZDCTreeMaker.cxx:296
 AliAnalysisTaskZDCTreeMaker.cxx:297
 AliAnalysisTaskZDCTreeMaker.cxx:298
 AliAnalysisTaskZDCTreeMaker.cxx:299
 AliAnalysisTaskZDCTreeMaker.cxx:300
 AliAnalysisTaskZDCTreeMaker.cxx:301
 AliAnalysisTaskZDCTreeMaker.cxx:302
 AliAnalysisTaskZDCTreeMaker.cxx:303
 AliAnalysisTaskZDCTreeMaker.cxx:304
 AliAnalysisTaskZDCTreeMaker.cxx:305
 AliAnalysisTaskZDCTreeMaker.cxx:306
 AliAnalysisTaskZDCTreeMaker.cxx:307
 AliAnalysisTaskZDCTreeMaker.cxx:308
 AliAnalysisTaskZDCTreeMaker.cxx:309
 AliAnalysisTaskZDCTreeMaker.cxx:310
 AliAnalysisTaskZDCTreeMaker.cxx:311
 AliAnalysisTaskZDCTreeMaker.cxx:312
 AliAnalysisTaskZDCTreeMaker.cxx:313
 AliAnalysisTaskZDCTreeMaker.cxx:314
 AliAnalysisTaskZDCTreeMaker.cxx:315
 AliAnalysisTaskZDCTreeMaker.cxx:316
 AliAnalysisTaskZDCTreeMaker.cxx:317
 AliAnalysisTaskZDCTreeMaker.cxx:318
 AliAnalysisTaskZDCTreeMaker.cxx:319
 AliAnalysisTaskZDCTreeMaker.cxx:320
 AliAnalysisTaskZDCTreeMaker.cxx:321
 AliAnalysisTaskZDCTreeMaker.cxx:322
 AliAnalysisTaskZDCTreeMaker.cxx:323
 AliAnalysisTaskZDCTreeMaker.cxx:324
 AliAnalysisTaskZDCTreeMaker.cxx:325
 AliAnalysisTaskZDCTreeMaker.cxx:326
 AliAnalysisTaskZDCTreeMaker.cxx:327
 AliAnalysisTaskZDCTreeMaker.cxx:328
 AliAnalysisTaskZDCTreeMaker.cxx:329
 AliAnalysisTaskZDCTreeMaker.cxx:330
 AliAnalysisTaskZDCTreeMaker.cxx:331
 AliAnalysisTaskZDCTreeMaker.cxx:332
 AliAnalysisTaskZDCTreeMaker.cxx:333
 AliAnalysisTaskZDCTreeMaker.cxx:334
 AliAnalysisTaskZDCTreeMaker.cxx:335
 AliAnalysisTaskZDCTreeMaker.cxx:336
 AliAnalysisTaskZDCTreeMaker.cxx:337
 AliAnalysisTaskZDCTreeMaker.cxx:338
 AliAnalysisTaskZDCTreeMaker.cxx:339
 AliAnalysisTaskZDCTreeMaker.cxx:340
 AliAnalysisTaskZDCTreeMaker.cxx:341
 AliAnalysisTaskZDCTreeMaker.cxx:342
 AliAnalysisTaskZDCTreeMaker.cxx:343
 AliAnalysisTaskZDCTreeMaker.cxx:344
 AliAnalysisTaskZDCTreeMaker.cxx:345
 AliAnalysisTaskZDCTreeMaker.cxx:346
 AliAnalysisTaskZDCTreeMaker.cxx:347
 AliAnalysisTaskZDCTreeMaker.cxx:348
 AliAnalysisTaskZDCTreeMaker.cxx:349
 AliAnalysisTaskZDCTreeMaker.cxx:350
 AliAnalysisTaskZDCTreeMaker.cxx:351
 AliAnalysisTaskZDCTreeMaker.cxx:352
 AliAnalysisTaskZDCTreeMaker.cxx:353
 AliAnalysisTaskZDCTreeMaker.cxx:354
 AliAnalysisTaskZDCTreeMaker.cxx:355
 AliAnalysisTaskZDCTreeMaker.cxx:356
 AliAnalysisTaskZDCTreeMaker.cxx:357
 AliAnalysisTaskZDCTreeMaker.cxx:358
 AliAnalysisTaskZDCTreeMaker.cxx:359
 AliAnalysisTaskZDCTreeMaker.cxx:360
 AliAnalysisTaskZDCTreeMaker.cxx:361
 AliAnalysisTaskZDCTreeMaker.cxx:362
 AliAnalysisTaskZDCTreeMaker.cxx:363
 AliAnalysisTaskZDCTreeMaker.cxx:364
 AliAnalysisTaskZDCTreeMaker.cxx:365
 AliAnalysisTaskZDCTreeMaker.cxx:366
 AliAnalysisTaskZDCTreeMaker.cxx:367
 AliAnalysisTaskZDCTreeMaker.cxx:368
 AliAnalysisTaskZDCTreeMaker.cxx:369
 AliAnalysisTaskZDCTreeMaker.cxx:370
 AliAnalysisTaskZDCTreeMaker.cxx:371
 AliAnalysisTaskZDCTreeMaker.cxx:372
 AliAnalysisTaskZDCTreeMaker.cxx:373
 AliAnalysisTaskZDCTreeMaker.cxx:374
 AliAnalysisTaskZDCTreeMaker.cxx:375
 AliAnalysisTaskZDCTreeMaker.cxx:376
 AliAnalysisTaskZDCTreeMaker.cxx:377
 AliAnalysisTaskZDCTreeMaker.cxx:378
 AliAnalysisTaskZDCTreeMaker.cxx:379
 AliAnalysisTaskZDCTreeMaker.cxx:380
 AliAnalysisTaskZDCTreeMaker.cxx:381
 AliAnalysisTaskZDCTreeMaker.cxx:382
 AliAnalysisTaskZDCTreeMaker.cxx:383
 AliAnalysisTaskZDCTreeMaker.cxx:384
 AliAnalysisTaskZDCTreeMaker.cxx:385
 AliAnalysisTaskZDCTreeMaker.cxx:386
 AliAnalysisTaskZDCTreeMaker.cxx:387
 AliAnalysisTaskZDCTreeMaker.cxx:388
 AliAnalysisTaskZDCTreeMaker.cxx:389
 AliAnalysisTaskZDCTreeMaker.cxx:390
 AliAnalysisTaskZDCTreeMaker.cxx:391
 AliAnalysisTaskZDCTreeMaker.cxx:392
 AliAnalysisTaskZDCTreeMaker.cxx:393
 AliAnalysisTaskZDCTreeMaker.cxx:394
 AliAnalysisTaskZDCTreeMaker.cxx:395
 AliAnalysisTaskZDCTreeMaker.cxx:396
 AliAnalysisTaskZDCTreeMaker.cxx:397