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 centrality measurements           //
//							   //
/////////////////////////////////////////////////////////////

#include <TTree.h>
#include <TList.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TProfile.h>
#include <TFile.h>
#include <TString.h>
#include <TCanvas.h>

#include "AliAnalysisManager.h"
#include "AliVEvent.h"
#include "AliESD.h"
#include "AliESDEvent.h"
#include "AliESDHeader.h"
#include "AliESDInputHandler.h"
#include "AliESDZDC.h"
#include "AliESDFMD.h"
#include "AliESDVZERO.h"
#include "AliMultiplicity.h"
#include "AliAODHandler.h"
#include "AliAODEvent.h"
#include "AliAODVertex.h"
#include "AliAODMCHeader.h"
#include "AliMCEvent.h"
#include "AliMCEventHandler.h"
#include "AliMCParticle.h"
#include "AliStack.h"
#include "AliHeader.h"
#include "AliAODMCParticle.h"
#include "AliAnalysisTaskSE.h"
#include "AliGenEventHeader.h"
#include "AliGenHijingEventHeader.h"
#include "AliPhysicsSelectionTask.h"
#include "AliPhysicsSelection.h"
#include "AliBackgroundSelection.h"
#include "AliAnalysisTaskCentrality.h"

ClassImp(AliAnalysisTaskCentrality)


//________________________________________________________________________
AliAnalysisTaskCentrality::AliAnalysisTaskCentrality():
  AliAnalysisTaskSE(),
  fDebug(0),
  fAnalysisInput("ESD"),
  fIsMCInput(kFALSE),
  fOutput(0x0),
  fhEzdc(0x0),
  fhEzem(0x0),
  fhNtracks(0x0),
  fhNtracklets(0x0),
  fhNclusters0(0x0),
  fhmultV0(0x0),
  fhmultFMD(0x0),
  fhEzemvsEzdc(0x0),
  fhNtracksvsEzdc(0x0),
  fhNtrackletsvsEzdc(0x0),
  fhNclusters0vsEzdc(0x0),
  fhmultV0vsEzdc(0x0),
  fhmultFMDvsEzdc(0x0),
  fhNtracksvsEzem(0x0),
  fhNtrackletsvsEzem(0x0),
  fhNclusters0vsEzem(0x0),
  fhmultV0vsEzem(0x0),
  fhmultFMDvsEzem(0x0),
  fhNtracksvsmultV0(0x0),
  fhNtrackletsvsmultV0(0x0),
  fhNclusters0vsmultV0(0x0),
  fhNtracksvsmultFMD(0x0),
  fhNtrackletsvsmultFMD(0x0),
  fhNclusters0vsmultFMD(0x0),
  fhmultV0vsmultFMD(0x0),
  fNev(0),	
  fBeamEnergy(0),	
  fNmyTracksgen(0),
  fTrigClass(),
  fxVertex(0),	
  fyVertex(0),	
  fzVertex(0),	
  fVertexer3d(0),	
  fbMC(0),	
  fNpartTargMC(0),
  fNpartProjMC(0),
  fNNColl(0),     
  fNNwColl(0),    
  fNwNColl(0),    
  fNwNwColl(0),   
  fNTracklets(0),	
  fNSingleClusters(0),
  fNClusters(),
  fNChips(),
  fbZDC(0),
  fNpartZDC(0),
  fbZDCA(0),
  fNpartZDCA(0),
  fbZDCC(0),
  fNpartZDCC(0),
  fESDFlag(0),
  fZNCEnergy(0),
  fZPCEnergy(0),
  fZNAEnergy(0),
  fZPAEnergy(0),
  fZEM1Energy(0),
  fZEM2Energy(0),
  fZNCtower(),
  fZPCtower(),
  fZNAtower(),
  fZPAtower(),
  fCentrZNC(),
  fCentrZNA(),
  fNTracks(0),
  fNPmdTracks(0),
  fMultV0A(0),
  fMultV0C(0),
  fMultFMDA(0),
  fMultFMDC(0)
{   
   // Default constructor
}   

//________________________________________________________________________
AliAnalysisTaskCentrality::AliAnalysisTaskCentrality(const char *name):
  AliAnalysisTaskSE(name),
  fDebug(0),
  fAnalysisInput("ESD"),
  fIsMCInput(kFALSE),
  fOutput(0x0),
  fhEzdc(0x0),
  fhEzem(0x0),
  fhNtracks(0x0),
  fhNtracklets(0x0),
  fhNclusters0(0x0),
  fhmultV0(0x0),
  fhmultFMD(0x0),
  fhEzemvsEzdc(0x0),
  fhNtracksvsEzdc(0x0),
  fhNtrackletsvsEzdc(0x0),
  fhNclusters0vsEzdc(0x0),
  fhmultV0vsEzdc(0x0),
  fhmultFMDvsEzdc(0x0),
  fhNtracksvsEzem(0x0),
  fhNtrackletsvsEzem(0x0),
  fhNclusters0vsEzem(0x0),
  fhmultV0vsEzem(0x0),
  fhmultFMDvsEzem(0x0),
  fhNtracksvsmultV0(0x0),
  fhNtrackletsvsmultV0(0x0),
  fhNclusters0vsmultV0(0x0),
  fhNtracksvsmultFMD(0x0),
  fhNtrackletsvsmultFMD(0x0),
  fhNclusters0vsmultFMD(0x0),
  fhmultV0vsmultFMD(0x0),
  fNev(0),	
  fBeamEnergy(0),	
  fNmyTracksgen(0),
  fTrigClass(),
  fxVertex(0),	
  fyVertex(0),	
  fzVertex(0),	
  fVertexer3d(0),	
  fbMC(0),	
  fNpartTargMC(0),
  fNpartProjMC(0),
  fNNColl(0),     
  fNNwColl(0),    
  fNwNColl(0),    
  fNwNwColl(0),   
  fNTracklets(0),	
  fNSingleClusters(0),
  fNClusters(),
  fNChips(),
  fbZDC(0),
  fNpartZDC(0),
  fbZDCA(0),
  fNpartZDCA(0),
  fbZDCC(0),
  fNpartZDCC(0),
  fESDFlag(0),
  fZNCEnergy(0),
  fZPCEnergy(0),
  fZNAEnergy(0),
  fZPAEnergy(0),
  fZEM1Energy(0),
  fZEM2Energy(0),
  fZNCtower(),
  fZPCtower(),
  fZNAtower(),
  fZPAtower(),
  fCentrZNC(),
  fCentrZNA(),
  fNTracks(0),
  fNPmdTracks(0),
  fMultV0A(0),
  fMultV0C(0),
  fMultFMDA(0),
  fMultFMDC(0)
{
  // Default constructor
  
  // Output slot #1 writes into a TList container
  DefineOutput(1, TList::Class()); 

}

//________________________________________________________________________
AliAnalysisTaskCentrality& AliAnalysisTaskCentrality::operator=(const AliAnalysisTaskCentrality& c)
{
  //
  // Assignment operator
  //
  if (this!=&c) {
    AliAnalysisTaskSE::operator=(c);
  }
  return *this;
}

//________________________________________________________________________
AliAnalysisTaskCentrality::AliAnalysisTaskCentrality(const AliAnalysisTaskCentrality& ana):
  AliAnalysisTaskSE(ana),
  fDebug(ana.fDebug),	  
  fAnalysisInput(ana.fDebug),
  fIsMCInput(ana.fIsMCInput),
  fOutput(ana.fOutput),
  fhEzdc(ana.fhEzdc),
  fhEzem(ana.fhEzem),
  fhNtracks(ana.fhNtracks),
  fhNtracklets(ana.fhNtracklets),
  fhNclusters0(ana.fhNclusters0),
  fhmultV0(ana.fhmultV0),
  fhmultFMD(ana.fhmultFMD),
  fhEzemvsEzdc(ana.fhEzemvsEzdc),
  fhNtracksvsEzdc(ana.fhNtracksvsEzdc),
  fhNtrackletsvsEzdc(ana.fhNtrackletsvsEzdc),
  fhNclusters0vsEzdc(ana.fhNclusters0vsEzdc),
  fhmultV0vsEzdc(ana.fhmultV0vsEzdc),
  fhmultFMDvsEzdc(ana.fhmultFMDvsEzdc),
  fhNtracksvsEzem(ana.fhNtracksvsEzem),
  fhNtrackletsvsEzem(ana.fhNtrackletsvsEzem),
  fhNclusters0vsEzem(ana.fhNclusters0vsEzem),
  fhmultV0vsEzem(ana.fhmultV0vsEzem),
  fhmultFMDvsEzem(ana.fhmultFMDvsEzem),
  fhNtracksvsmultV0(ana.fhNtracksvsmultV0),
  fhNtrackletsvsmultV0(ana.fhNtrackletsvsmultV0),
  fhNclusters0vsmultV0(ana.fhNclusters0vsmultV0),
  fhNtracksvsmultFMD(ana.fhNtracksvsmultFMD),
  fhNtrackletsvsmultFMD(ana.fhNtrackletsvsmultFMD),
  fhNclusters0vsmultFMD(ana.fhNclusters0vsmultFMD),
  fhmultV0vsmultFMD(ana.fhmultV0vsmultFMD),
  fNev(ana.fNev),	
  fBeamEnergy(ana.fBeamEnergy),	
  fNmyTracksgen(ana.fNmyTracksgen),
  fxVertex(ana.fxVertex),	
  fyVertex(ana.fyVertex),	
  fzVertex(ana.fzVertex),	
  fVertexer3d(ana.fVertexer3d),	
  fbMC(ana.fbMC),	
  fNpartTargMC(ana.fNpartTargMC),
  fNpartProjMC(ana.fNpartProjMC),
  fNNColl(ana.fNNColl),     
  fNNwColl(ana.fNNwColl),    
  fNwNColl(ana.fNwNColl),    
  fNwNwColl(ana.fNwNwColl),   
  fNTracklets(ana.fNTracklets),	
  fNSingleClusters(ana.fNSingleClusters),
  fbZDC(ana.fbZDC),
  fNpartZDC(ana.fNpartZDC),
  fbZDCA(ana.fbZDCA),
  fNpartZDCA(ana.fNpartZDCA),
  fbZDCC(ana.fbZDCC),
  fNpartZDCC(ana.fNpartZDCC),
  fESDFlag(ana.fESDFlag),
  fZNCEnergy(ana.fZNCEnergy),
  fZPCEnergy(ana.fZPCEnergy),
  fZNAEnergy(ana.fZNAEnergy),
  fZPAEnergy(ana.fZPAEnergy),
  fZEM1Energy(ana.fZEM1Energy),
  fZEM2Energy(ana.fZEM2Energy),
  fZNCtower(),
  fZPCtower(),
  fZNAtower(),
  fZPAtower(),
  fCentrZNC(),
  fCentrZNA(),
  fNTracks(ana.fNTracks),
  fNPmdTracks(ana.fNPmdTracks),
  fMultV0A(ana.fMultV0A),
  fMultV0C(ana.fMultV0C),
  fMultFMDA(ana.fMultFMDA),
  fMultFMDC(ana.fMultFMDC)
{
  //
  // Copy Constructor	
  //

  for (Int_t i=0; i<5; ++i) {
    fZNCtower[i] = ana.fZNCtower[i];
    fZPCtower[i] = ana.fZPCtower[i];
    fZNAtower[i] = ana.fZNAtower[i];
    fZPAtower[i] = ana.fZPAtower[i];
  }
  for (Int_t i=0; i<2; ++i) {
    fCentrZNC[i] = ana.fCentrZNC[i];
    fCentrZNA[i] = ana.fCentrZNA[i];
  }
}
 
//________________________________________________________________________
 AliAnalysisTaskCentrality::~AliAnalysisTaskCentrality()
 {
   // Destructor
   if(fOutput){
     delete fOutput; fOutput=0;
   } 
 }  

//________________________________________________________________________
void AliAnalysisTaskCentrality::UserCreateOutputObjects()
{  

  // Create the output containers
  if(fDebug>1) printf("AnalysisTaskZDCpp::UserCreateOutputObjects() \n");

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

  fhEzdc         = new TH1F("hEzdc","hEzdc",500,0,150);
  fhEzem         = new TH1F("hEzem","hEzem",500,0,5);
  fhNtracks      = new TH1F("hNtracks","hNtracks",500,0,17000);
  fhNtracklets   = new TH1F("hNtracklets","hNtracklets",500,0,10000);
  fhNclusters0   = new TH1F("hNclusters0","hNclusters0",500,0,15000);
  fhmultV0       = new TH1F("hmultV0","hmultV0",500,0,30000);
  fhmultFMD      = new TH1F("hmultFMD","hmultFMD",500,0,24000);

  fhEzemvsEzdc         = new TProfile("hEzemvsEzdc","hEzemvsEzdc",500,0,5,"");
  fhNtracksvsEzdc      = new TProfile("hNtracksvsEzdc","hNtracksvsEzdc",500,0,17000,"");
  fhNtrackletsvsEzdc   = new TProfile("hNtrackletsvsEzdc","hNtrackletsvsEzdc",500,0,10000,"");
  fhNclusters0vsEzdc   = new TProfile("hNclusters0vsEzdc","hNclusters0vsEzdc",500,0,15000,"");
  fhmultV0vsEzdc       = new TProfile("hmultV0vsEzdc","hmultV0vsEzdc",500,0,30000,"");
  fhmultFMDvsEzdc      = new TProfile("hmultFMDvsEzdc","hmultFMDvsEzdc",500,0,24000,"");
  fhNtracksvsEzem      = new TProfile("hNtracksvsEzem","hNtracksvsEzem",500,0,17000,"");
  fhNtrackletsvsEzem   = new TProfile("hNtrackletsvsEzem","hNtrackletsvsEzem",500,0,10000,"");
  fhNclusters0vsEzem   = new TProfile("hNclusters0vsEzem","hNclusters0vsEzem",500,0,15000,"");
  fhmultV0vsEzem       = new TProfile("hmultV0vsEzem","hmultV0vsEzem",500,0,30000,"");
  fhmultFMDvsEzem      = new TProfile("hmultFMDvsEzem","hmultFMDvsEzem",500,0,24000,"");
  fhNtracksvsmultV0    = new TProfile("hNtracksvsmultV0","hNtracksvsmultV0",500,0,17000,"");      
  fhNtrackletsvsmultV0 = new TProfile("hNtrackletsvsmultV0","hNtrackletsvsmultV0",500,0,10000,"");    
  fhNclusters0vsmultV0 = new TProfile("hNclusters0vsmultV0","hNclusters0vsmultV0",500,0,15000,"");
  fhNtracksvsmultFMD   = new TProfile("hNtracksvsmultFMD","hNtracksvsmultFMD",500,0,17000,"");
  fhNtrackletsvsmultFMD= new TProfile("hNtrackletsvsmultFMD","hNtrackletsvsmultFMD",500,0,10000,"");
  fhNclusters0vsmultFMD= new TProfile("hNclusters0vsmultFMD","hNclusters0vsmultFMD",500,0,15000,"");		   
  fhmultV0vsmultFMD    = new TProfile("hmultV0vsmultFMD","hmultV0vsmultFMD",500,0,30000,"");

  fhEzdc         ->GetXaxis()->SetTitle("E_{ZDC}[TeV]");
  fhEzem         ->GetXaxis()->SetTitle("E_{ZEM}[TeV]");
  fhNtracks      ->GetXaxis()->SetTitle("N_{tracks}");
  fhNtracklets   ->GetXaxis()->SetTitle("N_{tracklets}");
  fhNclusters0   ->GetXaxis()->SetTitle("N_{clusters0}");
  fhmultV0       ->GetXaxis()->SetTitle("V0 mult");
  fhmultFMD      ->GetXaxis()->SetTitle("FMD mult");
  
  fhEzemvsEzdc         ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
  fhNtracksvsEzdc      ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
  fhNtrackletsvsEzdc   ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
  fhNclusters0vsEzdc   ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
  fhmultV0vsEzdc       ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
  fhmultFMDvsEzdc      ->GetYaxis()->SetTitle("E_{ZDC}[TeV]");
  fhNtracksvsEzem      ->GetYaxis()->SetTitle("E_{ZEM}[TeV]");
  fhNtrackletsvsEzem   ->GetYaxis()->SetTitle("E_{ZEM}[TeV]");
  fhNclusters0vsEzem   ->GetYaxis()->SetTitle("E_{ZEM}[TeV]");
  fhmultV0vsEzem       ->GetYaxis()->SetTitle("E_{ZEM}[TeV]");
  fhmultFMDvsEzem      ->GetYaxis()->SetTitle("E_{ZEM}[TeV]");
  fhNtracksvsmultV0    ->GetYaxis()->SetTitle("V0 mult");    
  fhNtrackletsvsmultV0 ->GetYaxis()->SetTitle("V0 mult");  
  fhNclusters0vsmultV0 ->GetYaxis()->SetTitle("V0 mult");
  fhNtracksvsmultFMD   ->GetYaxis()->SetTitle("FMD mult");
  fhNtrackletsvsmultFMD->GetYaxis()->SetTitle("FMD mult");
  fhNclusters0vsmultFMD->GetYaxis()->SetTitle("FMD mult");
  fhmultV0vsmultFMD    ->GetYaxis()->SetTitle("FMD mult");
  
  fhEzemvsEzdc         ->GetXaxis()->SetTitle("E_{ZEM}[TeV]");
  fhNtracksvsEzdc      ->GetXaxis()->SetTitle("N_{tracks}");
  fhNtrackletsvsEzdc   ->GetXaxis()->SetTitle("N_{tracklets}");
  fhNclusters0vsEzdc   ->GetXaxis()->SetTitle("N_{clusters0}");
  fhmultV0vsEzdc       ->GetXaxis()->SetTitle("V0 mult");
  fhmultFMDvsEzdc      ->GetXaxis()->SetTitle("FMD mult");
  fhNtracksvsEzem      ->GetXaxis()->SetTitle("N_{tracks}");
  fhNtrackletsvsEzem   ->GetXaxis()->SetTitle("N_{tracklets}");
  fhNclusters0vsEzem   ->GetXaxis()->SetTitle("N_{clusters0}");
  fhmultV0vsEzem       ->GetXaxis()->SetTitle("V0 mult");
  fhmultFMDvsEzem      ->GetXaxis()->SetTitle("FMD mult");
  fhNtracksvsmultV0    ->GetXaxis()->SetTitle("N_{tracks}");    
  fhNtrackletsvsmultV0 ->GetXaxis()->SetTitle("N_{tracklets}");  
  fhNclusters0vsmultV0 ->GetXaxis()->SetTitle("N_{clusters0}");
  fhNtracksvsmultFMD   ->GetXaxis()->SetTitle("N_{tracks}");
  fhNtrackletsvsmultFMD->GetXaxis()->SetTitle("N_{tracklets}");
  fhNclusters0vsmultFMD->GetXaxis()->SetTitle("N_{clusters}");
  fhmultV0vsmultFMD    ->GetXaxis()->SetTitle("V0 mult");
  
  fOutput->Add(fhEzdc);
  fOutput->Add(fhEzem);
  fOutput->Add(fhNtracks);
  fOutput->Add(fhNtracklets);
  fOutput->Add(fhNclusters0);
  fOutput->Add(fhmultV0);
  fOutput->Add(fhmultFMD);

  fOutput->Add(fhEzemvsEzdc);
  fOutput->Add(fhNtracksvsEzdc);
  fOutput->Add(fhNtrackletsvsEzdc);
  fOutput->Add(fhNclusters0vsEzdc);
  fOutput->Add(fhmultV0vsEzdc);
  fOutput->Add(fhmultFMDvsEzdc);
  fOutput->Add(fhNtracksvsEzem);
  fOutput->Add(fhNtrackletsvsEzem);
  fOutput->Add(fhNclusters0vsEzem);
  fOutput->Add(fhmultV0vsEzem);
  fOutput->Add(fhmultFMDvsEzem);
  fOutput->Add(fhNtracksvsmultV0);
  fOutput->Add(fhNtrackletsvsmultV0);
  fOutput->Add(fhNclusters0vsmultV0);
  fOutput->Add(fhNtracksvsmultFMD);
  fOutput->Add(fhNtrackletsvsmultFMD);
  fOutput->Add(fhNclusters0vsmultFMD);
  fOutput->Add(fhmultV0vsmultFMD);
  
  PostData(1, fOutput);
}

//________________________________________________________________________
void AliAnalysisTaskCentrality::UserExec(Option_t */*option*/)
{ 
  // Execute analysis for current event:
  if(fDebug>1) printf(" **** AliAnalysisTaskCentrality::UserExec() \n");
  
  if(fAnalysisInput.CompareTo("ESD")==0){

    AliVEvent* event = InputEvent();
    AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
    if (!esd) return;
      fNev++;

      fNTracks    = event->GetNumberOfTracks();     
      fNPmdTracks = esd->GetNumberOfPmdTracks();     

      AliESDVZERO* esdV0 = esd->GetVZEROData();
      fMultV0A=esdV0->GetMTotV0A();
      fMultV0C=esdV0->GetMTotV0C();

      if(fIsMCInput){

        AliMCEvent* mcEvent = MCEvent();
        if (!mcEvent) {
          printf("   Could not retrieve MC event!!!\n");
          return;
        }

	fNmyTracksgen = 0;
	AliStack *stack = 0x0; // needed for MC studies
	stack = MCEvent()->Stack();
	for (Int_t iTrack = 0; iTrack < MCEvent()->GetNumberOfTracks(); iTrack++) {
	  //get properties of mc particle
	  AliMCParticle* mcP = (AliMCParticle*) MCEvent()->GetTrack(iTrack);
	  // Primaries only
	  if (!(stack->IsPhysicalPrimary(mcP->Label()))) continue;
	  //charged tracks only
	  if (mcP->Particle()->GetPDG()->Charge() == 0) continue;
	  //same cuts as on ESDtracks
// 	  if(TMath::Abs(mcP->Eta())>0.9)continue;
// 	  if(mcP->Pt()<0.2)continue;
// 	  if(mcP->Pt()>200)continue;

	  fNmyTracksgen ++;
	} 

        AliGenEventHeader* genHeader = mcEvent->GenEventHeader();
        if(!genHeader){
          printf("  Event generator header not available!!!\n");
	  return;
        }
	
	if(genHeader->InheritsFrom(AliGenHijingEventHeader::Class())){
          fbMC = ((AliGenHijingEventHeader*) genHeader)->ImpactParameter();
          Int_t specNeutronProj = ((AliGenHijingEventHeader*) genHeader)->ProjSpectatorsn();
          Int_t specProtonProj  = ((AliGenHijingEventHeader*) genHeader)->ProjSpectatorsp();
          Int_t specNeutronTarg = ((AliGenHijingEventHeader*) genHeader)->TargSpectatorsn();
          Int_t specProtonTarg  = ((AliGenHijingEventHeader*) genHeader)->TargSpectatorsp();
	  fNpartTargMC = (Int_t)(208.-(specNeutronTarg+specProtonTarg));
	  fNpartProjMC = (Int_t)(208.-(specNeutronProj+specProtonProj));
	  fNNColl   = ((AliGenHijingEventHeader*) genHeader)->NN();
	  fNNwColl  = ((AliGenHijingEventHeader*) genHeader)->NNw();
	  fNwNColl  = ((AliGenHijingEventHeader*) genHeader)->NwN();
	  fNwNwColl = ((AliGenHijingEventHeader*) genHeader)->NwNw();
	}  
	
      }
      
      fBeamEnergy = esd->GetBeamEnergy();

      // ***** Trigger selection
      TString triggerClass = esd->GetFiredTriggerClasses();
      sprintf(fTrigClass,"%s",triggerClass.Data());
          
      const AliESDVertex *vertex = esd->GetPrimaryVertexSPD();
      fxVertex = vertex->GetX();
      fyVertex = vertex->GetY();
      fzVertex = vertex->GetZ();
      if(vertex->IsFromVertexer3D()) fVertexer3d = kTRUE;
      else fVertexer3d = kFALSE;
      Double_t vertex3[3];
      vertex->GetXYZ(vertex3);

      const AliMultiplicity *mult = esd->GetMultiplicity();
      fNTracklets = mult->GetNumberOfTracklets();
     
      for(Int_t ilay=0; ilay<6; ilay++){
        fNClusters[ilay] = mult->GetNumberOfITSClusters(ilay);
      }
      fNSingleClusters = mult->GetNumberOfSingleClusters();

      for(Int_t ilay=0; ilay<2; ilay++){
        fNChips[ilay] = mult->GetNumberOfFiredChips(ilay);
      }


      AliESDFMD *fmd = esd->GetFMDData();
      Float_t totalMultA = 0;
      Float_t totalMultC = 0;
      const Float_t fFMDLowCut = 0.4;
      
      for(UShort_t det=1;det<=3;det++) {
  	Int_t nRings = (det==1 ? 1 : 2);
  	for (UShort_t ir = 0; ir < nRings; ir++) {	  
  	  Char_t   ring = (ir == 0 ? 'I' : 'O');
  	  UShort_t nsec = (ir == 0 ? 20  : 40);
  	  UShort_t nstr = (ir == 0 ? 512 : 256);
	  for(UShort_t sec =0; sec < nsec;  sec++)  {
  	    for(UShort_t strip = 0; strip < nstr; strip++) {

	      Float_t fmdmult = fmd->Multiplicity(det,ring,sec,strip);
	      if(fmdmult == 0 || fmdmult == AliESDFMD::kInvalidMult) continue;

	      Float_t nParticles=0;
		
		if(fmdmult > fFMDLowCut) {
		  nParticles = 1.;
		}
	      
	      if (det<3) totalMultA = totalMultA + nParticles;
	      else totalMultC = totalMultC + nParticles;
	      
	    }
	  }
	}
      }
      fMultFMDA = totalMultA;
      fMultFMDC = totalMultC;

      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));
            
      fbZDC = esdZDC->GetImpactParameter();
      fNpartZDC = esdZDC->GetZDCParticipants();
      fbZDCA = esdZDC->GetImpactParamSideA();
      fNpartZDCA = esdZDC->GetZDCPartSideA();
      fbZDCC = esdZDC->GetImpactParamSideC();
      fNpartZDCC = esdZDC->GetZDCPartSideC();
      
      const Double_t * towZNC = esdZDC->GetZN1TowerEnergy();
      const Double_t * towZPC = esdZDC->GetZP1TowerEnergy();
      const Double_t * towZNA = esdZDC->GetZN2TowerEnergy();
      const Double_t * towZPA = esdZDC->GetZP2TowerEnergy();

      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]);  
      }

      Double_t xyZNC[2]={-99.,-99.}, xyZNA[2]={-99.,-99.};
      esdZDC->GetZNCentroidInPbPb(fBeamEnergy, xyZNC, xyZNA);
      for(Int_t it=0; it<2; it++){
         fCentrZNC[it] = xyZNC[it];
         fCentrZNA[it] = xyZNA[it];
      }

      // filling histos
      fhEzdc         ->Fill((fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
      fhEzem         ->Fill(fZEM1Energy+fZEM2Energy);
      fhNtracks      ->Fill(fNTracks);
      fhNtracklets   ->Fill(fNTracklets);
      fhNclusters0   ->Fill(fNClusters[0]);
      fhmultV0       ->Fill(fMultV0A+fMultV0C);
      fhmultFMD      ->Fill(fMultFMDA+fMultFMDC);
      fhEzemvsEzdc         ->Fill(fZEM1Energy+fZEM2Energy, (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
      fhNtracksvsEzdc      ->Fill(fNTracks, (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
      fhNtrackletsvsEzdc   ->Fill(fNTracklets,  (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
      fhNclusters0vsEzdc   ->Fill(fNClusters[0],  (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
      fhmultV0vsEzdc       ->Fill(fMultV0A+fMultV0C,  (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
      fhmultFMDvsEzdc      ->Fill(fMultFMDA+fMultFMDC,  (fZNCEnergy+fZPCEnergy+fZNAEnergy+fZPAEnergy)/1000.);
      fhNtracksvsEzem      ->Fill(fNTracks, fZEM1Energy+fZEM2Energy);
      fhNtrackletsvsEzem   ->Fill(fNTracklets, fZEM1Energy+fZEM2Energy);
      fhNclusters0vsEzem   ->Fill(fNClusters[0], fZEM1Energy+fZEM2Energy);
      fhmultV0vsEzem       ->Fill(fMultV0A+fMultV0C, fZEM1Energy+fZEM2Energy);
      fhmultFMDvsEzem      ->Fill(fMultFMDA+fMultFMDC, fZEM1Energy+fZEM2Energy);
      fhNtracksvsmultV0    ->Fill(fNTracks,fMultV0A+fMultV0C);    
      fhNtrackletsvsmultV0 ->Fill(fNTracklets,fMultV0A+fMultV0C);    
      fhNclusters0vsmultV0 ->Fill(fNClusters[0],fMultV0A+fMultV0C);    
      fhNtracksvsmultFMD   ->Fill(fNTracks,fMultFMDA+fMultFMDC);
      fhNtrackletsvsmultFMD->Fill(fNTracklets,fMultFMDA+fMultFMDC);
      fhNclusters0vsmultFMD->Fill(fNClusters[0],fMultFMDA+fMultFMDC);
      fhmultV0vsmultFMD    ->Fill(fMultV0A+fMultV0C,fMultFMDA+fMultFMDC);
  }   
  else if(fAnalysisInput.CompareTo("AOD")==0){
    //AliAODEvent *aod =  dynamic_cast<AliAODEvent*> (InputEvent());
    // to be implemented
    printf("  AOD analysis not yet implemented!!!\n\n");
    return;
  }
  PostData(1, fOutput);
}

//________________________________________________________________________
void AliAnalysisTaskCentrality::Terminate(Option_t */*option*/)
{
  // Terminate analysis
}
 AliAnalysisTaskCentrality.cxx:1
 AliAnalysisTaskCentrality.cxx:2
 AliAnalysisTaskCentrality.cxx:3
 AliAnalysisTaskCentrality.cxx:4
 AliAnalysisTaskCentrality.cxx:5
 AliAnalysisTaskCentrality.cxx:6
 AliAnalysisTaskCentrality.cxx:7
 AliAnalysisTaskCentrality.cxx:8
 AliAnalysisTaskCentrality.cxx:9
 AliAnalysisTaskCentrality.cxx:10
 AliAnalysisTaskCentrality.cxx:11
 AliAnalysisTaskCentrality.cxx:12
 AliAnalysisTaskCentrality.cxx:13
 AliAnalysisTaskCentrality.cxx:14
 AliAnalysisTaskCentrality.cxx:15
 AliAnalysisTaskCentrality.cxx:16
 AliAnalysisTaskCentrality.cxx:17
 AliAnalysisTaskCentrality.cxx:18
 AliAnalysisTaskCentrality.cxx:19
 AliAnalysisTaskCentrality.cxx:20
 AliAnalysisTaskCentrality.cxx:21
 AliAnalysisTaskCentrality.cxx:22
 AliAnalysisTaskCentrality.cxx:23
 AliAnalysisTaskCentrality.cxx:24
 AliAnalysisTaskCentrality.cxx:25
 AliAnalysisTaskCentrality.cxx:26
 AliAnalysisTaskCentrality.cxx:27
 AliAnalysisTaskCentrality.cxx:28
 AliAnalysisTaskCentrality.cxx:29
 AliAnalysisTaskCentrality.cxx:30
 AliAnalysisTaskCentrality.cxx:31
 AliAnalysisTaskCentrality.cxx:32
 AliAnalysisTaskCentrality.cxx:33
 AliAnalysisTaskCentrality.cxx:34
 AliAnalysisTaskCentrality.cxx:35
 AliAnalysisTaskCentrality.cxx:36
 AliAnalysisTaskCentrality.cxx:37
 AliAnalysisTaskCentrality.cxx:38
 AliAnalysisTaskCentrality.cxx:39
 AliAnalysisTaskCentrality.cxx:40
 AliAnalysisTaskCentrality.cxx:41
 AliAnalysisTaskCentrality.cxx:42
 AliAnalysisTaskCentrality.cxx:43
 AliAnalysisTaskCentrality.cxx:44
 AliAnalysisTaskCentrality.cxx:45
 AliAnalysisTaskCentrality.cxx:46
 AliAnalysisTaskCentrality.cxx:47
 AliAnalysisTaskCentrality.cxx:48
 AliAnalysisTaskCentrality.cxx:49
 AliAnalysisTaskCentrality.cxx:50
 AliAnalysisTaskCentrality.cxx:51
 AliAnalysisTaskCentrality.cxx:52
 AliAnalysisTaskCentrality.cxx:53
 AliAnalysisTaskCentrality.cxx:54
 AliAnalysisTaskCentrality.cxx:55
 AliAnalysisTaskCentrality.cxx:56
 AliAnalysisTaskCentrality.cxx:57
 AliAnalysisTaskCentrality.cxx:58
 AliAnalysisTaskCentrality.cxx:59
 AliAnalysisTaskCentrality.cxx:60
 AliAnalysisTaskCentrality.cxx:61
 AliAnalysisTaskCentrality.cxx:62
 AliAnalysisTaskCentrality.cxx:63
 AliAnalysisTaskCentrality.cxx:64
 AliAnalysisTaskCentrality.cxx:65
 AliAnalysisTaskCentrality.cxx:66
 AliAnalysisTaskCentrality.cxx:67
 AliAnalysisTaskCentrality.cxx:68
 AliAnalysisTaskCentrality.cxx:69
 AliAnalysisTaskCentrality.cxx:70
 AliAnalysisTaskCentrality.cxx:71
 AliAnalysisTaskCentrality.cxx:72
 AliAnalysisTaskCentrality.cxx:73
 AliAnalysisTaskCentrality.cxx:74
 AliAnalysisTaskCentrality.cxx:75
 AliAnalysisTaskCentrality.cxx:76
 AliAnalysisTaskCentrality.cxx:77
 AliAnalysisTaskCentrality.cxx:78
 AliAnalysisTaskCentrality.cxx:79
 AliAnalysisTaskCentrality.cxx:80
 AliAnalysisTaskCentrality.cxx:81
 AliAnalysisTaskCentrality.cxx:82
 AliAnalysisTaskCentrality.cxx:83
 AliAnalysisTaskCentrality.cxx:84
 AliAnalysisTaskCentrality.cxx:85
 AliAnalysisTaskCentrality.cxx:86
 AliAnalysisTaskCentrality.cxx:87
 AliAnalysisTaskCentrality.cxx:88
 AliAnalysisTaskCentrality.cxx:89
 AliAnalysisTaskCentrality.cxx:90
 AliAnalysisTaskCentrality.cxx:91
 AliAnalysisTaskCentrality.cxx:92
 AliAnalysisTaskCentrality.cxx:93
 AliAnalysisTaskCentrality.cxx:94
 AliAnalysisTaskCentrality.cxx:95
 AliAnalysisTaskCentrality.cxx:96
 AliAnalysisTaskCentrality.cxx:97
 AliAnalysisTaskCentrality.cxx:98
 AliAnalysisTaskCentrality.cxx:99
 AliAnalysisTaskCentrality.cxx:100
 AliAnalysisTaskCentrality.cxx:101
 AliAnalysisTaskCentrality.cxx:102
 AliAnalysisTaskCentrality.cxx:103
 AliAnalysisTaskCentrality.cxx:104
 AliAnalysisTaskCentrality.cxx:105
 AliAnalysisTaskCentrality.cxx:106
 AliAnalysisTaskCentrality.cxx:107
 AliAnalysisTaskCentrality.cxx:108
 AliAnalysisTaskCentrality.cxx:109
 AliAnalysisTaskCentrality.cxx:110
 AliAnalysisTaskCentrality.cxx:111
 AliAnalysisTaskCentrality.cxx:112
 AliAnalysisTaskCentrality.cxx:113
 AliAnalysisTaskCentrality.cxx:114
 AliAnalysisTaskCentrality.cxx:115
 AliAnalysisTaskCentrality.cxx:116
 AliAnalysisTaskCentrality.cxx:117
 AliAnalysisTaskCentrality.cxx:118
 AliAnalysisTaskCentrality.cxx:119
 AliAnalysisTaskCentrality.cxx:120
 AliAnalysisTaskCentrality.cxx:121
 AliAnalysisTaskCentrality.cxx:122
 AliAnalysisTaskCentrality.cxx:123
 AliAnalysisTaskCentrality.cxx:124
 AliAnalysisTaskCentrality.cxx:125
 AliAnalysisTaskCentrality.cxx:126
 AliAnalysisTaskCentrality.cxx:127
 AliAnalysisTaskCentrality.cxx:128
 AliAnalysisTaskCentrality.cxx:129
 AliAnalysisTaskCentrality.cxx:130
 AliAnalysisTaskCentrality.cxx:131
 AliAnalysisTaskCentrality.cxx:132
 AliAnalysisTaskCentrality.cxx:133
 AliAnalysisTaskCentrality.cxx:134
 AliAnalysisTaskCentrality.cxx:135
 AliAnalysisTaskCentrality.cxx:136
 AliAnalysisTaskCentrality.cxx:137
 AliAnalysisTaskCentrality.cxx:138
 AliAnalysisTaskCentrality.cxx:139
 AliAnalysisTaskCentrality.cxx:140
 AliAnalysisTaskCentrality.cxx:141
 AliAnalysisTaskCentrality.cxx:142
 AliAnalysisTaskCentrality.cxx:143
 AliAnalysisTaskCentrality.cxx:144
 AliAnalysisTaskCentrality.cxx:145
 AliAnalysisTaskCentrality.cxx:146
 AliAnalysisTaskCentrality.cxx:147
 AliAnalysisTaskCentrality.cxx:148
 AliAnalysisTaskCentrality.cxx:149
 AliAnalysisTaskCentrality.cxx:150
 AliAnalysisTaskCentrality.cxx:151
 AliAnalysisTaskCentrality.cxx:152
 AliAnalysisTaskCentrality.cxx:153
 AliAnalysisTaskCentrality.cxx:154
 AliAnalysisTaskCentrality.cxx:155
 AliAnalysisTaskCentrality.cxx:156
 AliAnalysisTaskCentrality.cxx:157
 AliAnalysisTaskCentrality.cxx:158
 AliAnalysisTaskCentrality.cxx:159
 AliAnalysisTaskCentrality.cxx:160
 AliAnalysisTaskCentrality.cxx:161
 AliAnalysisTaskCentrality.cxx:162
 AliAnalysisTaskCentrality.cxx:163
 AliAnalysisTaskCentrality.cxx:164
 AliAnalysisTaskCentrality.cxx:165
 AliAnalysisTaskCentrality.cxx:166
 AliAnalysisTaskCentrality.cxx:167
 AliAnalysisTaskCentrality.cxx:168
 AliAnalysisTaskCentrality.cxx:169
 AliAnalysisTaskCentrality.cxx:170
 AliAnalysisTaskCentrality.cxx:171
 AliAnalysisTaskCentrality.cxx:172
 AliAnalysisTaskCentrality.cxx:173
 AliAnalysisTaskCentrality.cxx:174
 AliAnalysisTaskCentrality.cxx:175
 AliAnalysisTaskCentrality.cxx:176
 AliAnalysisTaskCentrality.cxx:177
 AliAnalysisTaskCentrality.cxx:178
 AliAnalysisTaskCentrality.cxx:179
 AliAnalysisTaskCentrality.cxx:180
 AliAnalysisTaskCentrality.cxx:181
 AliAnalysisTaskCentrality.cxx:182
 AliAnalysisTaskCentrality.cxx:183
 AliAnalysisTaskCentrality.cxx:184
 AliAnalysisTaskCentrality.cxx:185
 AliAnalysisTaskCentrality.cxx:186
 AliAnalysisTaskCentrality.cxx:187
 AliAnalysisTaskCentrality.cxx:188
 AliAnalysisTaskCentrality.cxx:189
 AliAnalysisTaskCentrality.cxx:190
 AliAnalysisTaskCentrality.cxx:191
 AliAnalysisTaskCentrality.cxx:192
 AliAnalysisTaskCentrality.cxx:193
 AliAnalysisTaskCentrality.cxx:194
 AliAnalysisTaskCentrality.cxx:195
 AliAnalysisTaskCentrality.cxx:196
 AliAnalysisTaskCentrality.cxx:197
 AliAnalysisTaskCentrality.cxx:198
 AliAnalysisTaskCentrality.cxx:199
 AliAnalysisTaskCentrality.cxx:200
 AliAnalysisTaskCentrality.cxx:201
 AliAnalysisTaskCentrality.cxx:202
 AliAnalysisTaskCentrality.cxx:203
 AliAnalysisTaskCentrality.cxx:204
 AliAnalysisTaskCentrality.cxx:205
 AliAnalysisTaskCentrality.cxx:206
 AliAnalysisTaskCentrality.cxx:207
 AliAnalysisTaskCentrality.cxx:208
 AliAnalysisTaskCentrality.cxx:209
 AliAnalysisTaskCentrality.cxx:210
 AliAnalysisTaskCentrality.cxx:211
 AliAnalysisTaskCentrality.cxx:212
 AliAnalysisTaskCentrality.cxx:213
 AliAnalysisTaskCentrality.cxx:214
 AliAnalysisTaskCentrality.cxx:215
 AliAnalysisTaskCentrality.cxx:216
 AliAnalysisTaskCentrality.cxx:217
 AliAnalysisTaskCentrality.cxx:218
 AliAnalysisTaskCentrality.cxx:219
 AliAnalysisTaskCentrality.cxx:220
 AliAnalysisTaskCentrality.cxx:221
 AliAnalysisTaskCentrality.cxx:222
 AliAnalysisTaskCentrality.cxx:223
 AliAnalysisTaskCentrality.cxx:224
 AliAnalysisTaskCentrality.cxx:225
 AliAnalysisTaskCentrality.cxx:226
 AliAnalysisTaskCentrality.cxx:227
 AliAnalysisTaskCentrality.cxx:228
 AliAnalysisTaskCentrality.cxx:229
 AliAnalysisTaskCentrality.cxx:230
 AliAnalysisTaskCentrality.cxx:231
 AliAnalysisTaskCentrality.cxx:232
 AliAnalysisTaskCentrality.cxx:233
 AliAnalysisTaskCentrality.cxx:234
 AliAnalysisTaskCentrality.cxx:235
 AliAnalysisTaskCentrality.cxx:236
 AliAnalysisTaskCentrality.cxx:237
 AliAnalysisTaskCentrality.cxx:238
 AliAnalysisTaskCentrality.cxx:239
 AliAnalysisTaskCentrality.cxx:240
 AliAnalysisTaskCentrality.cxx:241
 AliAnalysisTaskCentrality.cxx:242
 AliAnalysisTaskCentrality.cxx:243
 AliAnalysisTaskCentrality.cxx:244
 AliAnalysisTaskCentrality.cxx:245
 AliAnalysisTaskCentrality.cxx:246
 AliAnalysisTaskCentrality.cxx:247
 AliAnalysisTaskCentrality.cxx:248
 AliAnalysisTaskCentrality.cxx:249
 AliAnalysisTaskCentrality.cxx:250
 AliAnalysisTaskCentrality.cxx:251
 AliAnalysisTaskCentrality.cxx:252
 AliAnalysisTaskCentrality.cxx:253
 AliAnalysisTaskCentrality.cxx:254
 AliAnalysisTaskCentrality.cxx:255
 AliAnalysisTaskCentrality.cxx:256
 AliAnalysisTaskCentrality.cxx:257
 AliAnalysisTaskCentrality.cxx:258
 AliAnalysisTaskCentrality.cxx:259
 AliAnalysisTaskCentrality.cxx:260
 AliAnalysisTaskCentrality.cxx:261
 AliAnalysisTaskCentrality.cxx:262
 AliAnalysisTaskCentrality.cxx:263
 AliAnalysisTaskCentrality.cxx:264
 AliAnalysisTaskCentrality.cxx:265
 AliAnalysisTaskCentrality.cxx:266
 AliAnalysisTaskCentrality.cxx:267
 AliAnalysisTaskCentrality.cxx:268
 AliAnalysisTaskCentrality.cxx:269
 AliAnalysisTaskCentrality.cxx:270
 AliAnalysisTaskCentrality.cxx:271
 AliAnalysisTaskCentrality.cxx:272
 AliAnalysisTaskCentrality.cxx:273
 AliAnalysisTaskCentrality.cxx:274
 AliAnalysisTaskCentrality.cxx:275
 AliAnalysisTaskCentrality.cxx:276
 AliAnalysisTaskCentrality.cxx:277
 AliAnalysisTaskCentrality.cxx:278
 AliAnalysisTaskCentrality.cxx:279
 AliAnalysisTaskCentrality.cxx:280
 AliAnalysisTaskCentrality.cxx:281
 AliAnalysisTaskCentrality.cxx:282
 AliAnalysisTaskCentrality.cxx:283
 AliAnalysisTaskCentrality.cxx:284
 AliAnalysisTaskCentrality.cxx:285
 AliAnalysisTaskCentrality.cxx:286
 AliAnalysisTaskCentrality.cxx:287
 AliAnalysisTaskCentrality.cxx:288
 AliAnalysisTaskCentrality.cxx:289
 AliAnalysisTaskCentrality.cxx:290
 AliAnalysisTaskCentrality.cxx:291
 AliAnalysisTaskCentrality.cxx:292
 AliAnalysisTaskCentrality.cxx:293
 AliAnalysisTaskCentrality.cxx:294
 AliAnalysisTaskCentrality.cxx:295
 AliAnalysisTaskCentrality.cxx:296
 AliAnalysisTaskCentrality.cxx:297
 AliAnalysisTaskCentrality.cxx:298
 AliAnalysisTaskCentrality.cxx:299
 AliAnalysisTaskCentrality.cxx:300
 AliAnalysisTaskCentrality.cxx:301
 AliAnalysisTaskCentrality.cxx:302
 AliAnalysisTaskCentrality.cxx:303
 AliAnalysisTaskCentrality.cxx:304
 AliAnalysisTaskCentrality.cxx:305
 AliAnalysisTaskCentrality.cxx:306
 AliAnalysisTaskCentrality.cxx:307
 AliAnalysisTaskCentrality.cxx:308
 AliAnalysisTaskCentrality.cxx:309
 AliAnalysisTaskCentrality.cxx:310
 AliAnalysisTaskCentrality.cxx:311
 AliAnalysisTaskCentrality.cxx:312
 AliAnalysisTaskCentrality.cxx:313
 AliAnalysisTaskCentrality.cxx:314
 AliAnalysisTaskCentrality.cxx:315
 AliAnalysisTaskCentrality.cxx:316
 AliAnalysisTaskCentrality.cxx:317
 AliAnalysisTaskCentrality.cxx:318
 AliAnalysisTaskCentrality.cxx:319
 AliAnalysisTaskCentrality.cxx:320
 AliAnalysisTaskCentrality.cxx:321
 AliAnalysisTaskCentrality.cxx:322
 AliAnalysisTaskCentrality.cxx:323
 AliAnalysisTaskCentrality.cxx:324
 AliAnalysisTaskCentrality.cxx:325
 AliAnalysisTaskCentrality.cxx:326
 AliAnalysisTaskCentrality.cxx:327
 AliAnalysisTaskCentrality.cxx:328
 AliAnalysisTaskCentrality.cxx:329
 AliAnalysisTaskCentrality.cxx:330
 AliAnalysisTaskCentrality.cxx:331
 AliAnalysisTaskCentrality.cxx:332
 AliAnalysisTaskCentrality.cxx:333
 AliAnalysisTaskCentrality.cxx:334
 AliAnalysisTaskCentrality.cxx:335
 AliAnalysisTaskCentrality.cxx:336
 AliAnalysisTaskCentrality.cxx:337
 AliAnalysisTaskCentrality.cxx:338
 AliAnalysisTaskCentrality.cxx:339
 AliAnalysisTaskCentrality.cxx:340
 AliAnalysisTaskCentrality.cxx:341
 AliAnalysisTaskCentrality.cxx:342
 AliAnalysisTaskCentrality.cxx:343
 AliAnalysisTaskCentrality.cxx:344
 AliAnalysisTaskCentrality.cxx:345
 AliAnalysisTaskCentrality.cxx:346
 AliAnalysisTaskCentrality.cxx:347
 AliAnalysisTaskCentrality.cxx:348
 AliAnalysisTaskCentrality.cxx:349
 AliAnalysisTaskCentrality.cxx:350
 AliAnalysisTaskCentrality.cxx:351
 AliAnalysisTaskCentrality.cxx:352
 AliAnalysisTaskCentrality.cxx:353
 AliAnalysisTaskCentrality.cxx:354
 AliAnalysisTaskCentrality.cxx:355
 AliAnalysisTaskCentrality.cxx:356
 AliAnalysisTaskCentrality.cxx:357
 AliAnalysisTaskCentrality.cxx:358
 AliAnalysisTaskCentrality.cxx:359
 AliAnalysisTaskCentrality.cxx:360
 AliAnalysisTaskCentrality.cxx:361
 AliAnalysisTaskCentrality.cxx:362
 AliAnalysisTaskCentrality.cxx:363
 AliAnalysisTaskCentrality.cxx:364
 AliAnalysisTaskCentrality.cxx:365
 AliAnalysisTaskCentrality.cxx:366
 AliAnalysisTaskCentrality.cxx:367
 AliAnalysisTaskCentrality.cxx:368
 AliAnalysisTaskCentrality.cxx:369
 AliAnalysisTaskCentrality.cxx:370
 AliAnalysisTaskCentrality.cxx:371
 AliAnalysisTaskCentrality.cxx:372
 AliAnalysisTaskCentrality.cxx:373
 AliAnalysisTaskCentrality.cxx:374
 AliAnalysisTaskCentrality.cxx:375
 AliAnalysisTaskCentrality.cxx:376
 AliAnalysisTaskCentrality.cxx:377
 AliAnalysisTaskCentrality.cxx:378
 AliAnalysisTaskCentrality.cxx:379
 AliAnalysisTaskCentrality.cxx:380
 AliAnalysisTaskCentrality.cxx:381
 AliAnalysisTaskCentrality.cxx:382
 AliAnalysisTaskCentrality.cxx:383
 AliAnalysisTaskCentrality.cxx:384
 AliAnalysisTaskCentrality.cxx:385
 AliAnalysisTaskCentrality.cxx:386
 AliAnalysisTaskCentrality.cxx:387
 AliAnalysisTaskCentrality.cxx:388
 AliAnalysisTaskCentrality.cxx:389
 AliAnalysisTaskCentrality.cxx:390
 AliAnalysisTaskCentrality.cxx:391
 AliAnalysisTaskCentrality.cxx:392
 AliAnalysisTaskCentrality.cxx:393
 AliAnalysisTaskCentrality.cxx:394
 AliAnalysisTaskCentrality.cxx:395
 AliAnalysisTaskCentrality.cxx:396
 AliAnalysisTaskCentrality.cxx:397
 AliAnalysisTaskCentrality.cxx:398
 AliAnalysisTaskCentrality.cxx:399
 AliAnalysisTaskCentrality.cxx:400
 AliAnalysisTaskCentrality.cxx:401
 AliAnalysisTaskCentrality.cxx:402
 AliAnalysisTaskCentrality.cxx:403
 AliAnalysisTaskCentrality.cxx:404
 AliAnalysisTaskCentrality.cxx:405
 AliAnalysisTaskCentrality.cxx:406
 AliAnalysisTaskCentrality.cxx:407
 AliAnalysisTaskCentrality.cxx:408
 AliAnalysisTaskCentrality.cxx:409
 AliAnalysisTaskCentrality.cxx:410
 AliAnalysisTaskCentrality.cxx:411
 AliAnalysisTaskCentrality.cxx:412
 AliAnalysisTaskCentrality.cxx:413
 AliAnalysisTaskCentrality.cxx:414
 AliAnalysisTaskCentrality.cxx:415
 AliAnalysisTaskCentrality.cxx:416
 AliAnalysisTaskCentrality.cxx:417
 AliAnalysisTaskCentrality.cxx:418
 AliAnalysisTaskCentrality.cxx:419
 AliAnalysisTaskCentrality.cxx:420
 AliAnalysisTaskCentrality.cxx:421
 AliAnalysisTaskCentrality.cxx:422
 AliAnalysisTaskCentrality.cxx:423
 AliAnalysisTaskCentrality.cxx:424
 AliAnalysisTaskCentrality.cxx:425
 AliAnalysisTaskCentrality.cxx:426
 AliAnalysisTaskCentrality.cxx:427
 AliAnalysisTaskCentrality.cxx:428
 AliAnalysisTaskCentrality.cxx:429
 AliAnalysisTaskCentrality.cxx:430
 AliAnalysisTaskCentrality.cxx:431
 AliAnalysisTaskCentrality.cxx:432
 AliAnalysisTaskCentrality.cxx:433
 AliAnalysisTaskCentrality.cxx:434
 AliAnalysisTaskCentrality.cxx:435
 AliAnalysisTaskCentrality.cxx:436
 AliAnalysisTaskCentrality.cxx:437
 AliAnalysisTaskCentrality.cxx:438
 AliAnalysisTaskCentrality.cxx:439
 AliAnalysisTaskCentrality.cxx:440
 AliAnalysisTaskCentrality.cxx:441
 AliAnalysisTaskCentrality.cxx:442
 AliAnalysisTaskCentrality.cxx:443
 AliAnalysisTaskCentrality.cxx:444
 AliAnalysisTaskCentrality.cxx:445
 AliAnalysisTaskCentrality.cxx:446
 AliAnalysisTaskCentrality.cxx:447
 AliAnalysisTaskCentrality.cxx:448
 AliAnalysisTaskCentrality.cxx:449
 AliAnalysisTaskCentrality.cxx:450
 AliAnalysisTaskCentrality.cxx:451
 AliAnalysisTaskCentrality.cxx:452
 AliAnalysisTaskCentrality.cxx:453
 AliAnalysisTaskCentrality.cxx:454
 AliAnalysisTaskCentrality.cxx:455
 AliAnalysisTaskCentrality.cxx:456
 AliAnalysisTaskCentrality.cxx:457
 AliAnalysisTaskCentrality.cxx:458
 AliAnalysisTaskCentrality.cxx:459
 AliAnalysisTaskCentrality.cxx:460
 AliAnalysisTaskCentrality.cxx:461
 AliAnalysisTaskCentrality.cxx:462
 AliAnalysisTaskCentrality.cxx:463
 AliAnalysisTaskCentrality.cxx:464
 AliAnalysisTaskCentrality.cxx:465
 AliAnalysisTaskCentrality.cxx:466
 AliAnalysisTaskCentrality.cxx:467
 AliAnalysisTaskCentrality.cxx:468
 AliAnalysisTaskCentrality.cxx:469
 AliAnalysisTaskCentrality.cxx:470
 AliAnalysisTaskCentrality.cxx:471
 AliAnalysisTaskCentrality.cxx:472
 AliAnalysisTaskCentrality.cxx:473
 AliAnalysisTaskCentrality.cxx:474
 AliAnalysisTaskCentrality.cxx:475
 AliAnalysisTaskCentrality.cxx:476
 AliAnalysisTaskCentrality.cxx:477
 AliAnalysisTaskCentrality.cxx:478
 AliAnalysisTaskCentrality.cxx:479
 AliAnalysisTaskCentrality.cxx:480
 AliAnalysisTaskCentrality.cxx:481
 AliAnalysisTaskCentrality.cxx:482
 AliAnalysisTaskCentrality.cxx:483
 AliAnalysisTaskCentrality.cxx:484
 AliAnalysisTaskCentrality.cxx:485
 AliAnalysisTaskCentrality.cxx:486
 AliAnalysisTaskCentrality.cxx:487
 AliAnalysisTaskCentrality.cxx:488
 AliAnalysisTaskCentrality.cxx:489
 AliAnalysisTaskCentrality.cxx:490
 AliAnalysisTaskCentrality.cxx:491
 AliAnalysisTaskCentrality.cxx:492
 AliAnalysisTaskCentrality.cxx:493
 AliAnalysisTaskCentrality.cxx:494
 AliAnalysisTaskCentrality.cxx:495
 AliAnalysisTaskCentrality.cxx:496
 AliAnalysisTaskCentrality.cxx:497
 AliAnalysisTaskCentrality.cxx:498
 AliAnalysisTaskCentrality.cxx:499
 AliAnalysisTaskCentrality.cxx:500
 AliAnalysisTaskCentrality.cxx:501
 AliAnalysisTaskCentrality.cxx:502
 AliAnalysisTaskCentrality.cxx:503
 AliAnalysisTaskCentrality.cxx:504
 AliAnalysisTaskCentrality.cxx:505
 AliAnalysisTaskCentrality.cxx:506
 AliAnalysisTaskCentrality.cxx:507
 AliAnalysisTaskCentrality.cxx:508
 AliAnalysisTaskCentrality.cxx:509
 AliAnalysisTaskCentrality.cxx:510
 AliAnalysisTaskCentrality.cxx:511
 AliAnalysisTaskCentrality.cxx:512
 AliAnalysisTaskCentrality.cxx:513
 AliAnalysisTaskCentrality.cxx:514
 AliAnalysisTaskCentrality.cxx:515
 AliAnalysisTaskCentrality.cxx:516
 AliAnalysisTaskCentrality.cxx:517
 AliAnalysisTaskCentrality.cxx:518
 AliAnalysisTaskCentrality.cxx:519
 AliAnalysisTaskCentrality.cxx:520
 AliAnalysisTaskCentrality.cxx:521
 AliAnalysisTaskCentrality.cxx:522
 AliAnalysisTaskCentrality.cxx:523
 AliAnalysisTaskCentrality.cxx:524
 AliAnalysisTaskCentrality.cxx:525
 AliAnalysisTaskCentrality.cxx:526
 AliAnalysisTaskCentrality.cxx:527
 AliAnalysisTaskCentrality.cxx:528
 AliAnalysisTaskCentrality.cxx:529
 AliAnalysisTaskCentrality.cxx:530
 AliAnalysisTaskCentrality.cxx:531
 AliAnalysisTaskCentrality.cxx:532
 AliAnalysisTaskCentrality.cxx:533
 AliAnalysisTaskCentrality.cxx:534
 AliAnalysisTaskCentrality.cxx:535
 AliAnalysisTaskCentrality.cxx:536
 AliAnalysisTaskCentrality.cxx:537
 AliAnalysisTaskCentrality.cxx:538
 AliAnalysisTaskCentrality.cxx:539
 AliAnalysisTaskCentrality.cxx:540
 AliAnalysisTaskCentrality.cxx:541
 AliAnalysisTaskCentrality.cxx:542
 AliAnalysisTaskCentrality.cxx:543
 AliAnalysisTaskCentrality.cxx:544
 AliAnalysisTaskCentrality.cxx:545
 AliAnalysisTaskCentrality.cxx:546
 AliAnalysisTaskCentrality.cxx:547
 AliAnalysisTaskCentrality.cxx:548
 AliAnalysisTaskCentrality.cxx:549
 AliAnalysisTaskCentrality.cxx:550
 AliAnalysisTaskCentrality.cxx:551
 AliAnalysisTaskCentrality.cxx:552
 AliAnalysisTaskCentrality.cxx:553
 AliAnalysisTaskCentrality.cxx:554
 AliAnalysisTaskCentrality.cxx:555
 AliAnalysisTaskCentrality.cxx:556
 AliAnalysisTaskCentrality.cxx:557
 AliAnalysisTaskCentrality.cxx:558
 AliAnalysisTaskCentrality.cxx:559
 AliAnalysisTaskCentrality.cxx:560
 AliAnalysisTaskCentrality.cxx:561
 AliAnalysisTaskCentrality.cxx:562
 AliAnalysisTaskCentrality.cxx:563
 AliAnalysisTaskCentrality.cxx:564
 AliAnalysisTaskCentrality.cxx:565
 AliAnalysisTaskCentrality.cxx:566
 AliAnalysisTaskCentrality.cxx:567
 AliAnalysisTaskCentrality.cxx:568
 AliAnalysisTaskCentrality.cxx:569
 AliAnalysisTaskCentrality.cxx:570
 AliAnalysisTaskCentrality.cxx:571
 AliAnalysisTaskCentrality.cxx:572
 AliAnalysisTaskCentrality.cxx:573
 AliAnalysisTaskCentrality.cxx:574
 AliAnalysisTaskCentrality.cxx:575
 AliAnalysisTaskCentrality.cxx:576
 AliAnalysisTaskCentrality.cxx:577
 AliAnalysisTaskCentrality.cxx:578
 AliAnalysisTaskCentrality.cxx:579
 AliAnalysisTaskCentrality.cxx:580
 AliAnalysisTaskCentrality.cxx:581
 AliAnalysisTaskCentrality.cxx:582
 AliAnalysisTaskCentrality.cxx:583
 AliAnalysisTaskCentrality.cxx:584
 AliAnalysisTaskCentrality.cxx:585
 AliAnalysisTaskCentrality.cxx:586
 AliAnalysisTaskCentrality.cxx:587
 AliAnalysisTaskCentrality.cxx:588
 AliAnalysisTaskCentrality.cxx:589
 AliAnalysisTaskCentrality.cxx:590
 AliAnalysisTaskCentrality.cxx:591
 AliAnalysisTaskCentrality.cxx:592
 AliAnalysisTaskCentrality.cxx:593
 AliAnalysisTaskCentrality.cxx:594
 AliAnalysisTaskCentrality.cxx:595
 AliAnalysisTaskCentrality.cxx:596
 AliAnalysisTaskCentrality.cxx:597
 AliAnalysisTaskCentrality.cxx:598
 AliAnalysisTaskCentrality.cxx:599
 AliAnalysisTaskCentrality.cxx:600
 AliAnalysisTaskCentrality.cxx:601
 AliAnalysisTaskCentrality.cxx:602
 AliAnalysisTaskCentrality.cxx:603
 AliAnalysisTaskCentrality.cxx:604
 AliAnalysisTaskCentrality.cxx:605
 AliAnalysisTaskCentrality.cxx:606
 AliAnalysisTaskCentrality.cxx:607
 AliAnalysisTaskCentrality.cxx:608
 AliAnalysisTaskCentrality.cxx:609
 AliAnalysisTaskCentrality.cxx:610
 AliAnalysisTaskCentrality.cxx:611
 AliAnalysisTaskCentrality.cxx:612
 AliAnalysisTaskCentrality.cxx:613
 AliAnalysisTaskCentrality.cxx:614
 AliAnalysisTaskCentrality.cxx:615
 AliAnalysisTaskCentrality.cxx:616
 AliAnalysisTaskCentrality.cxx:617
 AliAnalysisTaskCentrality.cxx:618
 AliAnalysisTaskCentrality.cxx:619
 AliAnalysisTaskCentrality.cxx:620
 AliAnalysisTaskCentrality.cxx:621
 AliAnalysisTaskCentrality.cxx:622
 AliAnalysisTaskCentrality.cxx:623
 AliAnalysisTaskCentrality.cxx:624
 AliAnalysisTaskCentrality.cxx:625
 AliAnalysisTaskCentrality.cxx:626
 AliAnalysisTaskCentrality.cxx:627
 AliAnalysisTaskCentrality.cxx:628
 AliAnalysisTaskCentrality.cxx:629
 AliAnalysisTaskCentrality.cxx:630
 AliAnalysisTaskCentrality.cxx:631
 AliAnalysisTaskCentrality.cxx:632
 AliAnalysisTaskCentrality.cxx:633
 AliAnalysisTaskCentrality.cxx:634
 AliAnalysisTaskCentrality.cxx:635
 AliAnalysisTaskCentrality.cxx:636
 AliAnalysisTaskCentrality.cxx:637
 AliAnalysisTaskCentrality.cxx:638
 AliAnalysisTaskCentrality.cxx:639
 AliAnalysisTaskCentrality.cxx:640
 AliAnalysisTaskCentrality.cxx:641
 AliAnalysisTaskCentrality.cxx:642
 AliAnalysisTaskCentrality.cxx:643
 AliAnalysisTaskCentrality.cxx:644
 AliAnalysisTaskCentrality.cxx:645
 AliAnalysisTaskCentrality.cxx:646
 AliAnalysisTaskCentrality.cxx:647
 AliAnalysisTaskCentrality.cxx:648
 AliAnalysisTaskCentrality.cxx:649
 AliAnalysisTaskCentrality.cxx:650
 AliAnalysisTaskCentrality.cxx:651
 AliAnalysisTaskCentrality.cxx:652
 AliAnalysisTaskCentrality.cxx:653
 AliAnalysisTaskCentrality.cxx:654
 AliAnalysisTaskCentrality.cxx:655
 AliAnalysisTaskCentrality.cxx:656