ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2009, 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 AliAnalysisTaskVertexESD
// AliAnalysisTask to extract from ESD the information for the analysis
// of the primary vertex reconstruction efficiency and resolution
// (for MC events) and distributions (for real data). Three vertices:
// - SPD tracklets
// - ITS+TPC tracks
// - TPC-only tracks
//
// Author: A.Dainese, andrea.dainese@pd.infn.it
//*************************************************************************

#include <TChain.h>
#include <TTree.h>
#include <TNtuple.h>
#include <TBranch.h>
#include <TClonesArray.h>
#include <TObjArray.h>
#include <TH1F.h>
#include <TH2F.h>  
#include <TCanvas.h>
#include <TGraphAsymmErrors.h>
#include <TFile.h>

#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"

#include "AliMultiplicity.h"
#include "AliVertexerTracks.h"
#include "AliESDtrack.h"
#include "AliExternalTrackParam.h"
#include "AliESDVertex.h"
#include "AliVEvent.h"
#include "AliESDInputHandler.h"
#include "AliTrackReference.h"
//#include "AliTriggerAnalysis.h"

#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "AliLog.h"

#include "AliGenEventHeader.h" 
#include "AliAnalysisTaskVertexESD.h"


ClassImp(AliAnalysisTaskVertexESD)

//________________________________________________________________________
AliAnalysisTaskVertexESD::AliAnalysisTaskVertexESD(const char *name) : 
AliAnalysisTaskSE(name), 
  fCheckEventType(kTRUE),
  fReadMC(kFALSE),
  fRecoVtxTPC(kTRUE),
  fRecoVtxITSTPC(kTRUE),
  fRecoVtxITSTPCHalfEvent(kFALSE),
  fOnlyITSTPCTracks(kFALSE),
  fOnlyITSSATracks(kFALSE),
  fFillNtuple(kFALSE),
  fFillTreeBeamSpot(kFALSE),
  fESD(0), 
  fOutput(0), 
  fNtupleVertexESD(0),
  fhSPDVertexX(0),
  fhSPDVertexY(0),
  fhSPDVertexZ(0),
  fhSPDVertexZonly(0),
  fhTRKVertexX(0),
  fhTRKVertexY(0),
  fhTRKVertexZ(0),
  fhTPCVertexX(0),
  fhTPCVertexY(0),
  fhTPCVertexZ(0),
  fhTrackRefs(0),
  fTreeBeamSpot(0),
  fhTriggeredTrklets(0),
  fhSPD3DTrklets(0),
  fhSPDZTrklets(0),
  fhTRKTrklets(0),
  fhTRKcTrklets(0),
  fhTRKncTrklets(0),
  fhTPCTrklets(0),
  fhTPCcTrklets(0),
  fhTPCncTrklets(0),
  fhSPD3DZreco(0),
  fhSPDZZreco(0),
  fhSPDVertexXPile(0),
  fhSPDVertexYPile(0),
  fhSPDVertexZPile(0),
  fhSPDVertexDiffZPileContr2(0),
  fhSPDVertexDiffZPileContr3(0),
  fhSPDVertexDiffZPileContr4(0),
  fhSPDVertexDiffZPileContr5(0),
  fhSPDVertexDiffZPileDefault(0),
  fhSPDContributorsPile(0),
  fhSPDDispContributors(0),
  fTriggerType(AliVEvent::kMB),
  fhntrksSPDvsSPDcls(0),
  fhntrksZvsSPDcls(0)
{
  // Constructor

  // Define input and output slots here
  // Output slot #0 writes into a TList container
  DefineOutput(1, TList::Class());  //My private output
}
//________________________________________________________________________
AliAnalysisTaskVertexESD::~AliAnalysisTaskVertexESD()
{
  // Destructor

  // histograms are in the output list and deleted when the output
  // list is deleted by the TSelector dtor

  if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
    delete fOutput;
    fOutput = 0;
  }
}


//________________________________________________________________________
void AliAnalysisTaskVertexESD::UserCreateOutputObjects()
{
  // Create histograms
  // Called once

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

  fNtupleVertexESD = new TNtuple("fNtupleVertexESD","vertices","run:tstamp:bunchcross:triggered:dndygen:xdiam:ydiam:zdiam:xerrdiam:yerrdiam:zerrdiam:xtrue:ytrue:ztrue:xSPD:xerrSPD:ySPD:yerrSPD:zSPD:zerrSPD:ntrksSPD:SPD3D:dphiSPD:xTPC:xerrTPC:yTPC:yerrTPC:zTPC:zerrTPC:ntrksTPC:constrTPC:xTRK:xerrTRK:yTRK:yerrTRK:zTRK:zerrTRK:ntrksTRK:constrTRK:ntrklets:nESDtracks:nITSrefit5or6:nTPCin:nTPCinEta09:SPD0cls:ispileupfromSPDdefault:xSPDp:xerrSPDp:ySPDp:yerrSPDp:zSPDp:zerrSPDp:ntrksSPDp:xTPCnc:xerrTPCnc:yTPCnc:yerrTPCnc:zTPCnc:zerrTPCnc:ntrksTPCnc:xTPCc:xerrTPCc:yTPCc:yerrTPCc:zTPCc:zerrTPCc:ntrksTPCc:xTRKnc:xerrTRKnc:yTRKnc:yerrTRKnc:zTRKnc:zerrTRKnc:ntrksTRKnc:xTRKc:xerrTRKc:yTRKc:yerrTRKc:zTRKc:zerrTRKc:ntrksTRKc:deltaxTRKnc:deltayTRKnc:deltazTRKnc:deltaxerrTRKnc:deltayerrTRKnc:deltazerrTRKnc:ntrksEvenTRKnc:ntrksOddTRKnc");

  fOutput->Add(fNtupleVertexESD);

  fhSPDVertexX = new TH1F("fhSPDVertexX","SPDVertex x; x vertex [cm]; events",200,-1,1);
  fOutput->Add(fhSPDVertexX);
  fhSPDVertexY = new TH1F("fhSPDVertexY","SPDVertex y; y vertex [cm]; events",200,-1,1);
  fOutput->Add(fhSPDVertexY);
  fhSPDVertexZ = new TH1F("fhSPDVertexZ","SPDVertex z; z vertex [cm]; events",250,-25,25);
  fOutput->Add(fhSPDVertexZ);
  	
  fhSPDVertexZonly = new TH1F("fhSPDVertexZonly","SPDVertexer z; z vertex [cm]; events",250,-25,25);
  fOutput->Add(fhSPDVertexZonly);	
	
  fhTRKVertexX = new TH1F("fhTRKVertexX","TRKVertex x; x vertex [cm]; events",2000,-1,1);
  fOutput->Add(fhTRKVertexX);
  fhTRKVertexY = new TH1F("fhTRKVertexY","TRKVertex y; y vertex [cm]; events",2000,-1,1);
  fOutput->Add(fhTRKVertexY);
  fhTRKVertexZ = new TH1F("fhTRKVertexZ","TRKVertex z; z vertex [cm]; events",250,-25,25);
  fOutput->Add(fhTRKVertexZ);
  fhTPCVertexX = new TH1F("fhTPCVertexX","TPCVertex x; x vertex [cm]; events",200,-3,3);
  fOutput->Add(fhTPCVertexX);
  fhTPCVertexY = new TH1F("fhTPCVertexY","TPCVertex y; y vertex [cm]; events",200,-3,3);
  fOutput->Add(fhTPCVertexY);
  fhTPCVertexZ = new TH1F("fhTPCVertexZ","TPCVertex z; z vertex [cm]; events",250,-25,25);
  fOutput->Add(fhTPCVertexZ);
  
  
  fhSPDVertexXPile = new TH1F("fhSPDVertexXPile","SPDVertexPile x; x vertex [cm]; events",200,-20,20);
  fOutput->Add(fhSPDVertexXPile);
  fhSPDVertexYPile = new TH1F("fhSPDVertexYPile","SPDVertexPile y; y vertex [cm]; events",200,-20,20);
  fOutput->Add(fhSPDVertexYPile);
  fhSPDVertexZPile = new TH1F("fhSPDVertexZPile","SPDVertexPile z; z vertex [cm]; events",200,-40,40);
  fOutput->Add(fhSPDVertexZPile);
  
  fhSPDVertexDiffZPileContr2 = new TH1F("fhSPDVertexDiffZPileContr2","SPDVertexDiff z; zmain - zpile [cm]; events",2000,-100,100);
  fOutput->Add(fhSPDVertexDiffZPileContr2);
  fhSPDVertexDiffZPileContr3 = new TH1F("fhSPDVertexDiffZPileContr3","SPDVertexDiff z; zmain - zpile [cm]; events",2000,-100,100);
  fOutput->Add(fhSPDVertexDiffZPileContr3);
  fhSPDVertexDiffZPileContr4 = new TH1F("fhSPDVertexDiffZPileContr4","SPDVertexDiff z; zmain - zpile [cm]; events",2000,-100,100);
  fOutput->Add(fhSPDVertexDiffZPileContr4);
  fhSPDVertexDiffZPileContr5 = new TH1F("fhSPDVertexDiffZPileContr5","SPDVertexDiff z; zmain - zpile [cm]; events",2000,-100,100);
  fOutput->Add(fhSPDVertexDiffZPileContr5);
  fhSPDVertexDiffZPileDefault = new TH1F("fhSPDVertexDiffZPileDefault","SPDVertexDiff z; zmain - zpile [cm]; events",2000,-100,100);
  fOutput->Add(fhSPDVertexDiffZPileDefault);

  fhTrackRefs = new TH2F("fhTrackRefs","Track references; x; y",1000,-4,4,1000,-4,4);
  fOutput->Add(fhTrackRefs);

  fTreeBeamSpot = new TTree("fTreeBeamSpot", "BeamSpotTree");
  UShort_t triggered, ntrkletsS, ntrksTRKnc;
  UInt_t run, bx;
  Float_t cetTimeLHC,xTRKnc, yTRKnc, zTRKnc;
  fTreeBeamSpot->Branch("run", &run, "run/i");
  fTreeBeamSpot->Branch("cetTimeLHC", &cetTimeLHC, "cetTimeLHC/F");
  fTreeBeamSpot->Branch("bx", &bx, "bx/i");
  fTreeBeamSpot->Branch("triggered", &triggered, "triggered/s");
  fTreeBeamSpot->Branch("ntrkletsS", &ntrkletsS, "ntrkletsS/s");
  fTreeBeamSpot->Branch("xTRKnc", &xTRKnc, "xTRKnc/F");
  fTreeBeamSpot->Branch("yTRKnc", &yTRKnc, "yTRKnc/F");
  fTreeBeamSpot->Branch("zTRKnc", &zTRKnc, "zTRKnc/F");
  fTreeBeamSpot->Branch("ntrksTRKnc", &ntrksTRKnc, "ntrksTRKnc/s");
  fOutput->Add(fTreeBeamSpot);

  Int_t nbinTrklets=29;
  Float_t lowTrklets[30]={-0.5,0.5,1.5,2.5,3.5,4.5,5.5,7.5,10.5,25.5,50.5,75.5,100.5,150.5,200.5,300.5,400.5,500.5,600.5,800.5,1000.5,1500.5,2000.5,2500.5,3000.5,4000.5,5000.5,6000.5,8000.5,10000.5};
  fhTriggeredTrklets = new TH1F("fhTriggeredTrklets","trklets dist for triggered ev.; ntrklets; entries",nbinTrklets,lowTrklets);
  fOutput->Add(fhTriggeredTrklets);
  fhSPD3DTrklets = new TH1F("fhSPD3DTrklets","trklets dist for SPD3D ev.; ntrklets; entries",nbinTrklets,lowTrklets);
  fOutput->Add(fhSPD3DTrklets);
  fhSPDZTrklets = new TH1F("fhSPDZTrklets","trklets dist for SPDZ ev.; ntrklets; entries",nbinTrklets,lowTrklets);
  fOutput->Add(fhSPDZTrklets);
  fhTRKTrklets = new TH1F("fhTRKTrklets","trklets dist for TRK ev.; ntrklets; entries",nbinTrklets,lowTrklets);
  fOutput->Add(fhTRKTrklets);
  fhTRKcTrklets = new TH1F("fhTRKcTrklets","trklets dist for TRKc ev.; ntrklets; entries",nbinTrklets,lowTrklets);
  fOutput->Add(fhTRKcTrklets);
  fhTRKncTrklets = new TH1F("fhTRKncTrklets","trklets dist for TRKnc ev.; ntrklets; entries",nbinTrklets,lowTrklets);
  fOutput->Add(fhTRKncTrklets);
  fhTPCTrklets = new TH1F("fhTPCTrklets","trklets dist for TPC ev.; ntrklets; entries",nbinTrklets,lowTrklets);
  fOutput->Add(fhTPCTrklets);
  fhTPCcTrklets = new TH1F("fhTPCcTrklets","trklets dist for TPCc ev.; ntrklets; entries",nbinTrklets,lowTrklets);
  fOutput->Add(fhTPCcTrklets);
  fhTPCncTrklets = new TH1F("fhTPCncTrklets","trklets dist for TPCnc ev.; ntrklets; entries",nbinTrklets,lowTrklets);
  fOutput->Add(fhTPCncTrklets);
  
  Int_t nbinZreco = 16;
  Double_t lowZreco[17]={-15.0,-10.0,-7.0,-5,-4,-3,-2,-1,0,1,2,3,4,5,7,10,15};
  fhSPD3DZreco = new TH1F("fhSPD3DZreco","Zreco dist for SPD3D ev.; Zreco [cm]; entries",nbinZreco,lowZreco);
  fOutput->Add(fhSPD3DZreco);
  fhSPDZZreco = new TH1F("fhSPDZZreco","Zreco dist for SPDZ ev.; Zreco [cm]; entries",nbinZreco,lowZreco);
  fOutput->Add(fhSPDZZreco);
  
  fhSPDContributorsPile = new TH1F("fhSPDContributorsPile","ncontributors pile up vertex; ncontributors; entries",200,-0.5,199.5);
  fOutput->Add(fhSPDContributorsPile);
  
  fhSPDDispContributors = new TH2F("fhSPDDispContributors","ncontributors main-pile; ncontributors main; ncontributors pile",200,-0.5,199.5,200,-0.5,199.5);
  fOutput->Add(fhSPDDispContributors);
  
  fhntrksSPDvsSPDcls = new TH2F("fhntrksSPDvsSPDcls", "ncontributors SPD3D vs number of cluster SPD; nContributors 3D; nCluster SPD1",300,0.,3000.,400,0.,8000.);
  fOutput->Add(fhntrksSPDvsSPDcls);
	
  fhntrksZvsSPDcls = new TH2F("fhntrksZvsSPDcls", "ncontributors SPDZ vs number of cluster SPD; nContributors Z; nCluster SPD1",300,0.,3000.,400,0.,8000.); 
  fOutput->Add(fhntrksZvsSPDcls);
	
  PostData(1, fOutput);

  return;
}

//________________________________________________________________________
void AliAnalysisTaskVertexESD::UserExec(Option_t *) 
{
  // Main loop
  // Called for each event
  
  if (!InputEvent()) {
    Printf("ERROR: fESD not available");
    return;
  }
  AliESDEvent* esdE = (AliESDEvent*) InputEvent();
  
  // Select PHYSICS events (type=7, for data) and MC events (type=0)
  // fCheckEventType is kFALSE if fReadMC is kTRUE, hence check is skipped
  if(fCheckEventType) {
    if(esdE->GetEventType()!=7 && esdE->GetEventType()!=0) return; 
  }


  TArrayF mcVertex(3);
  mcVertex[0]=9999.; mcVertex[1]=9999.; mcVertex[2]=9999.;
  Float_t dNchdy=-999.;
  // ***********  MC info ***************
  if (fReadMC) {
    AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
    if (!eventHandler) {
      Printf("ERROR: Could not retrieve MC event handler");
      return;
    }
    
    AliMCEvent* mcEvent = eventHandler->MCEvent();
    if (!mcEvent) {
      Printf("ERROR: Could not retrieve MC event");
      return;
    }
    
    AliStack* stack = mcEvent->Stack();
    if (!stack) {
      AliDebug(AliLog::kError, "Stack not available");
      return;
    }
    
    AliHeader* header = mcEvent->Header();
    if (!header) {
      AliDebug(AliLog::kError, "Header not available");
      return;
    }
    AliGenEventHeader* genHeader = header->GenEventHeader();
    genHeader->PrimaryVertex(mcVertex);

    Int_t ngenpart = (Int_t)stack->GetNtrack();
    //printf("# generated particles = %d\n",ngenpart);
    dNchdy=0;
    for(Int_t ip=0; ip<ngenpart; ip++) {
      TParticle* part = (TParticle*)stack->Particle(ip);
      // keep only electorns, muons, pions, kaons and protons
      Int_t apdg = TMath::Abs(part->GetPdgCode());
      if(apdg!=11 && apdg!=13 && apdg!=211 && apdg!=321 && apdg!=2212) continue;      
      // reject secondaries
      if(TMath::Sqrt((part->Vx()-mcVertex[0])*(part->Vx()-mcVertex[0])+(part->Vy()-mcVertex[1])*(part->Vy()-mcVertex[1]))>0.0010) continue;
      // reject incoming protons
      Double_t energy  = part->Energy();
      if(energy>900.) continue;
      Double_t pz = part->Pz();
      Double_t y = 100.;
      if(energy-pz+1.e-13>0.) y = 0.5*TMath::Log((energy+pz+1.e-13)/(energy-pz+1.e-13));
      if(TMath::Abs(y)<1.0) dNchdy += 0.5; // count 1/2 of particles in |y|<1
      // tracks refs
      TClonesArray *trefs=0;
      Int_t ntrefs = mcEvent->GetParticleAndTR(ip,part,trefs);
      if(ntrefs<0) continue;
      for(Int_t iref=0; iref<ntrefs; iref++) {
	AliTrackReference *tref = (AliTrackReference*)trefs->At(iref);
	if(tref->R()>10.) continue;
	fhTrackRefs->Fill(tref->X(),tref->Y());
      }
    }
    //printf("# primary particles = %7.1f\n",dNchdy);
  } 
  // ***********  MC info ***************

    
  // Trigger
  //ULong64_t triggerMask;
  //ULong64_t spdFO = (1 << 14);
  //ULong64_t v0left = (1 << 10);
  //ULong64_t v0right = (1 << 11);
  
  //triggerMask=esdE->GetTriggerMask();
  // MB1: SPDFO || V0L || V0R
  //Bool_t eventTriggered = (triggerMask & spdFO || ((triggerMask & v0left) || (triggerMask & v0right))); 
  //MB2: GFO && V0R
  //triggerMask & spdFO && ((triggerMask&v0left) || (triggerMask&v0right))
  //Bool_t eventTriggered = (triggerMask & spdFO);
 
  //static AliTriggerAnalysis* triggerAnalysis = new AliTriggerAnalysis();
  Bool_t eventTriggered = 0;//triggerAnalysis->IsTriggerFired(esdE, AliTriggerAnalysis::kSPDGFO /*| AliTriggerAnalysis::kOfflineFlag*/); 

  // use response of AliPhysicsSelection
	eventTriggered = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fTriggerType);


  Int_t nInFile = esdE->GetEventNumberInFile();

 const AliMultiplicity *alimult = esdE->GetMultiplicity();
  Int_t ntrklets=0,spd0cls=0, spd1cls=0;
  if(alimult) {
    ntrklets = alimult->GetNumberOfTracklets();

    for(Int_t l=0;l<alimult->GetNumberOfTracklets();l++){
      if(alimult->GetDeltaPhi(l)<-9998.) ntrklets--;
    }
    spd0cls = alimult->GetNumberOfSingleClusters()+ntrklets;
	spd1cls = alimult->GetNumberOfITSClusters(1);
  }


  UShort_t triggered, ntrkletsS, ntrksTRKnc;
  UInt_t run, bx;
  Float_t cetTimeLHC,xTRKnc, yTRKnc, zTRKnc;
  fTreeBeamSpot->SetBranchAddress("run", &run);
  fTreeBeamSpot->SetBranchAddress("cetTimeLHC", &cetTimeLHC);
  fTreeBeamSpot->SetBranchAddress("bx", &bx);
  fTreeBeamSpot->SetBranchAddress("triggered", &triggered);
  fTreeBeamSpot->SetBranchAddress("ntrkletsS", &ntrkletsS);
  fTreeBeamSpot->SetBranchAddress("xTRKnc", &xTRKnc);
  fTreeBeamSpot->SetBranchAddress("yTRKnc", &yTRKnc);
  fTreeBeamSpot->SetBranchAddress("zTRKnc", &zTRKnc);
  fTreeBeamSpot->SetBranchAddress("ntrksTRKnc", &ntrksTRKnc);


  Double_t tstamp = esdE->GetTimeStamp();
  Float_t cetTime =(tstamp-1262304000.)+7200.;

  Float_t cetTime1h =(tstamp-1262304000.)+3600.;

  cetTimeLHC = (Float_t)cetTime1h;

  Int_t ntracks = esdE->GetNumberOfTracks();
  Int_t nITS5or6=0,nTPCin=0,nTPCinEta09=0;
  //printf("Tracks # = %d\n",esdE->GetNumberOfTracks());
  for(Int_t itr=0; itr<ntracks; itr++) {
    AliESDtrack *t = esdE->GetTrack(itr);
    if(t->GetNcls(0)>=5) nITS5or6++;
    Double_t z0; t->GetZAt(0,esdE->GetMagneticField(),z0);
    if(t->GetNcls(1)>0 && TMath::Abs(t->GetD(0,0,esdE->GetMagneticField()))<2.8 && TMath::Abs(z0)<20) {
      nTPCin++;
      if(TMath::Abs(t->GetTgl())<1.5) nTPCinEta09++;
    }
  }


  const AliESDVertex *spdv=esdE->GetPrimaryVertexSPD();
  const AliESDVertex *spdvp=esdE->GetPileupVertexSPD(0);
  const AliESDVertex *tpcv=esdE->GetPrimaryVertexTPC();
  const AliESDVertex *trkv=esdE->GetPrimaryVertexTracks();
  
  // fill histos
  
  if(spdv) {
    if(spdv->GetNContributors()>0) {
      TString title=spdv->GetTitle();
      if(title.Contains("3D")) {
		  fhSPDVertexX->Fill(spdv->GetX());
		  fhSPDVertexY->Fill(spdv->GetY());
		  fhSPDVertexZ->Fill(spdv->GetZ()); 
		  
		  fhntrksSPDvsSPDcls->Fill(spdv->GetNContributors(), spd0cls);
      }
	 if(title.Contains("Z")){
		 fhSPDVertexZonly->Fill(spdv->GetZ());
		 fhntrksZvsSPDcls->Fill(spdv->GetNContributors(), spd1cls);
	 }
	}
  }
	
  if(trkv) {
    if(trkv->GetNContributors()>0) {
      fhTRKVertexX->Fill(trkv->GetX());
      fhTRKVertexY->Fill(trkv->GetY());
      fhTRKVertexZ->Fill(trkv->GetZ());
    }
  }
  
  if(tpcv) {
    if(tpcv->GetNContributors()>0) {
      fhTPCVertexX->Fill(tpcv->GetX());
      fhTPCVertexY->Fill(tpcv->GetY());
      fhTPCVertexZ->Fill(tpcv->GetZ());
    }
  } 


  
   /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  // filling Vertex reco efficiency plots
  
  if(eventTriggered ? 1. : 0.){
    fhTriggeredTrklets->Fill(ntrklets);
    
    if(spdv){
      if(spdv->GetNContributors()>0.5){
	TString spdtitle = spdv->GetTitle();
	if(spdtitle.Contains("vertexer: 3D") ? 1. : 0.){
	  fhSPD3DTrklets->Fill(ntrklets);
	  fhSPD3DZreco->Fill(spdv->GetZ());
	}
	else{
	  fhSPDZTrklets->Fill(ntrklets);
	  fhSPDZZreco->Fill(spdv->GetZ());
	}
      }
    }
    
    if(trkv){
      if(trkv->GetNContributors()>0.5)fhTRKTrklets->Fill(ntrklets);
    }
    if(fRecoVtxITSTPC) {
      AliESDVertex *trkvc = ReconstructPrimaryVertexITSTPC(kTRUE);
      if(trkvc->GetNContributors()>0.5)fhTRKcTrklets->Fill(ntrklets);
      delete trkvc; trkvc=0;
      AliESDVertex *trkvnc = ReconstructPrimaryVertexITSTPC(kFALSE);
      if(trkvnc->GetNContributors()>0.5)fhTRKncTrklets->Fill(ntrklets);
      delete trkvnc; trkvnc=0;
    }
    
    if(tpcv){
      if(tpcv->GetNContributors()>0.5)fhTPCTrklets->Fill(ntrklets);
    }
    if(fRecoVtxTPC) {
	AliESDVertex *tpcvc = ReconstructPrimaryVertexTPC(kTRUE);
	if(tpcvc->GetNContributors()>0.5)fhTPCcTrklets->Fill(ntrklets);
	delete tpcvc; tpcvc=0;
	AliESDVertex *tpcvnc = ReconstructPrimaryVertexTPC(kFALSE);
	if(tpcvnc->GetNContributors()>0.5)fhTPCncTrklets->Fill(ntrklets);
	delete tpcvnc; tpcvnc=0;
      }
  }
  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  
  Float_t xpile=-999.;
  Float_t ypile=-999.;
  Float_t zpile=-999.;
  Float_t expile=-999.;
  Float_t eypile=-999.;
  Float_t ezpile=-999.;
  Int_t ntrkspile=-1;
  Bool_t isPileUpfromSPD=esdE->IsPileupFromSPD();

  if(esdE->GetNumberOfPileupVerticesSPD()>0 && spdvp && spdv){
  
    if(spdvp->GetNContributors()>=2) {
   
      xpile=spdvp->GetX();
      expile=spdvp->GetXRes();
      ypile=spdvp->GetY();
      eypile=spdvp->GetYRes();
      zpile=spdvp->GetZ();
      ezpile=spdvp->GetZRes();
      ntrkspile=spdvp->GetNContributors();  
    
      if (esdE->IsPileupFromSPD(2,0.,3.,2.,5.)){
        
        fhSPDVertexDiffZPileContr2->Fill(spdv->GetZ()-spdvp->GetZ());
        if(spdvp->GetNContributors()>=3) {fhSPDVertexDiffZPileContr3->Fill(spdv->GetZ()-spdvp->GetZ());}
        if(spdvp->GetNContributors()>=4) {fhSPDVertexDiffZPileContr4->Fill(spdv->GetZ()-spdvp->GetZ());}
        if(spdvp->GetNContributors()>=5) {fhSPDVertexDiffZPileContr5->Fill(spdv->GetZ()-spdvp->GetZ());}
        
      }//end IsPileUpFromSPD
      
      if (isPileUpfromSPD){
        
        fhSPDVertexXPile->Fill(spdvp->GetX());
	    fhSPDVertexYPile->Fill(spdvp->GetY());
	    fhSPDVertexZPile->Fill(spdvp->GetZ());
        fhSPDContributorsPile->Fill(spdvp->GetNContributors());
        fhSPDDispContributors->Fill(spdv->GetNContributors(),spdvp->GetNContributors());
        fhSPDVertexDiffZPileDefault->Fill(spdv->GetZ()-spdvp->GetZ());
   
      }
    }
  }
  
  // fill ntuple
  Int_t isize=89;
  Float_t xnt[89]; for(Int_t iii=0;iii<isize;iii++) xnt[iii]=0.;

  Int_t isizeSecNt=9;
  Float_t secnt[9]; for(Int_t iii=0;iii<isizeSecNt;iii++) secnt[iii]=0.;

  Int_t index=0;
  Int_t indexSecNt=0;

  xnt[index++]=(Float_t)esdE->GetRunNumber();
  secnt[indexSecNt++]=(Float_t)esdE->GetRunNumber();
  run = (Int_t)esdE->GetRunNumber();

  xnt[index++]=cetTime; //(Float_t)esdE->GetTimeStamp();
  //secnt[indexSecNt++]=cetTime;
  secnt[indexSecNt++]=cetTime1h;

  xnt[index++]=(Float_t)esdE->GetBunchCrossNumber();
  secnt[indexSecNt++]=(Float_t)esdE->GetBunchCrossNumber();
  bx = (Int_t)esdE->GetBunchCrossNumber();

  xnt[index++]=(eventTriggered ? 1. : 0.);
  secnt[indexSecNt++]=(eventTriggered ? 1. : 0.);
  triggered = (UShort_t)(eventTriggered ? 1 : 0);

  xnt[index++]=(Float_t)dNchdy;
  
  xnt[index++]=(Float_t)esdE->GetDiamondX();
  xnt[index++]=(Float_t)esdE->GetDiamondY();
  xnt[index++]=(Float_t)esdE->GetDiamondZ();
  
  xnt[index++]=(Float_t)(TMath::Sqrt(esdE->GetSigma2DiamondX()));
  xnt[index++]=(Float_t)(TMath::Sqrt(esdE->GetSigma2DiamondY()));
  xnt[index++]=(Float_t)(TMath::Sqrt(esdE->GetSigma2DiamondZ()));
  
  
  xnt[index++]=mcVertex[0];
  xnt[index++]=mcVertex[1];
  xnt[index++]=mcVertex[2];
  
  xnt[index++]=spdv->GetX();
  xnt[index++]=spdv->GetXRes();
  xnt[index++]=spdv->GetY();
  xnt[index++]=spdv->GetYRes();
  xnt[index++]=spdv->GetZ();
  xnt[index++]=spdv->GetZRes();
  xnt[index++]=spdv->GetNContributors();
  TString spdtitle = spdv->GetTitle();
  xnt[index++]=(spdtitle.Contains("vertexer: 3D") ? 1. : 0.);
  xnt[index++]=spdv->GetDispersion();
  
  xnt[index++]=tpcv->GetX();
  xnt[index++]=tpcv->GetXRes();
  xnt[index++]=tpcv->GetY();
  xnt[index++]=tpcv->GetYRes();
  xnt[index++]=tpcv->GetZ();
  xnt[index++]=tpcv->GetZRes();
  xnt[index++]=tpcv->GetNContributors();
  TString tpctitle = tpcv->GetTitle();
  xnt[index++]=(tpctitle.Contains("WithConstraint") ? 1. : 0.);
  
  xnt[index++]=trkv->GetX();
  xnt[index++]=trkv->GetXRes();
  xnt[index++]=trkv->GetY();
  xnt[index++]=trkv->GetYRes();
  xnt[index++]=trkv->GetZ();
  xnt[index++]=trkv->GetZRes();
  xnt[index++]=trkv->GetNContributors();// tpccontrorig;
  TString trktitle = trkv->GetTitle();
  xnt[index++]=(trktitle.Contains("WithConstraint") ? 1. : 0.);  

  xnt[index++]=float(ntrklets);
  secnt[indexSecNt++]=float(ntrklets);
  ntrkletsS = (UShort_t)ntrklets;

  xnt[index++]=float(ntracks);
  xnt[index++]=float(nITS5or6);

  xnt[index++]=float(nTPCin);
  xnt[index++]=float(nTPCinEta09);

  xnt[index++]=spd0cls;
  
  xnt[index++]=Float_t(isPileUpfromSPD);  
  xnt[index++]=xpile;
  xnt[index++]=expile;
  xnt[index++]=ypile;
  xnt[index++]=eypile;
  xnt[index++]=zpile;
  xnt[index++]=ezpile;
  xnt[index++]=(Float_t)ntrkspile;  
    
    
 
  // add recalculated vertices TRK and TPC

  if(fRecoVtxTPC) {
    AliESDVertex *tpcvnc = ReconstructPrimaryVertexTPC(kFALSE);
    xnt[index++]=tpcvnc->GetX();
    xnt[index++]=tpcvnc->GetXRes();
    xnt[index++]=tpcvnc->GetY();
    xnt[index++]=tpcvnc->GetYRes();
    xnt[index++]=tpcvnc->GetZ();
    xnt[index++]=tpcvnc->GetZRes();
    xnt[index++]=tpcvnc->GetNContributors();
    delete tpcvnc; tpcvnc=0;
    
    AliESDVertex *tpcvc = ReconstructPrimaryVertexTPC(kTRUE);
    xnt[index++]=tpcvc->GetX();
    xnt[index++]=tpcvc->GetXRes();
    xnt[index++]=tpcvc->GetY();
    xnt[index++]=tpcvc->GetYRes();
    xnt[index++]=tpcvc->GetZ();
    xnt[index++]=tpcvc->GetZRes();
    xnt[index++]=tpcvc->GetNContributors();
    delete tpcvc; tpcvc=0;
  } else index+=14;

  if(fRecoVtxITSTPC) {
    AliESDVertex *trkvnc = ReconstructPrimaryVertexITSTPC(kFALSE);
    xnt[index++]=trkvnc->GetX();
    xnt[index++]=trkvnc->GetXRes();
    xnt[index++]=trkvnc->GetY();
    xnt[index++]=trkvnc->GetYRes();
    xnt[index++]=trkvnc->GetZ();
    xnt[index++]=trkvnc->GetZRes();
    xnt[index++]=trkvnc->GetNContributors();
  
    secnt[indexSecNt++]=trkvnc->GetX();
    secnt[indexSecNt++]=trkvnc->GetY();
    secnt[indexSecNt++]=trkvnc->GetZ();
    secnt[indexSecNt++]=trkvnc->GetNContributors();

    xTRKnc = (Float_t)trkvnc->GetX();
    yTRKnc = (Float_t)trkvnc->GetY();
    zTRKnc = (Float_t)trkvnc->GetZ();
    ntrksTRKnc = (trkvnc->GetNContributors()<0 ? 0 : (UShort_t)trkvnc->GetNContributors());

    delete trkvnc; trkvnc=0;


    AliESDVertex *trkvc = ReconstructPrimaryVertexITSTPC(kTRUE);
    xnt[index++]=trkvc->GetX();
    xnt[index++]=trkvc->GetXRes();
    xnt[index++]=trkvc->GetY();
    xnt[index++]=trkvc->GetYRes();
    xnt[index++]=trkvc->GetZ();
    xnt[index++]=trkvc->GetZRes();
    xnt[index++]=trkvc->GetNContributors();
    delete trkvc; trkvc=0;
  } else index+=14;
  
  if(fRecoVtxITSTPCHalfEvent) {
    AliESDVertex *trkvncodd  = ReconstructPrimaryVertexITSTPC(kFALSE,1);
    AliESDVertex *trkvnceven = ReconstructPrimaryVertexITSTPC(kFALSE,2);
    if(trkvncodd->GetNContributors()>0 && 
       trkvnceven->GetNContributors()>0) {
      xnt[index++]=trkvncodd->GetX()-trkvnceven->GetX();
      xnt[index++]=trkvncodd->GetY()-trkvnceven->GetY();
      xnt[index++]=trkvncodd->GetZ()-trkvnceven->GetZ();
      xnt[index++]=TMath::Sqrt(trkvncodd->GetXRes()*trkvncodd->GetXRes()+trkvnceven->GetXRes()*trkvnceven->GetXRes());
      xnt[index++]=TMath::Sqrt(trkvncodd->GetYRes()*trkvncodd->GetYRes()+trkvnceven->GetYRes()*trkvnceven->GetYRes());
      xnt[index++]=TMath::Sqrt(trkvncodd->GetZRes()*trkvncodd->GetZRes()+trkvnceven->GetZRes()*trkvnceven->GetZRes());
      xnt[index++]=trkvnceven->GetNContributors();
      xnt[index++]=trkvncodd->GetNContributors();
    } else {
      xnt[index++]=0.;
      xnt[index++]=0.;
      xnt[index++]=0.;
      xnt[index++]=0.;
      xnt[index++]=0.;
      xnt[index++]=0.;
      xnt[index++]=-1;
      xnt[index++]=-1;
    }
    delete trkvncodd; trkvncodd=0;
    delete trkvnceven; trkvnceven=0;    
  } else index+=8;
  

  if(index>isize) printf("AliAnalysisTaskVertexESD: ERROR, index!=isize\n");
  if(fFillNtuple) fNtupleVertexESD->Fill(xnt);

  if(indexSecNt>isizeSecNt) printf("AliAnalysisTaskVertexESD: ERROR, indexSecNt!=isizeSecNt\n");

  // if(indexTree>isizeTree) printf("AliAnalysisTaskVertexESD: ERROR, indexTree!=isizeTree\n");
  // only every second event (to reduce output size)
  if(fFillTreeBeamSpot && (nInFile%2 == 0)) fTreeBeamSpot->Fill();

  
  // Post the data already here
  PostData(1, fOutput);

  return;
}      

//________________________________________________________________________
void AliAnalysisTaskVertexESD::Terminate(Option_t *) 
{
  // Draw result to the screen
  // Called once at the end of the query
  fOutput = dynamic_cast<TList*> (GetOutputData(1));
  if (!fOutput) {     
    Printf("ERROR: fOutput not available");
    return;
  }
  
  //////////////////////////////////////////////////////
  /*  
  TH1F *fhTriggeredTrklets=(TH1F*)fOutput->FindObject("fhTriggeredTrklets");
  TH1F *fhSPDZTrklets=(TH1F*)fOutput->FindObject("fhSPDZTrklets");
  TH1F *fhSPD3DTrklets=(TH1F*)fOutput->FindObject("fhSPD3DTrklets");
  TH1F *fhTRKTrklets=(TH1F*)fOutput->FindObject("fhTRKTrklets");
  TH1F *fhTRKcTrklets=(TH1F*)fOutput->FindObject("fhTRKcTrklets");
  TH1F *fhTRKncTrklets=(TH1F*)fOutput->FindObject("fhTRKncTrklets");
  TH1F *fhSPDZZreco=(TH1F*)fOutput->FindObject("fhSPDZZreco");
  TH1F *fhSPD3DZreco=(TH1F*)fOutput->FindObject("fhSPD3DZreco");
  
  TGraphAsymmErrors *fhSPDZEffTrklets=new TGraphAsymmErrors(fhSPDZTrklets,fhTriggeredTrklets,"w");
  fhSPDZEffTrklets->SetName("fhSPDZEffTrklets");
  fhSPDZEffTrklets->SetDrawOption("AP");
  TGraphAsymmErrors *fhSPD3DEffTrklets=new TGraphAsymmErrors(fhSPD3DTrklets,fhTriggeredTrklets,"w");
  fhSPD3DEffTrklets->SetName("fhSPD3DEffTrklets");
  TH1F * fhSPDOverallTrklets=(TH1F*)fhSPDZTrklets->Clone("fhSPDOverallTrklets");
  fhSPDOverallTrklets->Add(fhSPD3DTrklets);
  TGraphAsymmErrors *fhSPDOverallEffTrklets=new TGraphAsymmErrors(fhSPDOverallTrklets,fhTriggeredTrklets,"w");
  fhSPDOverallEffTrklets->SetName("fhSPDOverallEffTrklets");
  TGraphAsymmErrors *fhTRKEffTrklets=new TGraphAsymmErrors(fhTRKTrklets,fhTriggeredTrklets,"w");
  fhTRKEffTrklets->SetName("fhTRKEffTrklets");
  TGraphAsymmErrors *fhTRKcEffTrklets=new TGraphAsymmErrors(fhTRKcTrklets,fhTriggeredTrklets,"w");
  fhTRKcEffTrklets->SetName("fhTRKcEffTrklets");
  TGraphAsymmErrors *fhTRKncEffTrklets=new TGraphAsymmErrors(fhTRKncTrklets,fhTriggeredTrklets,"w");
  fhTRKncEffTrklets->SetName("fhTRKncEffTrklets");
  TH1F * fhSPDOverallZreco=(TH1F*)fhSPDZZreco->Clone("fhSPDOverallZreco");
  fhSPDOverallZreco->Add(fhSPD3DZreco);
  TGraphAsymmErrors *fhSPDEffZreco=new TGraphAsymmErrors(fhSPD3DZreco,fhSPDOverallZreco,"w");
  fhSPDEffZreco->SetName("fhSPDEffZreco");

  TH1F *fhEff = new TH1F("hEff","hEff",6,0.5,6.5);
  Int_t count=1;
  if(fhSPDZTrklets->GetEntries()!=0 && fhTriggeredTrklets->GetEntries()!=0){
    fhEff->Fill(count,fhSPDZTrklets->GetEntries()/fhTriggeredTrklets->GetEntries());
    fhEff->SetBinError(count,fhEff->GetBinContent(count)*TMath::Sqrt(1/fhSPDZTrklets->GetEntries()+1/fhTriggeredTrklets->GetEntries()));
  }
  fhEff->GetXaxis()->SetBinLabel(count,"SPDZ");
  
  count++;
  if(fhSPD3DTrklets->GetEntries()!=0 && fhTriggeredTrklets->GetEntries()!=0){
    fhEff->Fill(count,fhSPD3DTrklets->GetEntries()/fhTriggeredTrklets->GetEntries());
    fhEff->SetBinError(count,fhEff->GetBinContent(count)*TMath::Sqrt(1/fhSPD3DTrklets->GetEntries()+1/fhTriggeredTrklets->GetEntries()));
  }
  fhEff->GetXaxis()->SetBinLabel(count,"SPD3D");
  
  count++;
  if(fhSPDOverallTrklets->GetEntries()!=0 && fhTriggeredTrklets->GetEntries()!=0){
    fhEff->Fill(count,fhSPDOverallTrklets->GetEntries()/fhTriggeredTrklets->GetEntries());
    fhEff->SetBinError(count,fhEff->GetBinContent(count)*TMath::Sqrt(1/fhSPDOverallTrklets->GetEntries()+1/fhTriggeredTrklets->GetEntries()));
  }
  fhEff->GetXaxis()->SetBinLabel(count,"SPD Overall");
  
  count++;
  if(fhTRKTrklets->GetEntries()!=0 && fhTriggeredTrklets->GetEntries()!=0){
    fhEff->Fill(count,fhTRKTrklets->GetEntries()/fhTriggeredTrklets->GetEntries());
    fhEff->SetBinError(count,fhEff->GetBinContent(count)*TMath::Sqrt(1/fhTRKTrklets->GetEntries()+1/fhTriggeredTrklets->GetEntries()));
  }
  fhEff->GetXaxis()->SetBinLabel(count,"TRK");
  
  count++;
  if(fhTRKcTrklets->GetEntries()!=0 && fhTriggeredTrklets->GetEntries()!=0){
    fhEff->Fill(count,fhTRKcTrklets->GetEntries()/fhTriggeredTrklets->GetEntries());
    fhEff->SetBinError(count,fhEff->GetBinContent(count)*TMath::Sqrt(1/fhTRKcTrklets->GetEntries()+1/fhTriggeredTrklets->GetEntries()));
  }
  fhEff->GetXaxis()->SetBinLabel(count,"TRKc");
  
  count++;
  if(fhTRKncTrklets->GetEntries()!=0 && fhTriggeredTrklets->GetEntries()!=0){
    fhEff->Fill(count,fhTRKncTrklets->GetEntries()/fhTriggeredTrklets->GetEntries());
    fhEff->SetBinError(count,fhEff->GetBinContent(count)*TMath::Sqrt(1/fhTRKncTrklets->GetEntries()+1/fhTriggeredTrklets->GetEntries()));
  }
  fhEff->GetXaxis()->SetBinLabel(count,"TRKnc");
  
  count++;
  fhEff->Print("all");
  
  TFile* fileEff = new TFile("VtxEff.root","recreate");
  fhSPDZEffTrklets->Write();
  fhSPD3DEffTrklets->Write();
  fhSPDOverallEffTrklets->Write();
  fhTRKEffTrklets->Write();
  fhTRKcEffTrklets->Write();
  fhTRKncEffTrklets->Write();
  fhSPDEffZreco->Write();
  fhEff->Write();
  fileEff->Close();
  delete fileEff;
  
  /////////////////////////////////////////
  */


  if (!fNtupleVertexESD){
    Printf("ERROR: fNtuple not available");
    return;
  }
  
  fNtupleVertexESD = dynamic_cast<TNtuple*>(fOutput->FindObject("fNtupleVertexESD"));


  return;
}

//_________________________________________________________________________
AliESDVertex* AliAnalysisTaskVertexESD::ReconstructPrimaryVertexTPC(Bool_t constr) const {
  // On the fly reco of TPC vertex from ESD
  AliESDEvent* evt = (AliESDEvent*) fInputEvent;
  AliVertexerTracks vertexer(evt->GetMagneticField());
  if(evt->GetNumberOfTracks()<500) {
    vertexer.SetTPCMode(); // defaults
  } else { 
    vertexer.SetTPCMode(0.1,1.0,5.0,10,1,3.,0.1,1.5,3.,30.,1,1);// PbPb
  } 
  Float_t diamondcovxy[3]; evt->GetDiamondCovXY(diamondcovxy);
  Double_t pos[3]={evt->GetDiamondX(),evt->GetDiamondY(),0}; 
  Double_t cov[6]={diamondcovxy[0],diamondcovxy[1],diamondcovxy[2],0.,0.,10.*10.};
  if (cov[0]<1e-10) cov[0] = 1e-2; // dummy error of 1mm
  if (cov[2]<1e-10) cov[2] = 1e-2; // dummy error of 1mm
  AliESDVertex *initVertex = new AliESDVertex(pos,cov,1.,1);
  vertexer.SetVtxStart(initVertex);
  delete initVertex;
  if(!constr) vertexer.SetConstraintOff();

  return vertexer.FindPrimaryVertex(evt);
}

//_________________________________________________________________________
AliESDVertex* AliAnalysisTaskVertexESD::ReconstructPrimaryVertexITSTPC(Bool_t constr,Int_t mode) const {
  // On the fly reco of ITS+TPC vertex from ESD
  // mode=0 use all tracks
  // mode=1 use odd-number tracks
  // mode=2 use even-number tracks

  AliESDEvent* evt = (AliESDEvent*) fInputEvent;
  AliVertexerTracks vertexer(evt->GetMagneticField());
  if(evt->GetNumberOfTracks()<500) {
    vertexer.SetITSMode(); // defaults
    vertexer.SetMinClusters(3); // default is 5
  } else { 
    vertexer.SetITSMode(0.1,0.1,0.5,5,1,3.,100.,1000.,3.,30.,1,1);// PbPb
  } 
  //vertexer.SetITSpureSA();
  Float_t diamondcovxy[3]; evt->GetDiamondCovXY(diamondcovxy);
  Double_t pos[3]={evt->GetDiamondX(),evt->GetDiamondY(),0}; 
  Double_t cov[6]={diamondcovxy[0],diamondcovxy[1],diamondcovxy[2],0.,0.,10.*10.};
  if (cov[0]<1e-10) cov[0] = 1e-2; // dummy error of 1mm
  if (cov[2]<1e-10) cov[2] = 1e-2; // dummy error of 1mm
  AliESDVertex *initVertex = new AliESDVertex(pos,cov,1.,1);
  vertexer.SetVtxStart(initVertex);
  delete initVertex;
  if(!constr) vertexer.SetConstraintOff();

  // use only ITS-TPC or only ITS-SA tracks
  if(fOnlyITSTPCTracks || fOnlyITSSATracks || mode>0) {
    Int_t iskip=0;
    Int_t ntracks = evt->GetNumberOfTracks();
    Int_t *skip = new Int_t[ntracks];
    for(Int_t i=0;i<ntracks;i++) skip[i]=-1;
    for(Int_t itr=0;itr<ntracks; itr++) {
      AliESDtrack* track = evt->GetTrack(itr);
      if(fOnlyITSTPCTracks && track->GetNcls(1)==0) { // skip ITSSA
	skip[iskip++]=itr;
	continue;
      }
      if(fOnlyITSSATracks && track->GetNcls(1)>0) { // skip ITSTPC
	skip[iskip++]=itr;
	continue;
      }
      if(mode==1 && itr%2==0) skip[iskip++]=itr;
      if(mode==2 && itr%2==1) skip[iskip++]=itr;
    }
    vertexer.SetSkipTracks(iskip,skip);
    delete [] skip; skip=NULL;
  }

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