ROOT logo
/* $Id: AliAnalysisTaskPi0V2.cxx 55404 2012-03-29 10:10:19Z fca $ */

#include "AliAnalysisTaskPi0V2.h"

#include <Riostream.h>
#include <TCanvas.h>
#include <TChain.h>
#include <TClonesArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>
#include <THnSparse.h>
#include <TList.h>
#include <TProfile.h>
#include <TString.h>
#include <TTree.h>
#include <TRandom3.h>

#include "AliAODEvent.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisTaskSE.h"
#include "AliEMCALGeometry.h"
#include "AliEPFlattener.h"
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDtrackCuts.h"
#include "AliEventplane.h"
#include "AliMCEvent.h"
#include "AliOADBContainer.h"
#include "AliStack.h"
#include "AliVCluster.h"

using std::cout;
using std::endl;

ClassImp(AliAnalysisTaskPi0V2)

//________________________________________________________________________
AliAnalysisTaskPi0V2::AliAnalysisTaskPi0V2(const char *name) :
  AliAnalysisTaskSE(name),
  fOutput(0),
  fESD(0),fAOD(0),
  fTracksName("PicoTrack"), fV1ClusName("CaloCluster"), fV2ClusName("CaloCluster"),
  fTrigClass("CVLN_|CSEMI_|CCENT|CVHN"),
  fTracks(0), fV1Clus(0), fV2Clus(0),
  fRunNumber(-999),fInterRunNumber(-999),
  fVtxCut(15.),
  fNcellCut(2.), fECut(1.), fEtaCut(0.65), fM02Cut(0.5),fDrCut(0.025), fPi0AsyCut(0), isV1Clus(1), isPhosCali(0), isCentFlat(0), isFullHist(0),
  fCentrality(99.),
  fEPTPC(-999.),
  fEPTPCreso(0.), 
  fEPV0(-999.), fEPV0A(-999.), fEPV0C(-999.), fEPV0Ar(-999.), fEPV0Cr(-999.), fEPV0r(-999.),
  fEPV0AR4(-999.), fEPV0AR5(-999.), fEPV0AR6(-999.), fEPV0AR7(-999.), fEPV0CR0(-999.), fEPV0CR1(-999.), fEPV0CR2(-999.), fEPV0CR3(-999.),
  hEvtCount(0), hCent(0), 
  h2DcosV0A(0), h2DsinV0A(0), h2DcosV0C(0), h2DsinV0C(0), h2DcosTPC(0), h2DsinTPC(0), 
  hEPTPC(0), hresoTPC(0),
  hEPV0(0), hEPV0A(0), hEPV0C(0), hEPV0Ar(0), hEPV0Cr(0), hEPV0r(0), hEPV0AR4(0), hEPV0AR7(0), hEPV0CR0(0), hEPV0CR3(0),
  hEPTPCCor(0), hEPV0ACor(0), hEPV0CCor(0),
  hdifV0Ar_V0Cr(0), hdifV0A_V0CR0(0), hdifV0A_V0CR3(0), hdifV0ACR0_V0CR3(0), hdifV0C_V0AR4(0), hdifV0C_V0AR7(0), hdifV0AR4_V0AR7(0),
  hdifV0A_V0C(0), hdifV0A_TPC(0), hdifV0C_TPC(0), hdifV0C_V0A(0), 
  hM02vsPtA(0), hM02vsPtB(0), hClusDxDZA(0), hClusDxDZB(0),
  hdifEMC_EPV0A(0), hdifEMC_EPV0C(0), 
  hdifful_EPV0A(0), hdifful_EPV0C(0), 
  hdifout_EPV0A(0), hdifout_EPV0C(0), 
  hCv2EMC_EPV0A(0), hCv2EMC_EPV0C(0), hCv2ful_EPV0A(0), hCv2ful_EPV0C(0), hCv2out_EPV0A(0), hCv2out_EPV0C(0),
  hclusDif_EPV0A(0), hclusDif_EPV0C(0), hclusv2_EPV0A(0), hclusv2_EPV0C(0),
  fEPcalibFileName("$ALICE_ROOT/OADB/PHOS/PHOSflat.root"), fTPCFlat(0x0), fV0AFlat(0x0),  fV0CFlat(0x0),
  fClusterPbV0(0), fClusterPbV0A(0), fClusterPbV0C(0), fClusterPbTPC(0),    
  fHEPV0A(0x0), fHEPV0C(0x0), fHEPTPC(0x0),
  fHEPV0AM2(0x0), fHEPV0CM2(0x0), fHEPTPCM2(0x0)
{
  // Dummy constructor ALWAYS needed for I/O.
  DefineInput(0, TChain::Class());
  DefineOutput(1, TList::Class());                                            // for output list
}

//________________________________________________________________________
AliAnalysisTaskPi0V2::AliAnalysisTaskPi0V2() :
  AliAnalysisTaskSE("default_name"),
  fOutput(0),
  fESD(0),fAOD(0),
  fTracksName("PicoTrack"), fV1ClusName("CaloCluster"), fV2ClusName("CaloCluster"),
  fTrigClass("CVLN_|CSEMI_|CCENT|CVHN"),
  fTracks(0), fV1Clus(0), fV2Clus(0),
  fRunNumber(-999),fInterRunNumber(-999),
  fVtxCut(15.),
  fNcellCut(2.), fECut(1.), fEtaCut(0.65), fM02Cut(0.5), fDrCut(0.025), fPi0AsyCut(0), isV1Clus(1),isPhosCali(0),isCentFlat(0), isFullHist(0),
  fCentrality(99.),
  fEPTPC(-999.),
  fEPTPCreso(0.),
  fEPV0(-999.), fEPV0A(-999.), fEPV0C(-999.), fEPV0Ar(-999.), fEPV0Cr(-999.), fEPV0r(-999.),
  fEPV0AR4(-999.), fEPV0AR5(-999.), fEPV0AR6(-999.), fEPV0AR7(-999.), fEPV0CR0(-999.), fEPV0CR1(-999.), fEPV0CR2(-999.), fEPV0CR3(-999.),
  hEvtCount(0), hCent(0),
  h2DcosV0A(0), h2DsinV0A(0), h2DcosV0C(0), h2DsinV0C(0), h2DcosTPC(0), h2DsinTPC(0),
  hEPTPC(0), hresoTPC(0),
  hEPV0(0), hEPV0A(0), hEPV0C(0), hEPV0Ar(0), hEPV0Cr(0), hEPV0r(0), hEPV0AR4(0), hEPV0AR7(0), hEPV0CR0(0), hEPV0CR3(0),
  hEPTPCCor(0), hEPV0ACor(0), hEPV0CCor(0),
  hdifV0Ar_V0Cr(0), hdifV0A_V0CR0(0), hdifV0A_V0CR3(0), hdifV0ACR0_V0CR3(0), hdifV0C_V0AR4(0), hdifV0C_V0AR7(0), hdifV0AR4_V0AR7(0),
  hdifV0A_V0C(0), hdifV0A_TPC(0), hdifV0C_TPC(0), hdifV0C_V0A(0),
  hM02vsPtA(0), hM02vsPtB(0), hClusDxDZA(0), hClusDxDZB(0),
  hdifEMC_EPV0A(0), hdifEMC_EPV0C(0), 
  hdifful_EPV0A(0), hdifful_EPV0C(0),
  hdifout_EPV0A(0), hdifout_EPV0C(0), 
  hCv2EMC_EPV0A(0), hCv2EMC_EPV0C(0), hCv2ful_EPV0A(0), hCv2ful_EPV0C(0), hCv2out_EPV0A(0), hCv2out_EPV0C(0),
  hclusDif_EPV0A(0), hclusDif_EPV0C(0), hclusv2_EPV0A(0), hclusv2_EPV0C(0),
  fEPcalibFileName("$ALICE_ROOT/OADB/PHOS/PHOSflat.root"), fTPCFlat(0x0), fV0AFlat(0x0),  fV0CFlat(0x0),
  fClusterPbV0(0), fClusterPbV0A(0), fClusterPbV0C(0), fClusterPbTPC(0),    
  fHEPV0A(0x0), fHEPV0C(0x0), fHEPTPC(0x0),
  fHEPV0AM2(0x0), fHEPV0CM2(0x0), fHEPTPCM2(0x0)
{
  // Constructor
  // Define input and output slots here (never in the dummy constructor)
  // Input slot #0 works with a TChain - it is connected to the default input container
  // Output slot #1 writes into a TH1 container
  DefineInput(0, TChain::Class());
  DefineOutput(1, TList::Class());                                            // for output list
}

//________________________________________________________________________
AliAnalysisTaskPi0V2::~AliAnalysisTaskPi0V2()
{
  // Destructor. Clean-up the output list, but not the histograms that are put inside
  // (the list is owner and will clean-up these histograms). Protect in PROOF case.
  if (fTPCFlat) 
    delete fTPCFlat;  
  fTPCFlat=0x0;
  if (fV0AFlat) 
    delete fV0AFlat;  
  fV0AFlat=0x0;
  if (fV0CFlat) 
    delete fV0CFlat;  
  fV0CFlat=0x0;
  delete fOutput;
}

//_____________________________________________________________________
Double_t AliAnalysisTaskPi0V2::GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const
{
  // Get maximum energy of attached cell.

  id = -1;

  AliVCaloCells *cells = 0;
  if (fESD) {
    cells = fESD->GetEMCALCells();
  } else {
    cells = fAOD->GetEMCALCells();
  }
  if (!cells)
    return 0;

  Double_t maxe = 0;
  const Int_t ncells = cluster->GetNCells();
  for (Int_t i=0; i<ncells; i++) {
    Double_t e = cells->GetCellAmplitude(TMath::Abs(cluster->GetCellAbsId(i)));
    if (e>maxe) {
      maxe = e;
      id   = cluster->GetCellAbsId(i);
    }
  }
  return maxe;
}

//_____________________________________________________________________
Double_t AliAnalysisTaskPi0V2::GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax) const
{
  // Calculate the energy of cross cells around the leading cell.

  AliVCaloCells *cells;
  if (fESD) {
    cells = fESD->GetEMCALCells();
  } else {
    cells = fAOD->GetEMCALCells();
  }
  if (!cells)
    return 0;

  AliEMCALGeometry *geom = AliEMCALGeometry::GetInstance();
  if (!geom)
    return 0;

  Int_t iSupMod = -1;
  Int_t iTower  = -1;
  Int_t iIphi   = -1;
  Int_t iIeta   = -1;
  Int_t iphi    = -1;
  Int_t ieta    = -1;
  Int_t iphis   = -1;
  Int_t ietas   = -1;

  Double_t crossEnergy = 0.;

  geom->GetCellIndex(idmax,iSupMod,iTower,iIphi,iIeta);
  geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi, iIeta,iphis,ietas);

  Int_t ncells = cluster->GetNCells();
  for (Int_t i=0; i<ncells; i++) {
    Int_t cellAbsId = cluster->GetCellAbsId(i);
    geom->GetCellIndex(cellAbsId,iSupMod,iTower,iIphi,iIeta);
    geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi, iIeta,iphi,ieta);
    Int_t aphidiff = TMath::Abs(iphi-iphis);
    if (aphidiff>1)
      continue;
    Int_t aetadiff = TMath::Abs(ieta-ietas);
    if (aetadiff>1)
      continue;
    if ( (aphidiff==1 && aetadiff==0) ||
        (aphidiff==0 && aetadiff==1) ) {
      crossEnergy += cells->GetCellAmplitude(cellAbsId);
    }
  }

  return crossEnergy;
}

//_____________________________________________________________________
Bool_t AliAnalysisTaskPi0V2::IsWithinFiducialVolume(Short_t id) const
{
  // Check if cell is within given fiducial volume.

  Double_t fNFiducial = 1;

  Int_t iSupMod = -1;
  Int_t iTower  = -1;
  Int_t iIphi   = -1;
  Int_t iIeta   = -1;
  Int_t iphi    = -1;
  Int_t ieta    = -1;

  Bool_t okrow = kFALSE;
  Bool_t okcol = kFALSE;

  AliEMCALGeometry *geom = AliEMCALGeometry::GetInstance();
  if (!geom)
    return kFALSE;

  Int_t cellAbsId = id;
  geom->GetCellIndex(cellAbsId,iSupMod,iTower,iIphi,iIeta);
  geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi, iIeta,iphi,ieta);

  // Check rows/phi
  if (iSupMod < 10) {
    if (iphi >= fNFiducial && iphi < 24-fNFiducial)
      okrow = kTRUE;
  } else {
    if (iphi >= fNFiducial && iphi < 12-fNFiducial)
      okrow = kTRUE;
  }
  // Check columns/eta
  Bool_t noEMCALBorderAtEta0 = kTRUE;
  if (!noEMCALBorderAtEta0) {
    if (ieta > fNFiducial && ieta < 48-fNFiducial)
      okcol = kTRUE;
  } else {
    if (iSupMod%2==0) {
      if (ieta >= fNFiducial)
        okcol = kTRUE;
    } else {
      if (ieta < 48-fNFiducial)
        okcol = kTRUE;
    }
  }
  if (okrow && okcol)
     return kTRUE;

  return kFALSE;
}

//______________________________________________________________________
Bool_t AliAnalysisTaskPi0V2::IsGoodCluster(const AliVCluster *c) const
{
  if (!c)
    return kFALSE;

  if(c->GetNCells() < fNcellCut)
   return kFALSE;

  if(c->E() < fECut)
   return kFALSE;
  Short_t id = -1;
  Double_t maxE = GetMaxCellEnergy(c, id); 
     if((1. - double(GetCrossEnergy(c,id))/maxE) > 0.97)
    return kFALSE;


  Float_t pos1[3];
  c->GetPosition(pos1);
  TVector3 clsPos(pos1);
  Double_t eta = clsPos.Eta();

  if (TMath::Abs(eta) > fEtaCut)
    return kFALSE;  

  if (!IsWithinFiducialVolume(id))
    return kFALSE;

  if(c->GetM02() >fM02Cut)
    return kFALSE;


  return kTRUE;

}
//________________________________________________________________________________________________
Bool_t AliAnalysisTaskPi0V2::IsGoodClusterV1(const AliVCluster *c) const
{
  if (!c)
    return kFALSE;

  if (c->GetNCells() < fNcellCut)
   return kFALSE;

  if (c->E() < fECut)
   return kFALSE;

  Short_t id = -1;
  Double_t maxE = GetMaxCellEnergy(c, id);
  if((1. - double(GetCrossEnergy(c,id))/maxE) > 0.97)
    return kFALSE;


  Float_t pos1[3];
  c->GetPosition(pos1);
  TVector3 clsPos(pos1);
  Double_t eta = clsPos.Eta();

  if (TMath::Abs(eta) > fEtaCut)
    return kFALSE;

  if (!IsWithinFiducialVolume(id))
    return kFALSE;

  if (c->GetM02() <fM02Cut)
    return kFALSE;

  Double_t dr = TMath::Sqrt(c->GetTrackDx()*c->GetTrackDx() + c->GetTrackDz()*c->GetTrackDz());
  if(dr<fDrCut)
    return kFALSE;

  return kTRUE;
}

//_____________________________________________________________________
Bool_t AliAnalysisTaskPi0V2::IsGoodPion(const TLorentzVector &p1, const TLorentzVector &p2) const
{
  // Is good pion?

  if(fPi0AsyCut){
    Double_t asym = TMath::Abs(p1.E()-p2.E())/(p1.E()+p2.E());
    if (asym>0.7)
      return kFALSE;
  }
  TLorentzVector pion;
  pion = p1 + p2;
  Double_t eta = pion.Eta();
  if(TMath::Abs(eta) > fEtaCut)
    return kFALSE;

  return kTRUE;
}

//_______________________________________________________________________
void AliAnalysisTaskPi0V2::FillPion(const TLorentzVector& p1, const TLorentzVector& p2, Double_t EPV0A, Double_t EPV0C, Double_t EPTPC)
{
  // Fill histogram.

  if (!IsGoodPion(p1,p2))
    return;
  TLorentzVector pion;
  pion = p1 + p2;

  Double_t mass = pion.M();
  Double_t pt   = pion.Pt();
  Double_t phi  = pion.Phi();

  Double_t dphiV0A  = phi-EPV0A;
  Double_t dphiV0C  = phi-EPV0C;
  Double_t dphiTPC  = phi-EPTPC;

  Double_t cos2phiV0A = TMath::Cos(2.*(dphiV0A));
  Double_t cos2phiV0C = TMath::Cos(2.*(dphiV0C));
  Double_t cos2phiTPC = TMath::Cos(2.*(dphiTPC));

  while(dphiV0A<0.) dphiV0A+=TMath::Pi();  while(dphiV0A>TMath::Pi()) dphiV0A-=TMath::Pi();
  while(dphiV0C<0.) dphiV0C+=TMath::Pi();  while(dphiV0C>TMath::Pi()) dphiV0C-=TMath::Pi();
  while(dphiTPC<0.) dphiTPC+=TMath::Pi();  while(dphiTPC>TMath::Pi()) dphiTPC-=TMath::Pi();


  Double_t xV0A[4]; // Match ndims in fH V0A EP for method 1
  xV0A[0]       = mass;
  xV0A[1]       = pt;
  xV0A[2]       = fCentrality;
  xV0A[3]       = dphiV0A;
  fHEPV0A->Fill(xV0A);


  Double_t xV0AM2[4]; // Match ndims in fH V0A EP for method 2
  xV0AM2[0]       = mass;
  xV0AM2[1]       = pt;
  xV0AM2[2]       = fCentrality;
  xV0AM2[3]       = cos2phiV0A;
  fHEPV0AM2->Fill(xV0AM2);


  Double_t xV0C[4]; // Match ndims in fH V0C EP for method 1
  xV0C[0]       = mass;
  xV0C[1]       = pt;
  xV0C[2]       = fCentrality;
  xV0C[3]       = dphiV0C;
  fHEPV0C->Fill(xV0C);

  Double_t xV0CM2[4]; // Match ndims in fH V0C EP for method 2
  xV0CM2[0]       = mass;
  xV0CM2[1]       = pt;
  xV0CM2[2]       = fCentrality;
  xV0CM2[3]       = cos2phiV0C;
  fHEPV0CM2->Fill(xV0CM2);


  if (fEPTPC!=-999.){
    Double_t xTPC[4]; // Match ndims in fH TPC EP for method 1
    xTPC[0]       = mass;
    xTPC[1]       = pt;
    xTPC[2]       = fCentrality;
    xTPC[3]       = dphiTPC;
    fHEPTPC->Fill(xTPC);

    Double_t xTPCM2[4]; // Match ndims in fH TPC EP
    xTPCM2[0]       = mass;
    xTPCM2[1]       = pt;
    xTPCM2[2]       = fCentrality;
    xTPCM2[3]       = cos2phiTPC;
    fHEPTPCM2->Fill(xTPCM2);

  }
}

//________________________________________________________________________________________________________________________________
void AliAnalysisTaskPi0V2::FillCluster(const TLorentzVector& p1, Double_t EPV0A, Double_t EPV0C, Double_t EPTPC, AliVCluster *c)
{
  // Cluster(photon) v2 method

  Double_t Et   = p1.Et();
  Double_t Phi  = p1.Phi();
  Double_t M02  = c->GetM02();

  Double_t difClusV0A = Phi-EPV0A;
  Double_t difClusV0C = Phi-EPV0C;
  Double_t difClusTPC = Phi-EPTPC;
  while(difClusV0A<0.) difClusV0A+=TMath::Pi();  while(difClusV0A>TMath::Pi()) difClusV0A-=TMath::Pi();
  while(difClusV0C<0.) difClusV0C+=TMath::Pi();  while(difClusV0C>TMath::Pi()) difClusV0C-=TMath::Pi();
  while(difClusTPC<0.) difClusTPC+=TMath::Pi();  while(difClusTPC>TMath::Pi()) difClusTPC-=TMath::Pi();

  Double_t DataV0A[4];
  DataV0A[0] = Et;
  DataV0A[1] = M02;
  DataV0A[2] = fCentrality;
  DataV0A[3] = difClusV0A;
  fClusterPbV0A->Fill(DataV0A);

  Double_t DataV0C[4];
  DataV0C[0] = Et;
  DataV0C[1] = M02;
  DataV0C[2] = fCentrality;
  DataV0C[3] = difClusV0C;
  fClusterPbV0C->Fill(DataV0C);

  Double_t DataTPC[4];
  DataTPC[0] = Et;
  DataTPC[1] = M02;
  DataTPC[2] = fCentrality;
  DataTPC[3] = difClusTPC;
  fClusterPbTPC->Fill(DataTPC);
}

//_________________________________________________________________________________________________
void AliAnalysisTaskPi0V2::GetMom(TLorentzVector& p, const AliVCluster *c, Double_t *vertex)
{
  // Calculate momentum.
  Float_t posMom[3];
  c->GetPosition(posMom);
  TVector3 clsPos2(posMom);

  Double_t e   = c->E();
  Double_t r   = clsPos2.Perp();
  Double_t eta = clsPos2.Eta();
  Double_t phi = clsPos2.Phi();

  TVector3 pos;
  pos.SetPtEtaPhi(r,eta,phi);

  if (vertex) { //calculate direction relative to vertex
    pos -= vertex;
  }

  Double_t rad = pos.Mag();
  p.SetPxPyPzE(e*pos.x()/rad, e*pos.y()/rad, e*pos.z()/rad, e);

}

//________________________________________________________________________
void AliAnalysisTaskPi0V2::UserCreateOutputObjects()
{
  // Create histograms
  // Called once (on the worker node)
        
  fOutput = new TList();
  fOutput->SetOwner();  // IMPORTANT!

  hEvtCount = new TH1F("hEvtCount", " Event Plane", 9, 0.5, 9.5);
  hEvtCount->GetXaxis()->SetBinLabel(1,"All");
  hEvtCount->GetXaxis()->SetBinLabel(2,"Evt");
  hEvtCount->GetXaxis()->SetBinLabel(3,"Trg Class");
  hEvtCount->GetXaxis()->SetBinLabel(4,"Vtx");
  hEvtCount->GetXaxis()->SetBinLabel(5,"Cent");
  hEvtCount->GetXaxis()->SetBinLabel(6,"EPtask");
  hEvtCount->GetXaxis()->SetBinLabel(7,"ClusterTask");
  hEvtCount->GetXaxis()->SetBinLabel(8,"Pass");
  fOutput->Add(hEvtCount);

  hCent	   = new TH1F("hCent", "centrality dist. before App. flat cut", 100, 0., 100.);
  fOutput->Add(hCent);  

  hEPTPC   = new TH2F("hEPTPC",   "EPTPC     vs cent", 100, 0., 100., 100, 0., TMath::Pi());
  hresoTPC = new TH2F("hresoTPC", "TPc reso  vs cent", 100, 0., 100., 100, 0., 1.);
  hEPV0A   = new TH2F("hEPV0A",   "EPV0A     vs cent", 100, 0., 100., 100, 0., TMath::Pi());
  hEPV0C   = new TH2F("hEPV0C",   "EPV0C     vs cent", 100, 0., 100., 100, 0., TMath::Pi());
  fOutput->Add(hEPTPC);
  fOutput->Add(hresoTPC);
  fOutput->Add(hEPV0A);
  fOutput->Add(hEPV0C);

  if(isFullHist){
    hEPV0    = new TH2F("hEPV0",    "EPV0      vs cent", 100, 0., 100., 100, 0., TMath::Pi());
    hEPV0Ar  = new TH2F("hEPV0Ar",  "EPV0Ar    vs cent", 100, 0., 100., 100, 0., TMath::Pi());
    hEPV0Cr  = new TH2F("hEPV0Cr",  "EPV0Cr    vs cent", 100, 0., 100., 100, 0., TMath::Pi());
    hEPV0r   = new TH2F("hEPV0r",   "EPV0r     vs cent", 100, 0., 100., 100, 0., TMath::Pi());
    hEPV0AR4 = new TH2F("hEPV0AR4", "EPV0AR4   vs cent", 100, 0., 100., 100, 0., TMath::Pi());
    hEPV0AR7 = new TH2F("hEPV0AR7", "EPV0AR7   vs cent", 100, 0., 100., 100, 0., TMath::Pi());
    hEPV0CR0 = new TH2F("hEPV0CR0", "EPV0CR0   vs cent", 100, 0., 100., 100, 0., TMath::Pi());
    hEPV0CR3 = new TH2F("hEPV0CR3", "EPV0CR3   vs cent", 100, 0., 100., 100, 0., TMath::Pi());
    fOutput->Add(hEPV0);
    fOutput->Add(hEPV0Ar);
    fOutput->Add(hEPV0Cr);
    fOutput->Add(hEPV0r);
    fOutput->Add(hEPV0AR4);
    fOutput->Add(hEPV0AR7);
    fOutput->Add(hEPV0CR0);
    fOutput->Add(hEPV0CR3);
  }

  hEPTPCCor  = new TH2F("hEPTPCCor",   "EPTPC  vs cent after PHOS Correct", 100, 0., 100., 100, 0., TMath::Pi());
  hEPV0ACor  = new TH2F("hEPV0ACor",   "EPV0A  vs cent after PHOS Correct", 100, 0., 100., 100, 0., TMath::Pi());
  hEPV0CCor  = new TH2F("hEPV0CCor",   "EPV0C  vs cent after PHOS Correct", 100, 0., 100., 100, 0., TMath::Pi());
  fOutput->Add(hEPTPCCor);
  fOutput->Add(hEPV0ACor);
  fOutput->Add(hEPV0CCor);

  hdifV0A_V0CR0    = new TH2F("hdifV0A_V0CR0",    "EP A-R0 ",  100, 0., 100., 100, -1., 1.);    
  hdifV0A_V0CR3    = new TH2F("hdifV0A_V0CR3",    "EP A-R3 ",  100, 0., 100., 100, -1., 1.);    
  hdifV0ACR0_V0CR3 = new TH2F("hdifV0ACR0_V0CR3", "EP R0-R3 ", 100, 0., 100., 100, -1., 1.);    
  hdifV0C_V0AR4    = new TH2F("hdifV0C_V0AR4",    "EP C-R4 ",  100, 0., 100., 100, -1., 1.);    
  hdifV0C_V0AR7    = new TH2F("hdifV0C_V0AR7",    "EP C-R7 ",  100, 0., 100., 100, -1., 1.);    
  hdifV0AR4_V0AR7  = new TH2F("hdifV0AR4_V0AR7",  "EP R4-R7 ", 100, 0., 100., 100, -1., 1.);    
  fOutput->Add(hdifV0A_V0CR0);
  fOutput->Add(hdifV0A_V0CR3);
  fOutput->Add(hdifV0ACR0_V0CR3);
  fOutput->Add(hdifV0C_V0AR4);
  fOutput->Add(hdifV0C_V0AR7);
  fOutput->Add(hdifV0AR4_V0AR7);

  if(isFullHist){
    hdifV0Ar_V0Cr    = new TH2F("hdifV0Ar_V0Cr",    "EP Ar-Cr ", 100, 0., 100., 100, -1., 1.);    
    fOutput->Add(hdifV0Ar_V0Cr);

    hdifV0A_V0C = new TH2F("hdifV0A_V0C", "EP A-C  ", 100, 0., 100., 100, -1., 1.);
    hdifV0A_TPC = new TH2F("hdifV0A_TPC", "EP A-TPC", 100, 0., 100., 100, -1., 1.);
    hdifV0C_TPC = new TH2F("hdifV0C_TPC", "EP C-TPC", 100, 0., 100., 100, -1., 1.);
    hdifV0C_V0A = new TH2F("hdifV0C_V0A", "EP C-A  ", 100, 0., 100., 100, -1., 1.);
    fOutput->Add(hdifV0A_V0C);
    fOutput->Add(hdifV0A_TPC);
    fOutput->Add(hdifV0C_TPC);
    fOutput->Add(hdifV0C_V0A);
  }

  hdifEMC_EPV0A = new TH3F("hdifEMC_EPV0A", "dif phi in EMC with EPV0A",  100, 0., 100., 100, 0., TMath::Pi(), 15, 0., 15.);
  hdifEMC_EPV0C = new TH3F("hdifEMC_EPV0C", "dif phi in EMC with EPV0C",  100, 0., 100., 100, 0., TMath::Pi(), 15, 0., 15.);
  fOutput->Add(hdifEMC_EPV0A);
  fOutput->Add(hdifEMC_EPV0C);

  hdifful_EPV0A = new TH3F("hdifful_EPV0A",  "dif phi in full with EPV0A", 100, 0., 100., 100, 0., TMath::Pi(), 15, 0., 15.);
  hdifful_EPV0C = new TH3F("hdifful_EPV0C",  "dif phi in full with EPV0C", 100, 0., 100., 100, 0., TMath::Pi(), 15, 0., 15.);
  fOutput->Add(hdifful_EPV0A);
  fOutput->Add(hdifful_EPV0C);

  hdifout_EPV0A = new TH3F("hdifout_EPV0A", "dif phi NOT in EMC with EPV0A", 100, 0., 100., 100, 0., TMath::Pi(), 15, 0., 15.);
  hdifout_EPV0C = new TH3F("hdifout_EPV0C", "dif phi NOT in EMC with EPV0C", 100, 0., 100., 100, 0., TMath::Pi(), 15, 0., 15.);
  fOutput->Add(hdifout_EPV0A);
  fOutput->Add(hdifout_EPV0C);

  hCv2EMC_EPV0A = new TH3F("hCv2EMC_EPV0A", " raw v2 of charged trc in EMC with V0A", 100, 0, 100, 50, -1., 1., 15, 0., 15.);
  hCv2EMC_EPV0C = new TH3F("hCv2EMC_EPV0C", " raw v2 of charged trc in EMC with V0C", 100, 0, 100, 50, -1., 1., 15, 0., 15.);
  fOutput->Add(hCv2EMC_EPV0A);
  fOutput->Add(hCv2EMC_EPV0C);

  hCv2ful_EPV0A = new TH3F("hCv2ful_EPV0A", " raw v2 of charged trc in ful with V0A", 100, 0, 100, 50, -1., 1., 15, 0., 15.);
  hCv2ful_EPV0C = new TH3F("hCv2ful_EPV0C", " raw v2 of charged trc in ful with V0C", 100, 0, 100, 50, -1., 1., 15, 0., 15.);
  fOutput->Add(hCv2ful_EPV0A);
  fOutput->Add(hCv2ful_EPV0C);

  hCv2out_EPV0A = new TH3F("hCv2out_EPV0A", " raw v2 of charged trc out with V0A", 100, 0, 100, 50, -1., 1., 15, 0., 15.);
  hCv2out_EPV0C = new TH3F("hCv2out_EPV0C", " raw v2 of charged trc out with V0A", 100, 0, 100, 50, -1., 1., 15, 0., 15.);
  fOutput->Add(hCv2out_EPV0A);
  fOutput->Add(hCv2out_EPV0C);

  hclusDif_EPV0A = new TH3F("hclusDif_EPV0A", "dif phi of clus with EP V0A", 100, 0., 100., 100, 0., TMath::Pi(), 15, 0., 15.);
  hclusDif_EPV0C = new TH3F("hclusDif_EPV0C", "dif phi of clus with EP V0C", 100, 0., 100., 100, 0., TMath::Pi(), 15, 0., 15.);
  fOutput->Add(hclusDif_EPV0A);
  fOutput->Add(hclusDif_EPV0C);

  hclusv2_EPV0A = new TH3F("hclusv2_EPV0A", " raw v2 of clus in ful with V0A", 100, 0, 100, 50, -1., 1., 15, 0., 15.);
  hclusv2_EPV0C = new TH3F("hclusv2_EPV0C", " raw v2 of clus in ful with V0C", 100, 0, 100, 50, -1., 1., 15, 0., 15.);
  fOutput->Add(hclusv2_EPV0A);
  fOutput->Add(hclusv2_EPV0C);

  if (isV1Clus) {
                       //  Et   M02  spdcent DeltaPhi  
    Int_t    bins[4] = {  40, 350,  60,  100     }; // binning
    Double_t min[4]  = {  0.0, 0.0,  0,   0.0     }; // min x
    Double_t max[4]  = { 40.0, 3.5,  60,  TMath::Pi()}; // max x

    fClusterPbV0A = new THnSparseF("fClusterPbV0A","",5,bins,min,max);
    fClusterPbV0A->GetAxis(0)->SetTitle("Transverse Energy [GeV]"); 
    fClusterPbV0A->GetAxis(1)->SetTitle("M02"); 
    fClusterPbV0A->GetAxis(2)->SetTitle("V0M Centrality");
    fClusterPbV0A->GetAxis(3)->SetTitle("Delta(#phi) [rad]"); 
    fOutput->Add(fClusterPbV0A);

    fClusterPbV0C = new THnSparseF("fClusterPbV0C","",5,bins,min,max);
    fClusterPbV0C->GetAxis(0)->SetTitle("Transverse Energy [GeV]"); 
    fClusterPbV0C->GetAxis(1)->SetTitle("M02"); 
    fClusterPbV0C->GetAxis(2)->SetTitle("V0M Centrality");
    fClusterPbV0C->GetAxis(3)->SetTitle("Delta(#phi) [rad]"); 
    fOutput->Add(fClusterPbV0C);

    fClusterPbTPC = new THnSparseF("fClusterPbTPC","",5,bins,min,max);
    fClusterPbTPC->GetAxis(0)->SetTitle("Transverse Energy [GeV]"); 
    fClusterPbTPC->GetAxis(1)->SetTitle("M02"); 
    fClusterPbTPC->GetAxis(2)->SetTitle("V0M Centrality");
    fClusterPbTPC->GetAxis(3)->SetTitle("Delta(#phi) [rad]"); 
    fOutput->Add(fClusterPbTPC);
  }
  
  if(isFullHist){
    h2DcosV0C = new TProfile("h2DcosV0C", "cos(Phi) V0r vs Run NUmber", 200, 0., 200.);
    h2DsinV0C = new TProfile("h2DsinV0C", "sin(Phi) V0r vs Run NUmber", 200, 0., 200.);
    h2DcosTPC = new TProfile("h2DcosTPC", "cos(Phi) V0r vs Run NUmber", 200, 0., 200.);
    h2DsinTPC = new TProfile("h2DsinTPC", "sin(Phi) V0r vs Run NUmber", 200, 0., 200.);
    fOutput->Add(h2DcosV0C);
    fOutput->Add(h2DsinV0C);
    fOutput->Add(h2DcosTPC);
    fOutput->Add(h2DsinTPC);
  }

  h2DcosV0A = new TProfile("h2DcosV0A", "cos(Phi) V0r vs Run NUmber", 200, 0., 200.);
  h2DsinV0A = new TProfile("h2DsinV0A", "sin(Phi) V0r vs Run NUmber", 200, 0., 200.);
  fOutput->Add(h2DcosV0A);
  fOutput->Add(h2DsinV0A);

  if (isV1Clus) {
    hM02vsPtA = new TH2F("hM02vsPtA", "M02 vs Et before cut", 5000, 0, 50, 400, 0, 4.);
    hM02vsPtB = new TH2F("hM02vsPtB", "M02 vs Et before cut", 5000, 0, 50, 400, 0, 4.);
    fOutput->Add(hM02vsPtA);
    fOutput->Add(hM02vsPtB);
  }
  if(isFullHist){
    hClusDxDZA = new TH2F("hClusDxDZA", "clus Dx vs Dz", 1000, -1., 1., 1000, -1., 1);  
    hClusDxDZB = new TH2F("hClusDxDZB", "clus Dx vs Dz", 1000, -1., 1., 1000, -1., 1);
    fOutput->Add(hClusDxDZA);
    fOutput->Add(hClusDxDZB);
  }    

  if (!isV1Clus) {
    const Int_t ndims = 4;
    Int_t nMgg=500, nPt=40, nCent=20, nDeltaPhi=315, ncos2phi=200;
    Int_t binsv1[ndims] = {nMgg, nPt, nCent, nDeltaPhi};
    Double_t xmin[ndims] = { 0,   0.,  0,    0.      };
    Double_t xmax[ndims] = { 0.5, 20., 100,  3.15    };
    fHEPV0A = new THnSparseF("fHEPV0A",   "Flow histogram EPV0A", ndims, binsv1, xmin, xmax);
    fHEPV0C = new THnSparseF("fHEPV0C",   "Flow histogram EPV0C", ndims, binsv1, xmin, xmax);
    fHEPTPC = new THnSparseF("fHEPTPC",   "Flow histogram EPTPC", ndims, binsv1, xmin, xmax);
    fHEPV0A->GetAxis(0)->SetTitle("m_{#gamma#gamma} "); 
    fHEPV0A->GetAxis(1)->SetTitle("p_{T}[GeV]"); 
    fHEPV0A->GetAxis(2)->SetTitle("centrality");
    fHEPV0A->GetAxis(3)->SetTitle("#delta #phi");
    fHEPV0C->GetAxis(0)->SetTitle("m_{#gamma#gamma} "); 
    fHEPV0C->GetAxis(1)->SetTitle("p_{T}[GeV]"); 
    fHEPV0C->GetAxis(2)->SetTitle("centrality");
    fHEPV0C->GetAxis(3)->SetTitle("#delta #phi");
    fHEPTPC->GetAxis(0)->SetTitle("m_{#gamma#gamma} "); 
    fHEPTPC->GetAxis(1)->SetTitle("p_{T}[GeV]"); 
    fHEPTPC->GetAxis(2)->SetTitle("centrality");
    fHEPTPC->GetAxis(3)->SetTitle("#delta #phi");
    fOutput->Add(fHEPV0A);
    fOutput->Add(fHEPV0C);
    fOutput->Add(fHEPTPC);

    Int_t binsv2[ndims] = {nMgg, nPt, nCent, ncos2phi};
    Double_t xmin2[ndims] = { 0,   0.,  0,    -1.};
    Double_t xmax2[ndims] = { 0.5, 20., 100,   1.};
    fHEPV0AM2 = new THnSparseF("fHEPV0AM2",   "Flow histogram EPV0A M2", ndims, binsv2, xmin2, xmax2);
    fHEPV0CM2 = new THnSparseF("fHEPV0CM2",   "Flow histogram EPV0C M2", ndims, binsv2, xmin2, xmax2);
    fHEPTPCM2 = new THnSparseF("fHEPTPCM2",   "Flow histogram EPTPC M2", ndims, binsv2, xmin2, xmax2);
    fHEPV0AM2->GetAxis(0)->SetTitle("m_{#gamma#gamma} ");
    fHEPV0AM2->GetAxis(1)->SetTitle("p_{T}[GeV]");
    fHEPV0AM2->GetAxis(2)->SetTitle("centrality");
    fHEPV0AM2->GetAxis(3)->SetTitle("cos(2*#delta #phi)");
    fHEPV0CM2->GetAxis(0)->SetTitle("m_{#gamma#gamma} ");
    fHEPV0CM2->GetAxis(1)->SetTitle("p_{T}[GeV]");
    fHEPV0CM2->GetAxis(2)->SetTitle("centrality");
    fHEPV0CM2->GetAxis(3)->SetTitle("cos(2*#delta #phi)");
    fHEPTPCM2->GetAxis(0)->SetTitle("m_{#gamma#gamma} ");
    fHEPTPCM2->GetAxis(1)->SetTitle("p_{T}[GeV]");
    fHEPTPCM2->GetAxis(2)->SetTitle("centrality");
    fHEPTPCM2->GetAxis(3)->SetTitle("cos(2*#delta #phi)");
    fOutput->Add(fHEPV0AM2);
    fOutput->Add(fHEPV0CM2);
    fOutput->Add(fHEPTPCM2);

  }
  PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram
}

//________________________________________________________________________
void AliAnalysisTaskPi0V2::UserExec(Option_t *) 
{
  // Main loop
  // Called for each event

  hEvtCount->Fill(1);
  // Create pointer to reconstructed event

  AliVEvent *event = InputEvent();
  if (!event) { 
    AliError("Could not retrieve event"); 
    return; 
  }

  // create pointer to event
  TString type = AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()->GetDataType();
  if (type=="ESD") {
    fESD = dynamic_cast<AliESDEvent*>(event);
    if (!fESD) {
      AliError("Cannot get the ESD event");
      return;
    }
  } else if (type=="AOD") {
    fAOD = dynamic_cast<AliAODEvent*>(event);
    if (!fAOD) {
      AliError("Cannot get the AOD event");
      return;
    }
  } else {
    AliError("Cannot happen");
    return;
  }

  hEvtCount->Fill(2);
  if (!fTrigClass.IsNull()) {
    TString fired;
    if (fESD) {
      fired = fESD->GetFiredTriggerClasses();
    } else {
      fired = fAOD->GetFiredTriggerClasses();
    }
    if (!fired.Contains("-B-"))
      return;
    TObjArray *arr = fTrigClass.Tokenize("|");
    if (!arr)
      return;
    Bool_t match = 0;
    for (Int_t i=0;i<arr->GetEntriesFast();++i) {
      TObject *obj = arr->At(i);
      if (!obj)
	continue;
      if (fired.Contains(obj->GetName())) {
	match = 1;
	break;
      }
    }
    delete arr;
    if (!match)
      return;
  }
  hEvtCount->Fill(3);

  if (fRunNumber != event->GetRunNumber()) {
    fRunNumber = event->GetRunNumber();
    SetFlatteningData();
  }

  fInterRunNumber = ConvertToInternalRunNumber(fRunNumber);

  const AliVVertex* fvertex;
  fvertex = event->GetPrimaryVertex();

  if (TMath::Abs(fvertex->GetZ())>fVtxCut)
    return;
  Double_t vertex[3] = {fvertex->GetX(), fvertex->GetY(), fvertex->GetZ()};

  hEvtCount->Fill(4);

  fCentrality = event->GetCentrality()->GetCentralityPercentile("CL1"); //spd vertex
  hCent->Fill(fCentrality);
  if(isCentFlat){
    Bool_t bIsNot = kFALSE;
    if (fCentrality<=10){   //0-10%
      TRandom3 *rndm = new TRandom3(0);
      Double_t Nrndm = rndm->Uniform(0.,1.);
      if(fCentrality<=1){
	if(Nrndm > 0.77308) bIsNot = kTRUE;
      } else if(1<fCentrality && fCentrality<=2) {
	if(Nrndm > 0.75863) bIsNot = kTRUE;
      } else if (2<fCentrality && fCentrality<=3){
	if(Nrndm > 0.76365) bIsNot = kTRUE;
      } else if (3<fCentrality && fCentrality<=4){
	if(Nrndm > 0.76763) bIsNot = kTRUE;
      } else if (4<fCentrality && fCentrality<=5){
	if(Nrndm > 0.76251) bIsNot = kTRUE;
      } else if (5<fCentrality && fCentrality<=6){
	if(Nrndm > 0.79069) bIsNot = kTRUE;
      } else if (6<fCentrality && fCentrality<=7){
	if(Nrndm > 0.77669) bIsNot = kTRUE;
      } else if (7<fCentrality && fCentrality<=8){
	if(Nrndm > 0.78537) bIsNot = kTRUE;
      } else if (8<fCentrality && fCentrality<=9){
	if(Nrndm > 0.82727) bIsNot = kTRUE;
      } else if (9<fCentrality && fCentrality<=10){
	if(Nrndm > 1) bIsNot = kTRUE;
      }
      delete rndm; rndm = 0;
      if(bIsNot)
	return;
    }
  }
    if (10<fCentrality && fCentrality<=50){  //10-50%
      TString centfired;
      if (fESD) {
	centfired = fESD->GetFiredTriggerClasses();
      } else {
	centfired = fAOD->GetFiredTriggerClasses();
      }
      if(!centfired.Contains("CVLN_B2-B-NOPF-ALLNOTRD") && !centfired.Contains("CVLN_R1-B-NOPF-ALLNOTRD") && !centfired.Contains("CSEMI_R1-B-NOPF-ALLNOTRD"))
	return;
    }
  hEvtCount->Fill(5);

  AliEventplane *ep = event->GetEventplane();
  if (ep) {
    if (ep->GetEventplane("Q") != -1)
      fEPTPC    = ep->GetEventplane("Q");
    else
      fEPTPC = -999.;
    if (ep->GetEventplane("Q") != -1)
      fEPTPCreso  = TMath::Cos(2.*(ep->GetQsubRes()));
    else
      fEPTPCreso = -1;

    fEPV0    = ep->GetEventplane("V0",  event);
    fEPV0A   = ep->GetEventplane("V0A", event);
    fEPV0C   = ep->GetEventplane("V0C", event);
    Double_t qx=0, qy=0;
    Double_t qxr=0, qyr=0;
    fEPV0Ar  = ep->CalculateVZEROEventPlane(event, 4, 5, 2, qxr, qyr);
    fEPV0Cr  = ep->CalculateVZEROEventPlane(event, 2, 3, 2, qx,  qy);
    qxr += qx;
    qyr += qy;
    fEPV0r   = TMath::ATan2(qyr,qxr)/2.;
    fEPV0AR4 = ep->CalculateVZEROEventPlane(event, 4, 2, qx, qy);
    fEPV0AR5 = ep->CalculateVZEROEventPlane(event, 5, 2, qx, qy);
    fEPV0AR6 = ep->CalculateVZEROEventPlane(event, 6, 2, qx, qy);
    fEPV0AR7 = ep->CalculateVZEROEventPlane(event, 7, 2, qx, qy);
    fEPV0CR0 = ep->CalculateVZEROEventPlane(event, 0, 2, qx, qy);
    fEPV0CR1 = ep->CalculateVZEROEventPlane(event, 1, 2, qx, qy);
    fEPV0CR2 = ep->CalculateVZEROEventPlane(event, 2, 2, qx, qy);
    fEPV0CR3 = ep->CalculateVZEROEventPlane(event, 3, 2, qx, qy);
  } 

  FillEPQA(); //Fill the EP QA

  hEvtCount->Fill(6);

  while(fEPV0<0.) fEPV0+=TMath::Pi();  while(fEPV0>TMath::Pi()) fEPV0-=TMath::Pi();
  while(fEPV0r<0.) fEPV0r+=TMath::Pi();  while(fEPV0r>TMath::Pi()) fEPV0r-=TMath::Pi();
  while(fEPV0A<0.) fEPV0A+=TMath::Pi();  while(fEPV0A>TMath::Pi()) fEPV0A-=TMath::Pi();
  while(fEPV0C<0.) fEPV0C+=TMath::Pi();  while(fEPV0C>TMath::Pi()) fEPV0C-=TMath::Pi();
  while(fEPV0Ar<0.) fEPV0Ar+=TMath::Pi();  while(fEPV0Ar>TMath::Pi()) fEPV0Ar-=TMath::Pi();
  while(fEPV0Cr<0.) fEPV0Cr+=TMath::Pi();  while(fEPV0Cr>TMath::Pi()) fEPV0Cr-=TMath::Pi();

  while(fEPV0AR4<0.) fEPV0AR4+=TMath::Pi();  while(fEPV0AR4>TMath::Pi()) fEPV0AR4-=TMath::Pi();
  while(fEPV0AR7<0.) fEPV0AR7+=TMath::Pi();  while(fEPV0AR7>TMath::Pi()) fEPV0AR7-=TMath::Pi();
  while(fEPV0CR0<0.) fEPV0CR0+=TMath::Pi();  while(fEPV0CR0>TMath::Pi()) fEPV0CR0-=TMath::Pi();
  while(fEPV0CR3<0.) fEPV0CR3+=TMath::Pi();  while(fEPV0CR3>TMath::Pi()) fEPV0CR3-=TMath::Pi();

  while(fEPTPC<0.) fEPTPC+=TMath::Pi();  while(fEPTPC>TMath::Pi()) fEPTPC-=TMath::Pi();
  if (fEPTPC != -999. )
    hEPTPC->Fill(fCentrality,  fEPTPC); 
  if (fEPTPCreso!=-1) 
    hresoTPC->Fill(fCentrality, fEPTPCreso);
  if(isFullHist){
    hEPV0->Fill(fCentrality,   fEPV0);
    hEPV0Ar->Fill(fCentrality, fEPV0Ar);
    hEPV0Cr->Fill(fCentrality, fEPV0Cr);
    hEPV0r->Fill(fCentrality,  fEPV0r);
    hEPV0AR4->Fill(fCentrality, fEPV0AR4);
    hEPV0AR7->Fill(fCentrality, fEPV0AR7);
    hEPV0CR0->Fill(fCentrality, fEPV0CR0);
    hEPV0CR3->Fill(fCentrality, fEPV0CR3);
  }
  hEPV0A->Fill(fCentrality,  fEPV0A);
  hEPV0C->Fill(fCentrality,  fEPV0C);

  if (isPhosCali) {
    // PHOS Flattening
    fEPV0A = ApplyFlatteningV0A(fEPV0A, fCentrality); //V0A after Phos flatten
    fEPV0C = ApplyFlatteningV0C(fEPV0C, fCentrality); //V0C after Phos flatten
    if(fEPTPC != -999.)
      fEPTPC = ApplyFlattening(fEPTPC, fCentrality);  //TPC after Phos flatten
    while(fEPV0A <0.) fEPV0A+=TMath::Pi(); while(fEPV0A >TMath::Pi()) fEPV0A-=TMath::Pi();
    while(fEPV0C <0.) fEPV0C+=TMath::Pi(); while(fEPV0C >TMath::Pi()) fEPV0C-=TMath::Pi();
    while(fEPTPC <0.) fEPTPC+=TMath::Pi(); while(fEPTPC >TMath::Pi()) fEPTPC-=TMath::Pi();
  }

  if (!isPhosCali) { 
    Double_t EPV0ACor = ApplyFlattening(fEPTPC, fCentrality);
    Double_t EPV0CCor = ApplyFlattening(fEPTPC, fCentrality);
    Double_t EPTPCCor = ApplyFlattening(fEPTPC, fCentrality);
    while(EPV0ACor <0.) EPV0ACor+=TMath::Pi(); while(EPV0ACor >TMath::Pi()) EPV0ACor-=TMath::Pi();
    while(EPV0CCor <0.) EPV0CCor+=TMath::Pi(); while(EPV0CCor >TMath::Pi()) EPV0CCor-=TMath::Pi();
    while(EPTPCCor <0.) EPTPCCor+=TMath::Pi(); while(EPTPCCor >TMath::Pi()) EPTPCCor-=TMath::Pi();
    
    if(fEPTPC != -999.)
      hEPTPCCor->Fill(fCentrality, EPTPCCor);
    hEPV0ACor->Fill(fCentrality, EPV0ACor);
    hEPV0CCor->Fill(fCentrality, EPV0CCor);
  } else {
    if(fEPTPC != -999.)
      hEPTPCCor->Fill(fCentrality, fEPTPC);
    hEPV0ACor->Fill(fCentrality, fEPV0A);
    hEPV0CCor->Fill(fCentrality, fEPV0C);
  } 

  hdifV0A_V0CR0->Fill(fCentrality, TMath::Cos(2.*(fEPV0A - fEPV0CR0)));
  hdifV0A_V0CR3->Fill(fCentrality, TMath::Cos(2.*(fEPV0A - fEPV0CR3)));
  hdifV0ACR0_V0CR3->Fill(fCentrality, TMath::Cos(2*(fEPV0CR0 - fEPV0CR3)));
  hdifV0C_V0AR4->Fill(fCentrality, TMath::Cos(2*(fEPV0C - fEPV0AR4)));
  hdifV0C_V0AR7->Fill(fCentrality, TMath::Cos(2*(fEPV0C - fEPV0AR7)));
  hdifV0AR4_V0AR7->Fill(fCentrality, TMath::Cos(2*(fEPV0AR4 - fEPV0AR7)));
        
  if(isFullHist){
    hdifV0Ar_V0Cr->Fill(fCentrality, TMath::Cos(2.*(fEPV0Ar - fEPV0Cr)));
    hdifV0A_V0C->Fill(fCentrality, TMath::Cos(2*(fEPV0A - fEPV0C)));
    if (fEPTPC!=-999.){
      hdifV0A_TPC->Fill(fCentrality, TMath::Cos(2*(fEPV0A - fEPTPC)));
      hdifV0C_TPC->Fill(fCentrality, TMath::Cos(2*(fEPV0C - fEPTPC)));
    }
    hdifV0C_V0A->Fill(fCentrality, TMath::Cos(2*(fEPV0C - fEPV0A)));
  }
  // Cluster loop for reconstructed event

  //================ for v2 clusterize analysis==============================================
  if (!isV1Clus) {
    if (!fV2ClusName.IsNull() && !fV2Clus) {
      fV2Clus = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fV2ClusName));
      if (!fV2Clus) {
	AliError(Form("%s: Could not retrieve v2 cluster name %s!", GetName(), fV2ClusName.Data()));
	return;
      }
    }
    Int_t nCluster =  fV2Clus->GetEntries(); 
    for (Int_t i=0; i<nCluster; ++i) {
      AliVCluster *c1 = static_cast<AliVCluster*>(fV2Clus->At(i));      
      if (!c1) 
	continue;
      if(isFullHist) hClusDxDZA->Fill(c1->GetTrackDz(), c1->GetTrackDx());
      if (!c1->IsEMCAL()) 
	continue;
      if (!IsGoodCluster(c1)) 
	continue;
      if(isFullHist) hClusDxDZB->Fill(c1->GetTrackDz(), c1->GetTrackDx());
      TLorentzVector p1;
      GetMom(p1, c1, vertex);
      Double_t cluPhi = p1.Phi();
      Double_t cluPt  = p1.Pt();
      Double_t difclusV0A = cluPhi-fEPV0A;
      if(difclusV0A<0.) difclusV0A+=TMath::Pi();  if(difclusV0A>TMath::Pi()) difclusV0A-=TMath::Pi();
      Double_t difclusV0C = cluPhi-fEPV0C;
      if(difclusV0C<0.) difclusV0C+=TMath::Pi();  if(difclusV0C>TMath::Pi()) difclusV0C-=TMath::Pi();
      hclusDif_EPV0A->Fill(fCentrality,   difclusV0A, cluPt);
      hclusDif_EPV0C->Fill(fCentrality,   difclusV0C, cluPt);
      hclusv2_EPV0A->Fill(fCentrality,   TMath::Cos(2.*difclusV0A), cluPt);
      hclusv2_EPV0C->Fill(fCentrality,   TMath::Cos(2.*difclusV0C), cluPt);
      for (Int_t j=i+1; j<nCluster; ++j) {
	AliVCluster *c2 = static_cast<AliVCluster*>(fV2Clus->At(j));      
	if (!c2) 
	  continue;
	if (!c2->IsEMCAL()) 
	  continue;
	if (!IsGoodCluster(c2)) 
	  continue;
	TLorentzVector p2;
	GetMom(p2, c2, vertex);
	FillPion(p1, p2, fEPV0A, fEPV0C, fEPTPC);
      }
    }
  }

  //================ for v1 clusterize analysis==============================================
  if (isV1Clus) {
    if (!fV2ClusName.IsNull() && !fV1Clus) {
      fV1Clus = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fV1ClusName));
      if (!fV1Clus) {
	AliError(Form("%s: Could not retrieve v1 cluster name %s!", GetName(), fV1ClusName.Data()));
	return;
      }
    }
    Int_t nClusterV1 = fV1Clus->GetEntries();
    for (Int_t i=0; i<nClusterV1; ++i) {
      AliVCluster *c3 = dynamic_cast<AliVCluster*>(fV1Clus->At(i));      
      if (!c3) 
	continue;
      if (!c3->IsEMCAL()) 
	continue;
      Double_t M02c3 = c3->GetM02();
      Double_t Dxc3  = c3->GetTrackDx();
      Double_t Dzc3  = c3->GetTrackDz(); 

      if(isFullHist) hClusDxDZA->Fill(Dzc3, Dxc3);
      Float_t clsPosEt[3] = {0,0,0};
      c3->GetPosition(clsPosEt);
      TVector3 clsVec(clsPosEt);
      Double_t Et = c3->E()*TMath::Sin(clsVec.Theta());
      hM02vsPtA->Fill(Et, M02c3);
      if (!IsGoodClusterV1(c3)) 
	continue;
      hM02vsPtB->Fill(Et, M02c3);
      if(isFullHist) hClusDxDZB->Fill(Dzc3, Dxc3);
      TLorentzVector p3;
      GetMom(p3, c3, vertex);
      FillCluster(p3, fEPV0A, fEPV0C, fEPTPC, c3);
    }
  }

  hEvtCount->Fill(7);

  if (!fTracksName.IsNull() && !fTracks) {
    fTracks = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fTracksName));
    if (!fTracks) {
      AliError(Form("%s: Could not retrieve tracks %s!", GetName(), fTracksName.Data())); 
      return;
    }
  }

  Int_t ntracks = fTracks->GetEntries();
  for (Int_t i=0; i<ntracks; ++i){
    AliVTrack *track = static_cast<AliVTrack*>(fTracks->At(i));
    if (!track) 
      continue;
    Double_t tPhi = track->Phi();
    Double_t tPt  = track->Pt();
    Double_t Eta  = track->Eta();
    
    Double_t difTrackV0  = tPhi-fEPV0;   
    while(difTrackV0 <0.) difTrackV0+=TMath::Pi(); while(difTrackV0 >TMath::Pi()) difTrackV0-=TMath::Pi();
    Double_t difTrackV0A = tPhi-fEPV0A;  
    while(difTrackV0A <0.) difTrackV0A+=TMath::Pi(); while(difTrackV0A >TMath::Pi()) difTrackV0A-=TMath::Pi();
    Double_t difTrackV0C = tPhi-fEPV0C;  
    while(difTrackV0C <0.) difTrackV0C+=TMath::Pi(); while(difTrackV0C >TMath::Pi()) difTrackV0C-=TMath::Pi();
    Double_t difTrackTPC = tPhi-fEPTPC;  
    while(difTrackTPC <0.) difTrackTPC+=TMath::Pi(); while(difTrackTPC >TMath::Pi()) difTrackTPC-=TMath::Pi();
    if (tPhi*TMath::RadToDeg()>80. && tPhi*TMath::RadToDeg()<180. && Eta <0.7 && Eta >(-0.7)){	
      hdifEMC_EPV0A->Fill(fCentrality, difTrackV0A, tPt);
      hdifEMC_EPV0C->Fill(fCentrality, difTrackV0C, tPt);
      hCv2EMC_EPV0A->Fill(fCentrality, TMath::Cos(2.*difTrackV0A), tPt);
      hCv2EMC_EPV0C->Fill(fCentrality, TMath::Cos(2.*difTrackV0C), tPt);
    } else {
      hdifout_EPV0A->Fill(fCentrality, difTrackV0A, tPt);
      hdifout_EPV0C->Fill(fCentrality, difTrackV0C, tPt);
      hCv2out_EPV0A->Fill(fCentrality, TMath::Cos(2.*difTrackV0A), tPt);
      hCv2out_EPV0C->Fill(fCentrality, TMath::Cos(2.*difTrackV0C), tPt);
    }
    hdifful_EPV0A->Fill(fCentrality,   difTrackV0A, tPt);
    hdifful_EPV0C->Fill(fCentrality,   difTrackV0C, tPt);
    hCv2ful_EPV0A->Fill(fCentrality,   TMath::Cos(2.*difTrackV0A), tPt);
    hCv2ful_EPV0C->Fill(fCentrality,   TMath::Cos(2.*difTrackV0C), tPt);
  } 
  hEvtCount->Fill(8);

  // NEW HISTO should be filled before this point, as PostData puts the
  // information for this iteration of the UserExec in the container
  PostData(1, fOutput);
}

//____________________________________________________________________
Int_t AliAnalysisTaskPi0V2::ConvertToInternalRunNumber(Int_t n)
{
  switch(n) {
    case  170593 : return 179;
    case  170572 : return 178;
    case  170556 : return 177;
    case  170552 : return 176;
    case  170546 : return 175;
    case  170390 : return 174;
    case  170389 : return 173;
    case  170388 : return 172;
    case  170387 : return 171;
    case  170315 : return 170;
    case  170313 : return 169;
    case  170312 : return 168;
    case  170311 : return 167;
    case  170309 : return 166;
    case  170308 : return 165;
    case  170306 : return 164;
    case  170270 : return 163;
    case  170269 : return 162;
    case  170268 : return 161;
    case  170267 : return 160;
    case  170264 : return 159;
    case  170230 : return 158;
    case  170228 : return 157;
    case  170208 : return 156;
    case  170207 : return 155;
    case  170205 : return 154;
    case  170204 : return 153;
    case  170203 : return 152;
    case  170195 : return 151;
    case  170193 : return 150;
    case  170163 : return 149;
    case  170162 : return 148;
    case  170159 : return 147;
    case  170155 : return 146;
    case  170152 : return 145;
    case  170091 : return 144;
    case  170089 : return 143;
    case  170088 : return 142;
    case  170085 : return 141;
    case  170084 : return 140;
    case  170083 : return 139;
    case  170081 : return 138;
    case  170040 : return 137;
    case  170038 : return 136;
    case  170036 : return 135;
    case  170027 : return 134;
    case  169981 : return 133;
    case  169975 : return 132;
    case  169969 : return 131;
    case  169965 : return 130;
    case  169961 : return 129;
    case  169956 : return 128;
    case  169926 : return 127;
    case  169924 : return 126;
    case  169923 : return 125;
    case  169922 : return 124;
    case  169919 : return 123;
    case  169918 : return 122;
    case  169914 : return 121;
    case  169859 : return 120;
    case  169858 : return 119;
    case  169855 : return 118;
    case  169846 : return 117;
    case  169838 : return 116;
    case  169837 : return 115;
    case  169835 : return 114;
    case  169683 : return 113;
    case  169628 : return 112;
    case  169591 : return 111;
    case  169590 : return 110;
    case  169588 : return 109;
    case  169587 : return 108;
    case  169586 : return 107;
    case  169584 : return 106;
    case  169557 : return 105;
    case  169555 : return 104;
    case  169554 : return 103;
    case  169553 : return 102;
    case  169550 : return 101;
    case  169515 : return 100;
    case  169512 : return 99;
    case  169506 : return 98;
    case  169504 : return 97;
    case  169498 : return 96;
    case  169475 : return 95;
    case  169420 : return 94;
    case  169419 : return 93;
    case  169418 : return 92;
    case  169417 : return 91;
    case  169415 : return 90;
    case  169411 : return 89;
    case  169238 : return 88;
    case  169236 : return 87;
    case  169167 : return 86;
    case  169160 : return 85;
    case  169156 : return 84;
    case  169148 : return 83;
    case  169145 : return 82;
    case  169144 : return 81;
    case  169143 : return 80;
    case  169138 : return 79;
    case  169099 : return 78;
    case  169094 : return 77;
    case  169091 : return 76;
    case  169045 : return 75;
    case  169044 : return 74;
    case  169040 : return 73;
    case  169035 : return 72;
    case  168992 : return 71;
    case  168988 : return 70;
    case  168984 : return 69;
    case  168826 : return 68;
    case  168777 : return 67;
    case  168514 : return 66;
    case  168512 : return 65;
    case  168511 : return 64;
    case  168467 : return 63;
    case  168464 : return 62;
    case  168461 : return 61;
    case  168460 : return 60;
    case  168458 : return 59;
    case  168362 : return 58;
    case  168361 : return 57;
    case  168356 : return 56;
    case  168342 : return 55;
    case  168341 : return 54;
    case  168325 : return 53;
    case  168322 : return 52;
    case  168318 : return 51;
    case  168311 : return 50;
    case  168310 : return 49;
    case  168213 : return 48;
    case  168212 : return 47;
    case  168208 : return 46;
    case  168207 : return 45;
    case  168206 : return 44;
    case  168205 : return 43;
    case  168204 : return 42;
    case  168203 : return 41;
    case  168181 : return 40;
    case  168177 : return 39;
    case  168175 : return 38;
    case  168173 : return 37;
    case  168172 : return 36;
    case  168171 : return 35;
    case  168115 : return 34;
    case  168108 : return 33;
    case  168107 : return 32;
    case  168105 : return 31;
    case  168104 : return 30;
    case  168103 : return 29;
    case  168076 : return 28;
    case  168069 : return 27;
    case  168068 : return 26;
    case  168066 : return 25;
    case  167988 : return 24;
    case  167987 : return 23;
    case  167986 : return 22;
    case  167985 : return 21;
    case  167921 : return 20;
    case  167920 : return 19;
    case  167915 : return 18;
    case  167909 : return 17;
    case  167903 : return 16;
    case  167902 : return 15;
    case  167818 : return 14;
    case  167814 : return 13;
    case  167813 : return 12;
    case  167808 : return 11;
    case  167807 : return 10;
    case  167806 : return 9;
    case  167713 : return 8;
    case  167712 : return 7;
    case  167711 : return 6;
    case  167706 : return 5;
    case  167693 : return 4;
    case  166532 : return 3;
    case  166530 : return 2;
    case  166529 : return 1;

    default : return 199;
  }
}

//_______________________________________________________________________
void AliAnalysisTaskPi0V2::FillEPQA()
{
  h2DcosV0A->Fill(fInterRunNumber, TMath::Cos(fEPV0A));
  h2DsinV0A->Fill(fInterRunNumber, TMath::Sin(fEPV0A));
  if(isFullHist){
    h2DcosV0C->Fill(fInterRunNumber, TMath::Cos(fEPV0C));
    h2DsinV0C->Fill(fInterRunNumber, TMath::Sin(fEPV0C));
    if (fEPTPC!=-999.){
      h2DcosTPC->Fill(fInterRunNumber, TMath::Cos(fEPTPC));
      h2DsinTPC->Fill(fInterRunNumber, TMath::Sin(fEPTPC));
    }
  }
}

//_________________________________________________________________________________
void AliAnalysisTaskPi0V2::SetFlatteningData()
{
  //Read objects with flattening parameters
  AliOADBContainer flatContainer("phosFlat");
  flatContainer.InitFromFile(fEPcalibFileName.Data(),"phosFlat");
  TObjArray *maps = (TObjArray*)flatContainer.GetObject(fRunNumber,"phosFlat");
  if (!maps) {
    AliError(Form("Can not read Flattening for run %d. \n From file >%s<\n",fRunNumber,fEPcalibFileName.Data())) ;    
  } else {
    AliInfo(Form("Setting PHOS flattening with name %s \n",maps->GetName())) ;
    AliEPFlattener * h = (AliEPFlattener*)maps->At(0) ;  
    if(fTPCFlat) delete fTPCFlat ;
    fTPCFlat = new AliEPFlattener();
    fTPCFlat = h ;
    h = (AliEPFlattener*)maps->At(1);  
    if(fV0AFlat) delete fV0AFlat ;
    fV0AFlat = new AliEPFlattener();
    fV0AFlat = h ;
    h = (AliEPFlattener*)maps->At(2);  
    if(fV0CFlat) delete fV0CFlat ;
    fV0CFlat = new AliEPFlattener();
    fV0CFlat = h;
  }    
}
 
//____________________________________________________________________________
Double_t  AliAnalysisTaskPi0V2::ApplyFlattening(Double_t phi, Double_t c)
{
  if(fTPCFlat)
    return fTPCFlat->MakeFlat(phi,c);
  return phi;
}

//____________________________________________________________________________
Double_t  AliAnalysisTaskPi0V2::ApplyFlatteningV0A(Double_t phi, Double_t c)
{
  if(fV0AFlat)
    return fV0AFlat->MakeFlat(phi,c);
  return phi;
}

//____________________________________________________________________________
Double_t  AliAnalysisTaskPi0V2::ApplyFlatteningV0C(Double_t phi, Double_t c){
 
  if(fV0CFlat)
    return fV0CFlat->MakeFlat(phi,c);
  return phi;
}

//________________________________________________________________________
void AliAnalysisTaskPi0V2::Terminate(Option_t *) 
{
}
 AliAnalysisTaskPi0V2.cxx:1
 AliAnalysisTaskPi0V2.cxx:2
 AliAnalysisTaskPi0V2.cxx:3
 AliAnalysisTaskPi0V2.cxx:4
 AliAnalysisTaskPi0V2.cxx:5
 AliAnalysisTaskPi0V2.cxx:6
 AliAnalysisTaskPi0V2.cxx:7
 AliAnalysisTaskPi0V2.cxx:8
 AliAnalysisTaskPi0V2.cxx:9
 AliAnalysisTaskPi0V2.cxx:10
 AliAnalysisTaskPi0V2.cxx:11
 AliAnalysisTaskPi0V2.cxx:12
 AliAnalysisTaskPi0V2.cxx:13
 AliAnalysisTaskPi0V2.cxx:14
 AliAnalysisTaskPi0V2.cxx:15
 AliAnalysisTaskPi0V2.cxx:16
 AliAnalysisTaskPi0V2.cxx:17
 AliAnalysisTaskPi0V2.cxx:18
 AliAnalysisTaskPi0V2.cxx:19
 AliAnalysisTaskPi0V2.cxx:20
 AliAnalysisTaskPi0V2.cxx:21
 AliAnalysisTaskPi0V2.cxx:22
 AliAnalysisTaskPi0V2.cxx:23
 AliAnalysisTaskPi0V2.cxx:24
 AliAnalysisTaskPi0V2.cxx:25
 AliAnalysisTaskPi0V2.cxx:26
 AliAnalysisTaskPi0V2.cxx:27
 AliAnalysisTaskPi0V2.cxx:28
 AliAnalysisTaskPi0V2.cxx:29
 AliAnalysisTaskPi0V2.cxx:30
 AliAnalysisTaskPi0V2.cxx:31
 AliAnalysisTaskPi0V2.cxx:32
 AliAnalysisTaskPi0V2.cxx:33
 AliAnalysisTaskPi0V2.cxx:34
 AliAnalysisTaskPi0V2.cxx:35
 AliAnalysisTaskPi0V2.cxx:36
 AliAnalysisTaskPi0V2.cxx:37
 AliAnalysisTaskPi0V2.cxx:38
 AliAnalysisTaskPi0V2.cxx:39
 AliAnalysisTaskPi0V2.cxx:40
 AliAnalysisTaskPi0V2.cxx:41
 AliAnalysisTaskPi0V2.cxx:42
 AliAnalysisTaskPi0V2.cxx:43
 AliAnalysisTaskPi0V2.cxx:44
 AliAnalysisTaskPi0V2.cxx:45
 AliAnalysisTaskPi0V2.cxx:46
 AliAnalysisTaskPi0V2.cxx:47
 AliAnalysisTaskPi0V2.cxx:48
 AliAnalysisTaskPi0V2.cxx:49
 AliAnalysisTaskPi0V2.cxx:50
 AliAnalysisTaskPi0V2.cxx:51
 AliAnalysisTaskPi0V2.cxx:52
 AliAnalysisTaskPi0V2.cxx:53
 AliAnalysisTaskPi0V2.cxx:54
 AliAnalysisTaskPi0V2.cxx:55
 AliAnalysisTaskPi0V2.cxx:56
 AliAnalysisTaskPi0V2.cxx:57
 AliAnalysisTaskPi0V2.cxx:58
 AliAnalysisTaskPi0V2.cxx:59
 AliAnalysisTaskPi0V2.cxx:60
 AliAnalysisTaskPi0V2.cxx:61
 AliAnalysisTaskPi0V2.cxx:62
 AliAnalysisTaskPi0V2.cxx:63
 AliAnalysisTaskPi0V2.cxx:64
 AliAnalysisTaskPi0V2.cxx:65
 AliAnalysisTaskPi0V2.cxx:66
 AliAnalysisTaskPi0V2.cxx:67
 AliAnalysisTaskPi0V2.cxx:68
 AliAnalysisTaskPi0V2.cxx:69
 AliAnalysisTaskPi0V2.cxx:70
 AliAnalysisTaskPi0V2.cxx:71
 AliAnalysisTaskPi0V2.cxx:72
 AliAnalysisTaskPi0V2.cxx:73
 AliAnalysisTaskPi0V2.cxx:74
 AliAnalysisTaskPi0V2.cxx:75
 AliAnalysisTaskPi0V2.cxx:76
 AliAnalysisTaskPi0V2.cxx:77
 AliAnalysisTaskPi0V2.cxx:78
 AliAnalysisTaskPi0V2.cxx:79
 AliAnalysisTaskPi0V2.cxx:80
 AliAnalysisTaskPi0V2.cxx:81
 AliAnalysisTaskPi0V2.cxx:82
 AliAnalysisTaskPi0V2.cxx:83
 AliAnalysisTaskPi0V2.cxx:84
 AliAnalysisTaskPi0V2.cxx:85
 AliAnalysisTaskPi0V2.cxx:86
 AliAnalysisTaskPi0V2.cxx:87
 AliAnalysisTaskPi0V2.cxx:88
 AliAnalysisTaskPi0V2.cxx:89
 AliAnalysisTaskPi0V2.cxx:90
 AliAnalysisTaskPi0V2.cxx:91
 AliAnalysisTaskPi0V2.cxx:92
 AliAnalysisTaskPi0V2.cxx:93
 AliAnalysisTaskPi0V2.cxx:94
 AliAnalysisTaskPi0V2.cxx:95
 AliAnalysisTaskPi0V2.cxx:96
 AliAnalysisTaskPi0V2.cxx:97
 AliAnalysisTaskPi0V2.cxx:98
 AliAnalysisTaskPi0V2.cxx:99
 AliAnalysisTaskPi0V2.cxx:100
 AliAnalysisTaskPi0V2.cxx:101
 AliAnalysisTaskPi0V2.cxx:102
 AliAnalysisTaskPi0V2.cxx:103
 AliAnalysisTaskPi0V2.cxx:104
 AliAnalysisTaskPi0V2.cxx:105
 AliAnalysisTaskPi0V2.cxx:106
 AliAnalysisTaskPi0V2.cxx:107
 AliAnalysisTaskPi0V2.cxx:108
 AliAnalysisTaskPi0V2.cxx:109
 AliAnalysisTaskPi0V2.cxx:110
 AliAnalysisTaskPi0V2.cxx:111
 AliAnalysisTaskPi0V2.cxx:112
 AliAnalysisTaskPi0V2.cxx:113
 AliAnalysisTaskPi0V2.cxx:114
 AliAnalysisTaskPi0V2.cxx:115
 AliAnalysisTaskPi0V2.cxx:116
 AliAnalysisTaskPi0V2.cxx:117
 AliAnalysisTaskPi0V2.cxx:118
 AliAnalysisTaskPi0V2.cxx:119
 AliAnalysisTaskPi0V2.cxx:120
 AliAnalysisTaskPi0V2.cxx:121
 AliAnalysisTaskPi0V2.cxx:122
 AliAnalysisTaskPi0V2.cxx:123
 AliAnalysisTaskPi0V2.cxx:124
 AliAnalysisTaskPi0V2.cxx:125
 AliAnalysisTaskPi0V2.cxx:126
 AliAnalysisTaskPi0V2.cxx:127
 AliAnalysisTaskPi0V2.cxx:128
 AliAnalysisTaskPi0V2.cxx:129
 AliAnalysisTaskPi0V2.cxx:130
 AliAnalysisTaskPi0V2.cxx:131
 AliAnalysisTaskPi0V2.cxx:132
 AliAnalysisTaskPi0V2.cxx:133
 AliAnalysisTaskPi0V2.cxx:134
 AliAnalysisTaskPi0V2.cxx:135
 AliAnalysisTaskPi0V2.cxx:136
 AliAnalysisTaskPi0V2.cxx:137
 AliAnalysisTaskPi0V2.cxx:138
 AliAnalysisTaskPi0V2.cxx:139
 AliAnalysisTaskPi0V2.cxx:140
 AliAnalysisTaskPi0V2.cxx:141
 AliAnalysisTaskPi0V2.cxx:142
 AliAnalysisTaskPi0V2.cxx:143
 AliAnalysisTaskPi0V2.cxx:144
 AliAnalysisTaskPi0V2.cxx:145
 AliAnalysisTaskPi0V2.cxx:146
 AliAnalysisTaskPi0V2.cxx:147
 AliAnalysisTaskPi0V2.cxx:148
 AliAnalysisTaskPi0V2.cxx:149
 AliAnalysisTaskPi0V2.cxx:150
 AliAnalysisTaskPi0V2.cxx:151
 AliAnalysisTaskPi0V2.cxx:152
 AliAnalysisTaskPi0V2.cxx:153
 AliAnalysisTaskPi0V2.cxx:154
 AliAnalysisTaskPi0V2.cxx:155
 AliAnalysisTaskPi0V2.cxx:156
 AliAnalysisTaskPi0V2.cxx:157
 AliAnalysisTaskPi0V2.cxx:158
 AliAnalysisTaskPi0V2.cxx:159
 AliAnalysisTaskPi0V2.cxx:160
 AliAnalysisTaskPi0V2.cxx:161
 AliAnalysisTaskPi0V2.cxx:162
 AliAnalysisTaskPi0V2.cxx:163
 AliAnalysisTaskPi0V2.cxx:164
 AliAnalysisTaskPi0V2.cxx:165
 AliAnalysisTaskPi0V2.cxx:166
 AliAnalysisTaskPi0V2.cxx:167
 AliAnalysisTaskPi0V2.cxx:168
 AliAnalysisTaskPi0V2.cxx:169
 AliAnalysisTaskPi0V2.cxx:170
 AliAnalysisTaskPi0V2.cxx:171
 AliAnalysisTaskPi0V2.cxx:172
 AliAnalysisTaskPi0V2.cxx:173
 AliAnalysisTaskPi0V2.cxx:174
 AliAnalysisTaskPi0V2.cxx:175
 AliAnalysisTaskPi0V2.cxx:176
 AliAnalysisTaskPi0V2.cxx:177
 AliAnalysisTaskPi0V2.cxx:178
 AliAnalysisTaskPi0V2.cxx:179
 AliAnalysisTaskPi0V2.cxx:180
 AliAnalysisTaskPi0V2.cxx:181
 AliAnalysisTaskPi0V2.cxx:182
 AliAnalysisTaskPi0V2.cxx:183
 AliAnalysisTaskPi0V2.cxx:184
 AliAnalysisTaskPi0V2.cxx:185
 AliAnalysisTaskPi0V2.cxx:186
 AliAnalysisTaskPi0V2.cxx:187
 AliAnalysisTaskPi0V2.cxx:188
 AliAnalysisTaskPi0V2.cxx:189
 AliAnalysisTaskPi0V2.cxx:190
 AliAnalysisTaskPi0V2.cxx:191
 AliAnalysisTaskPi0V2.cxx:192
 AliAnalysisTaskPi0V2.cxx:193
 AliAnalysisTaskPi0V2.cxx:194
 AliAnalysisTaskPi0V2.cxx:195
 AliAnalysisTaskPi0V2.cxx:196
 AliAnalysisTaskPi0V2.cxx:197
 AliAnalysisTaskPi0V2.cxx:198
 AliAnalysisTaskPi0V2.cxx:199
 AliAnalysisTaskPi0V2.cxx:200
 AliAnalysisTaskPi0V2.cxx:201
 AliAnalysisTaskPi0V2.cxx:202
 AliAnalysisTaskPi0V2.cxx:203
 AliAnalysisTaskPi0V2.cxx:204
 AliAnalysisTaskPi0V2.cxx:205
 AliAnalysisTaskPi0V2.cxx:206
 AliAnalysisTaskPi0V2.cxx:207
 AliAnalysisTaskPi0V2.cxx:208
 AliAnalysisTaskPi0V2.cxx:209
 AliAnalysisTaskPi0V2.cxx:210
 AliAnalysisTaskPi0V2.cxx:211
 AliAnalysisTaskPi0V2.cxx:212
 AliAnalysisTaskPi0V2.cxx:213
 AliAnalysisTaskPi0V2.cxx:214
 AliAnalysisTaskPi0V2.cxx:215
 AliAnalysisTaskPi0V2.cxx:216
 AliAnalysisTaskPi0V2.cxx:217
 AliAnalysisTaskPi0V2.cxx:218
 AliAnalysisTaskPi0V2.cxx:219
 AliAnalysisTaskPi0V2.cxx:220
 AliAnalysisTaskPi0V2.cxx:221
 AliAnalysisTaskPi0V2.cxx:222
 AliAnalysisTaskPi0V2.cxx:223
 AliAnalysisTaskPi0V2.cxx:224
 AliAnalysisTaskPi0V2.cxx:225
 AliAnalysisTaskPi0V2.cxx:226
 AliAnalysisTaskPi0V2.cxx:227
 AliAnalysisTaskPi0V2.cxx:228
 AliAnalysisTaskPi0V2.cxx:229
 AliAnalysisTaskPi0V2.cxx:230
 AliAnalysisTaskPi0V2.cxx:231
 AliAnalysisTaskPi0V2.cxx:232
 AliAnalysisTaskPi0V2.cxx:233
 AliAnalysisTaskPi0V2.cxx:234
 AliAnalysisTaskPi0V2.cxx:235
 AliAnalysisTaskPi0V2.cxx:236
 AliAnalysisTaskPi0V2.cxx:237
 AliAnalysisTaskPi0V2.cxx:238
 AliAnalysisTaskPi0V2.cxx:239
 AliAnalysisTaskPi0V2.cxx:240
 AliAnalysisTaskPi0V2.cxx:241
 AliAnalysisTaskPi0V2.cxx:242
 AliAnalysisTaskPi0V2.cxx:243
 AliAnalysisTaskPi0V2.cxx:244
 AliAnalysisTaskPi0V2.cxx:245
 AliAnalysisTaskPi0V2.cxx:246
 AliAnalysisTaskPi0V2.cxx:247
 AliAnalysisTaskPi0V2.cxx:248
 AliAnalysisTaskPi0V2.cxx:249
 AliAnalysisTaskPi0V2.cxx:250
 AliAnalysisTaskPi0V2.cxx:251
 AliAnalysisTaskPi0V2.cxx:252
 AliAnalysisTaskPi0V2.cxx:253
 AliAnalysisTaskPi0V2.cxx:254
 AliAnalysisTaskPi0V2.cxx:255
 AliAnalysisTaskPi0V2.cxx:256
 AliAnalysisTaskPi0V2.cxx:257
 AliAnalysisTaskPi0V2.cxx:258
 AliAnalysisTaskPi0V2.cxx:259
 AliAnalysisTaskPi0V2.cxx:260
 AliAnalysisTaskPi0V2.cxx:261
 AliAnalysisTaskPi0V2.cxx:262
 AliAnalysisTaskPi0V2.cxx:263
 AliAnalysisTaskPi0V2.cxx:264
 AliAnalysisTaskPi0V2.cxx:265
 AliAnalysisTaskPi0V2.cxx:266
 AliAnalysisTaskPi0V2.cxx:267
 AliAnalysisTaskPi0V2.cxx:268
 AliAnalysisTaskPi0V2.cxx:269
 AliAnalysisTaskPi0V2.cxx:270
 AliAnalysisTaskPi0V2.cxx:271
 AliAnalysisTaskPi0V2.cxx:272
 AliAnalysisTaskPi0V2.cxx:273
 AliAnalysisTaskPi0V2.cxx:274
 AliAnalysisTaskPi0V2.cxx:275
 AliAnalysisTaskPi0V2.cxx:276
 AliAnalysisTaskPi0V2.cxx:277
 AliAnalysisTaskPi0V2.cxx:278
 AliAnalysisTaskPi0V2.cxx:279
 AliAnalysisTaskPi0V2.cxx:280
 AliAnalysisTaskPi0V2.cxx:281
 AliAnalysisTaskPi0V2.cxx:282
 AliAnalysisTaskPi0V2.cxx:283
 AliAnalysisTaskPi0V2.cxx:284
 AliAnalysisTaskPi0V2.cxx:285
 AliAnalysisTaskPi0V2.cxx:286
 AliAnalysisTaskPi0V2.cxx:287
 AliAnalysisTaskPi0V2.cxx:288
 AliAnalysisTaskPi0V2.cxx:289
 AliAnalysisTaskPi0V2.cxx:290
 AliAnalysisTaskPi0V2.cxx:291
 AliAnalysisTaskPi0V2.cxx:292
 AliAnalysisTaskPi0V2.cxx:293
 AliAnalysisTaskPi0V2.cxx:294
 AliAnalysisTaskPi0V2.cxx:295
 AliAnalysisTaskPi0V2.cxx:296
 AliAnalysisTaskPi0V2.cxx:297
 AliAnalysisTaskPi0V2.cxx:298
 AliAnalysisTaskPi0V2.cxx:299
 AliAnalysisTaskPi0V2.cxx:300
 AliAnalysisTaskPi0V2.cxx:301
 AliAnalysisTaskPi0V2.cxx:302
 AliAnalysisTaskPi0V2.cxx:303
 AliAnalysisTaskPi0V2.cxx:304
 AliAnalysisTaskPi0V2.cxx:305
 AliAnalysisTaskPi0V2.cxx:306
 AliAnalysisTaskPi0V2.cxx:307
 AliAnalysisTaskPi0V2.cxx:308
 AliAnalysisTaskPi0V2.cxx:309
 AliAnalysisTaskPi0V2.cxx:310
 AliAnalysisTaskPi0V2.cxx:311
 AliAnalysisTaskPi0V2.cxx:312
 AliAnalysisTaskPi0V2.cxx:313
 AliAnalysisTaskPi0V2.cxx:314
 AliAnalysisTaskPi0V2.cxx:315
 AliAnalysisTaskPi0V2.cxx:316
 AliAnalysisTaskPi0V2.cxx:317
 AliAnalysisTaskPi0V2.cxx:318
 AliAnalysisTaskPi0V2.cxx:319
 AliAnalysisTaskPi0V2.cxx:320
 AliAnalysisTaskPi0V2.cxx:321
 AliAnalysisTaskPi0V2.cxx:322
 AliAnalysisTaskPi0V2.cxx:323
 AliAnalysisTaskPi0V2.cxx:324
 AliAnalysisTaskPi0V2.cxx:325
 AliAnalysisTaskPi0V2.cxx:326
 AliAnalysisTaskPi0V2.cxx:327
 AliAnalysisTaskPi0V2.cxx:328
 AliAnalysisTaskPi0V2.cxx:329
 AliAnalysisTaskPi0V2.cxx:330
 AliAnalysisTaskPi0V2.cxx:331
 AliAnalysisTaskPi0V2.cxx:332
 AliAnalysisTaskPi0V2.cxx:333
 AliAnalysisTaskPi0V2.cxx:334
 AliAnalysisTaskPi0V2.cxx:335
 AliAnalysisTaskPi0V2.cxx:336
 AliAnalysisTaskPi0V2.cxx:337
 AliAnalysisTaskPi0V2.cxx:338
 AliAnalysisTaskPi0V2.cxx:339
 AliAnalysisTaskPi0V2.cxx:340
 AliAnalysisTaskPi0V2.cxx:341
 AliAnalysisTaskPi0V2.cxx:342
 AliAnalysisTaskPi0V2.cxx:343
 AliAnalysisTaskPi0V2.cxx:344
 AliAnalysisTaskPi0V2.cxx:345
 AliAnalysisTaskPi0V2.cxx:346
 AliAnalysisTaskPi0V2.cxx:347
 AliAnalysisTaskPi0V2.cxx:348
 AliAnalysisTaskPi0V2.cxx:349
 AliAnalysisTaskPi0V2.cxx:350
 AliAnalysisTaskPi0V2.cxx:351
 AliAnalysisTaskPi0V2.cxx:352
 AliAnalysisTaskPi0V2.cxx:353
 AliAnalysisTaskPi0V2.cxx:354
 AliAnalysisTaskPi0V2.cxx:355
 AliAnalysisTaskPi0V2.cxx:356
 AliAnalysisTaskPi0V2.cxx:357
 AliAnalysisTaskPi0V2.cxx:358
 AliAnalysisTaskPi0V2.cxx:359
 AliAnalysisTaskPi0V2.cxx:360
 AliAnalysisTaskPi0V2.cxx:361
 AliAnalysisTaskPi0V2.cxx:362
 AliAnalysisTaskPi0V2.cxx:363
 AliAnalysisTaskPi0V2.cxx:364
 AliAnalysisTaskPi0V2.cxx:365
 AliAnalysisTaskPi0V2.cxx:366
 AliAnalysisTaskPi0V2.cxx:367
 AliAnalysisTaskPi0V2.cxx:368
 AliAnalysisTaskPi0V2.cxx:369
 AliAnalysisTaskPi0V2.cxx:370
 AliAnalysisTaskPi0V2.cxx:371
 AliAnalysisTaskPi0V2.cxx:372
 AliAnalysisTaskPi0V2.cxx:373
 AliAnalysisTaskPi0V2.cxx:374
 AliAnalysisTaskPi0V2.cxx:375
 AliAnalysisTaskPi0V2.cxx:376
 AliAnalysisTaskPi0V2.cxx:377
 AliAnalysisTaskPi0V2.cxx:378
 AliAnalysisTaskPi0V2.cxx:379
 AliAnalysisTaskPi0V2.cxx:380
 AliAnalysisTaskPi0V2.cxx:381
 AliAnalysisTaskPi0V2.cxx:382
 AliAnalysisTaskPi0V2.cxx:383
 AliAnalysisTaskPi0V2.cxx:384
 AliAnalysisTaskPi0V2.cxx:385
 AliAnalysisTaskPi0V2.cxx:386
 AliAnalysisTaskPi0V2.cxx:387
 AliAnalysisTaskPi0V2.cxx:388
 AliAnalysisTaskPi0V2.cxx:389
 AliAnalysisTaskPi0V2.cxx:390
 AliAnalysisTaskPi0V2.cxx:391
 AliAnalysisTaskPi0V2.cxx:392
 AliAnalysisTaskPi0V2.cxx:393
 AliAnalysisTaskPi0V2.cxx:394
 AliAnalysisTaskPi0V2.cxx:395
 AliAnalysisTaskPi0V2.cxx:396
 AliAnalysisTaskPi0V2.cxx:397
 AliAnalysisTaskPi0V2.cxx:398
 AliAnalysisTaskPi0V2.cxx:399
 AliAnalysisTaskPi0V2.cxx:400
 AliAnalysisTaskPi0V2.cxx:401
 AliAnalysisTaskPi0V2.cxx:402
 AliAnalysisTaskPi0V2.cxx:403
 AliAnalysisTaskPi0V2.cxx:404
 AliAnalysisTaskPi0V2.cxx:405
 AliAnalysisTaskPi0V2.cxx:406
 AliAnalysisTaskPi0V2.cxx:407
 AliAnalysisTaskPi0V2.cxx:408
 AliAnalysisTaskPi0V2.cxx:409
 AliAnalysisTaskPi0V2.cxx:410
 AliAnalysisTaskPi0V2.cxx:411
 AliAnalysisTaskPi0V2.cxx:412
 AliAnalysisTaskPi0V2.cxx:413
 AliAnalysisTaskPi0V2.cxx:414
 AliAnalysisTaskPi0V2.cxx:415
 AliAnalysisTaskPi0V2.cxx:416
 AliAnalysisTaskPi0V2.cxx:417
 AliAnalysisTaskPi0V2.cxx:418
 AliAnalysisTaskPi0V2.cxx:419
 AliAnalysisTaskPi0V2.cxx:420
 AliAnalysisTaskPi0V2.cxx:421
 AliAnalysisTaskPi0V2.cxx:422
 AliAnalysisTaskPi0V2.cxx:423
 AliAnalysisTaskPi0V2.cxx:424
 AliAnalysisTaskPi0V2.cxx:425
 AliAnalysisTaskPi0V2.cxx:426
 AliAnalysisTaskPi0V2.cxx:427
 AliAnalysisTaskPi0V2.cxx:428
 AliAnalysisTaskPi0V2.cxx:429
 AliAnalysisTaskPi0V2.cxx:430
 AliAnalysisTaskPi0V2.cxx:431
 AliAnalysisTaskPi0V2.cxx:432
 AliAnalysisTaskPi0V2.cxx:433
 AliAnalysisTaskPi0V2.cxx:434
 AliAnalysisTaskPi0V2.cxx:435
 AliAnalysisTaskPi0V2.cxx:436
 AliAnalysisTaskPi0V2.cxx:437
 AliAnalysisTaskPi0V2.cxx:438
 AliAnalysisTaskPi0V2.cxx:439
 AliAnalysisTaskPi0V2.cxx:440
 AliAnalysisTaskPi0V2.cxx:441
 AliAnalysisTaskPi0V2.cxx:442
 AliAnalysisTaskPi0V2.cxx:443
 AliAnalysisTaskPi0V2.cxx:444
 AliAnalysisTaskPi0V2.cxx:445
 AliAnalysisTaskPi0V2.cxx:446
 AliAnalysisTaskPi0V2.cxx:447
 AliAnalysisTaskPi0V2.cxx:448
 AliAnalysisTaskPi0V2.cxx:449
 AliAnalysisTaskPi0V2.cxx:450
 AliAnalysisTaskPi0V2.cxx:451
 AliAnalysisTaskPi0V2.cxx:452
 AliAnalysisTaskPi0V2.cxx:453
 AliAnalysisTaskPi0V2.cxx:454
 AliAnalysisTaskPi0V2.cxx:455
 AliAnalysisTaskPi0V2.cxx:456
 AliAnalysisTaskPi0V2.cxx:457
 AliAnalysisTaskPi0V2.cxx:458
 AliAnalysisTaskPi0V2.cxx:459
 AliAnalysisTaskPi0V2.cxx:460
 AliAnalysisTaskPi0V2.cxx:461
 AliAnalysisTaskPi0V2.cxx:462
 AliAnalysisTaskPi0V2.cxx:463
 AliAnalysisTaskPi0V2.cxx:464
 AliAnalysisTaskPi0V2.cxx:465
 AliAnalysisTaskPi0V2.cxx:466
 AliAnalysisTaskPi0V2.cxx:467
 AliAnalysisTaskPi0V2.cxx:468
 AliAnalysisTaskPi0V2.cxx:469
 AliAnalysisTaskPi0V2.cxx:470
 AliAnalysisTaskPi0V2.cxx:471
 AliAnalysisTaskPi0V2.cxx:472
 AliAnalysisTaskPi0V2.cxx:473
 AliAnalysisTaskPi0V2.cxx:474
 AliAnalysisTaskPi0V2.cxx:475
 AliAnalysisTaskPi0V2.cxx:476
 AliAnalysisTaskPi0V2.cxx:477
 AliAnalysisTaskPi0V2.cxx:478
 AliAnalysisTaskPi0V2.cxx:479
 AliAnalysisTaskPi0V2.cxx:480
 AliAnalysisTaskPi0V2.cxx:481
 AliAnalysisTaskPi0V2.cxx:482
 AliAnalysisTaskPi0V2.cxx:483
 AliAnalysisTaskPi0V2.cxx:484
 AliAnalysisTaskPi0V2.cxx:485
 AliAnalysisTaskPi0V2.cxx:486
 AliAnalysisTaskPi0V2.cxx:487
 AliAnalysisTaskPi0V2.cxx:488
 AliAnalysisTaskPi0V2.cxx:489
 AliAnalysisTaskPi0V2.cxx:490
 AliAnalysisTaskPi0V2.cxx:491
 AliAnalysisTaskPi0V2.cxx:492
 AliAnalysisTaskPi0V2.cxx:493
 AliAnalysisTaskPi0V2.cxx:494
 AliAnalysisTaskPi0V2.cxx:495
 AliAnalysisTaskPi0V2.cxx:496
 AliAnalysisTaskPi0V2.cxx:497
 AliAnalysisTaskPi0V2.cxx:498
 AliAnalysisTaskPi0V2.cxx:499
 AliAnalysisTaskPi0V2.cxx:500
 AliAnalysisTaskPi0V2.cxx:501
 AliAnalysisTaskPi0V2.cxx:502
 AliAnalysisTaskPi0V2.cxx:503
 AliAnalysisTaskPi0V2.cxx:504
 AliAnalysisTaskPi0V2.cxx:505
 AliAnalysisTaskPi0V2.cxx:506
 AliAnalysisTaskPi0V2.cxx:507
 AliAnalysisTaskPi0V2.cxx:508
 AliAnalysisTaskPi0V2.cxx:509
 AliAnalysisTaskPi0V2.cxx:510
 AliAnalysisTaskPi0V2.cxx:511
 AliAnalysisTaskPi0V2.cxx:512
 AliAnalysisTaskPi0V2.cxx:513
 AliAnalysisTaskPi0V2.cxx:514
 AliAnalysisTaskPi0V2.cxx:515
 AliAnalysisTaskPi0V2.cxx:516
 AliAnalysisTaskPi0V2.cxx:517
 AliAnalysisTaskPi0V2.cxx:518
 AliAnalysisTaskPi0V2.cxx:519
 AliAnalysisTaskPi0V2.cxx:520
 AliAnalysisTaskPi0V2.cxx:521
 AliAnalysisTaskPi0V2.cxx:522
 AliAnalysisTaskPi0V2.cxx:523
 AliAnalysisTaskPi0V2.cxx:524
 AliAnalysisTaskPi0V2.cxx:525
 AliAnalysisTaskPi0V2.cxx:526
 AliAnalysisTaskPi0V2.cxx:527
 AliAnalysisTaskPi0V2.cxx:528
 AliAnalysisTaskPi0V2.cxx:529
 AliAnalysisTaskPi0V2.cxx:530
 AliAnalysisTaskPi0V2.cxx:531
 AliAnalysisTaskPi0V2.cxx:532
 AliAnalysisTaskPi0V2.cxx:533
 AliAnalysisTaskPi0V2.cxx:534
 AliAnalysisTaskPi0V2.cxx:535
 AliAnalysisTaskPi0V2.cxx:536
 AliAnalysisTaskPi0V2.cxx:537
 AliAnalysisTaskPi0V2.cxx:538
 AliAnalysisTaskPi0V2.cxx:539
 AliAnalysisTaskPi0V2.cxx:540
 AliAnalysisTaskPi0V2.cxx:541
 AliAnalysisTaskPi0V2.cxx:542
 AliAnalysisTaskPi0V2.cxx:543
 AliAnalysisTaskPi0V2.cxx:544
 AliAnalysisTaskPi0V2.cxx:545
 AliAnalysisTaskPi0V2.cxx:546
 AliAnalysisTaskPi0V2.cxx:547
 AliAnalysisTaskPi0V2.cxx:548
 AliAnalysisTaskPi0V2.cxx:549
 AliAnalysisTaskPi0V2.cxx:550
 AliAnalysisTaskPi0V2.cxx:551
 AliAnalysisTaskPi0V2.cxx:552
 AliAnalysisTaskPi0V2.cxx:553
 AliAnalysisTaskPi0V2.cxx:554
 AliAnalysisTaskPi0V2.cxx:555
 AliAnalysisTaskPi0V2.cxx:556
 AliAnalysisTaskPi0V2.cxx:557
 AliAnalysisTaskPi0V2.cxx:558
 AliAnalysisTaskPi0V2.cxx:559
 AliAnalysisTaskPi0V2.cxx:560
 AliAnalysisTaskPi0V2.cxx:561
 AliAnalysisTaskPi0V2.cxx:562
 AliAnalysisTaskPi0V2.cxx:563
 AliAnalysisTaskPi0V2.cxx:564
 AliAnalysisTaskPi0V2.cxx:565
 AliAnalysisTaskPi0V2.cxx:566
 AliAnalysisTaskPi0V2.cxx:567
 AliAnalysisTaskPi0V2.cxx:568
 AliAnalysisTaskPi0V2.cxx:569
 AliAnalysisTaskPi0V2.cxx:570
 AliAnalysisTaskPi0V2.cxx:571
 AliAnalysisTaskPi0V2.cxx:572
 AliAnalysisTaskPi0V2.cxx:573
 AliAnalysisTaskPi0V2.cxx:574
 AliAnalysisTaskPi0V2.cxx:575
 AliAnalysisTaskPi0V2.cxx:576
 AliAnalysisTaskPi0V2.cxx:577
 AliAnalysisTaskPi0V2.cxx:578
 AliAnalysisTaskPi0V2.cxx:579
 AliAnalysisTaskPi0V2.cxx:580
 AliAnalysisTaskPi0V2.cxx:581
 AliAnalysisTaskPi0V2.cxx:582
 AliAnalysisTaskPi0V2.cxx:583
 AliAnalysisTaskPi0V2.cxx:584
 AliAnalysisTaskPi0V2.cxx:585
 AliAnalysisTaskPi0V2.cxx:586
 AliAnalysisTaskPi0V2.cxx:587
 AliAnalysisTaskPi0V2.cxx:588
 AliAnalysisTaskPi0V2.cxx:589
 AliAnalysisTaskPi0V2.cxx:590
 AliAnalysisTaskPi0V2.cxx:591
 AliAnalysisTaskPi0V2.cxx:592
 AliAnalysisTaskPi0V2.cxx:593
 AliAnalysisTaskPi0V2.cxx:594
 AliAnalysisTaskPi0V2.cxx:595
 AliAnalysisTaskPi0V2.cxx:596
 AliAnalysisTaskPi0V2.cxx:597
 AliAnalysisTaskPi0V2.cxx:598
 AliAnalysisTaskPi0V2.cxx:599
 AliAnalysisTaskPi0V2.cxx:600
 AliAnalysisTaskPi0V2.cxx:601
 AliAnalysisTaskPi0V2.cxx:602
 AliAnalysisTaskPi0V2.cxx:603
 AliAnalysisTaskPi0V2.cxx:604
 AliAnalysisTaskPi0V2.cxx:605
 AliAnalysisTaskPi0V2.cxx:606
 AliAnalysisTaskPi0V2.cxx:607
 AliAnalysisTaskPi0V2.cxx:608
 AliAnalysisTaskPi0V2.cxx:609
 AliAnalysisTaskPi0V2.cxx:610
 AliAnalysisTaskPi0V2.cxx:611
 AliAnalysisTaskPi0V2.cxx:612
 AliAnalysisTaskPi0V2.cxx:613
 AliAnalysisTaskPi0V2.cxx:614
 AliAnalysisTaskPi0V2.cxx:615
 AliAnalysisTaskPi0V2.cxx:616
 AliAnalysisTaskPi0V2.cxx:617
 AliAnalysisTaskPi0V2.cxx:618
 AliAnalysisTaskPi0V2.cxx:619
 AliAnalysisTaskPi0V2.cxx:620
 AliAnalysisTaskPi0V2.cxx:621
 AliAnalysisTaskPi0V2.cxx:622
 AliAnalysisTaskPi0V2.cxx:623
 AliAnalysisTaskPi0V2.cxx:624
 AliAnalysisTaskPi0V2.cxx:625
 AliAnalysisTaskPi0V2.cxx:626
 AliAnalysisTaskPi0V2.cxx:627
 AliAnalysisTaskPi0V2.cxx:628
 AliAnalysisTaskPi0V2.cxx:629
 AliAnalysisTaskPi0V2.cxx:630
 AliAnalysisTaskPi0V2.cxx:631
 AliAnalysisTaskPi0V2.cxx:632
 AliAnalysisTaskPi0V2.cxx:633
 AliAnalysisTaskPi0V2.cxx:634
 AliAnalysisTaskPi0V2.cxx:635
 AliAnalysisTaskPi0V2.cxx:636
 AliAnalysisTaskPi0V2.cxx:637
 AliAnalysisTaskPi0V2.cxx:638
 AliAnalysisTaskPi0V2.cxx:639
 AliAnalysisTaskPi0V2.cxx:640
 AliAnalysisTaskPi0V2.cxx:641
 AliAnalysisTaskPi0V2.cxx:642
 AliAnalysisTaskPi0V2.cxx:643
 AliAnalysisTaskPi0V2.cxx:644
 AliAnalysisTaskPi0V2.cxx:645
 AliAnalysisTaskPi0V2.cxx:646
 AliAnalysisTaskPi0V2.cxx:647
 AliAnalysisTaskPi0V2.cxx:648
 AliAnalysisTaskPi0V2.cxx:649
 AliAnalysisTaskPi0V2.cxx:650
 AliAnalysisTaskPi0V2.cxx:651
 AliAnalysisTaskPi0V2.cxx:652
 AliAnalysisTaskPi0V2.cxx:653
 AliAnalysisTaskPi0V2.cxx:654
 AliAnalysisTaskPi0V2.cxx:655
 AliAnalysisTaskPi0V2.cxx:656
 AliAnalysisTaskPi0V2.cxx:657
 AliAnalysisTaskPi0V2.cxx:658
 AliAnalysisTaskPi0V2.cxx:659
 AliAnalysisTaskPi0V2.cxx:660
 AliAnalysisTaskPi0V2.cxx:661
 AliAnalysisTaskPi0V2.cxx:662
 AliAnalysisTaskPi0V2.cxx:663
 AliAnalysisTaskPi0V2.cxx:664
 AliAnalysisTaskPi0V2.cxx:665
 AliAnalysisTaskPi0V2.cxx:666
 AliAnalysisTaskPi0V2.cxx:667
 AliAnalysisTaskPi0V2.cxx:668
 AliAnalysisTaskPi0V2.cxx:669
 AliAnalysisTaskPi0V2.cxx:670
 AliAnalysisTaskPi0V2.cxx:671
 AliAnalysisTaskPi0V2.cxx:672
 AliAnalysisTaskPi0V2.cxx:673
 AliAnalysisTaskPi0V2.cxx:674
 AliAnalysisTaskPi0V2.cxx:675
 AliAnalysisTaskPi0V2.cxx:676
 AliAnalysisTaskPi0V2.cxx:677
 AliAnalysisTaskPi0V2.cxx:678
 AliAnalysisTaskPi0V2.cxx:679
 AliAnalysisTaskPi0V2.cxx:680
 AliAnalysisTaskPi0V2.cxx:681
 AliAnalysisTaskPi0V2.cxx:682
 AliAnalysisTaskPi0V2.cxx:683
 AliAnalysisTaskPi0V2.cxx:684
 AliAnalysisTaskPi0V2.cxx:685
 AliAnalysisTaskPi0V2.cxx:686
 AliAnalysisTaskPi0V2.cxx:687
 AliAnalysisTaskPi0V2.cxx:688
 AliAnalysisTaskPi0V2.cxx:689
 AliAnalysisTaskPi0V2.cxx:690
 AliAnalysisTaskPi0V2.cxx:691
 AliAnalysisTaskPi0V2.cxx:692
 AliAnalysisTaskPi0V2.cxx:693
 AliAnalysisTaskPi0V2.cxx:694
 AliAnalysisTaskPi0V2.cxx:695
 AliAnalysisTaskPi0V2.cxx:696
 AliAnalysisTaskPi0V2.cxx:697
 AliAnalysisTaskPi0V2.cxx:698
 AliAnalysisTaskPi0V2.cxx:699
 AliAnalysisTaskPi0V2.cxx:700
 AliAnalysisTaskPi0V2.cxx:701
 AliAnalysisTaskPi0V2.cxx:702
 AliAnalysisTaskPi0V2.cxx:703
 AliAnalysisTaskPi0V2.cxx:704
 AliAnalysisTaskPi0V2.cxx:705
 AliAnalysisTaskPi0V2.cxx:706
 AliAnalysisTaskPi0V2.cxx:707
 AliAnalysisTaskPi0V2.cxx:708
 AliAnalysisTaskPi0V2.cxx:709
 AliAnalysisTaskPi0V2.cxx:710
 AliAnalysisTaskPi0V2.cxx:711
 AliAnalysisTaskPi0V2.cxx:712
 AliAnalysisTaskPi0V2.cxx:713
 AliAnalysisTaskPi0V2.cxx:714
 AliAnalysisTaskPi0V2.cxx:715
 AliAnalysisTaskPi0V2.cxx:716
 AliAnalysisTaskPi0V2.cxx:717
 AliAnalysisTaskPi0V2.cxx:718
 AliAnalysisTaskPi0V2.cxx:719
 AliAnalysisTaskPi0V2.cxx:720
 AliAnalysisTaskPi0V2.cxx:721
 AliAnalysisTaskPi0V2.cxx:722
 AliAnalysisTaskPi0V2.cxx:723
 AliAnalysisTaskPi0V2.cxx:724
 AliAnalysisTaskPi0V2.cxx:725
 AliAnalysisTaskPi0V2.cxx:726
 AliAnalysisTaskPi0V2.cxx:727
 AliAnalysisTaskPi0V2.cxx:728
 AliAnalysisTaskPi0V2.cxx:729
 AliAnalysisTaskPi0V2.cxx:730
 AliAnalysisTaskPi0V2.cxx:731
 AliAnalysisTaskPi0V2.cxx:732
 AliAnalysisTaskPi0V2.cxx:733
 AliAnalysisTaskPi0V2.cxx:734
 AliAnalysisTaskPi0V2.cxx:735
 AliAnalysisTaskPi0V2.cxx:736
 AliAnalysisTaskPi0V2.cxx:737
 AliAnalysisTaskPi0V2.cxx:738
 AliAnalysisTaskPi0V2.cxx:739
 AliAnalysisTaskPi0V2.cxx:740
 AliAnalysisTaskPi0V2.cxx:741
 AliAnalysisTaskPi0V2.cxx:742
 AliAnalysisTaskPi0V2.cxx:743
 AliAnalysisTaskPi0V2.cxx:744
 AliAnalysisTaskPi0V2.cxx:745
 AliAnalysisTaskPi0V2.cxx:746
 AliAnalysisTaskPi0V2.cxx:747
 AliAnalysisTaskPi0V2.cxx:748
 AliAnalysisTaskPi0V2.cxx:749
 AliAnalysisTaskPi0V2.cxx:750
 AliAnalysisTaskPi0V2.cxx:751
 AliAnalysisTaskPi0V2.cxx:752
 AliAnalysisTaskPi0V2.cxx:753
 AliAnalysisTaskPi0V2.cxx:754
 AliAnalysisTaskPi0V2.cxx:755
 AliAnalysisTaskPi0V2.cxx:756
 AliAnalysisTaskPi0V2.cxx:757
 AliAnalysisTaskPi0V2.cxx:758
 AliAnalysisTaskPi0V2.cxx:759
 AliAnalysisTaskPi0V2.cxx:760
 AliAnalysisTaskPi0V2.cxx:761
 AliAnalysisTaskPi0V2.cxx:762
 AliAnalysisTaskPi0V2.cxx:763
 AliAnalysisTaskPi0V2.cxx:764
 AliAnalysisTaskPi0V2.cxx:765
 AliAnalysisTaskPi0V2.cxx:766
 AliAnalysisTaskPi0V2.cxx:767
 AliAnalysisTaskPi0V2.cxx:768
 AliAnalysisTaskPi0V2.cxx:769
 AliAnalysisTaskPi0V2.cxx:770
 AliAnalysisTaskPi0V2.cxx:771
 AliAnalysisTaskPi0V2.cxx:772
 AliAnalysisTaskPi0V2.cxx:773
 AliAnalysisTaskPi0V2.cxx:774
 AliAnalysisTaskPi0V2.cxx:775
 AliAnalysisTaskPi0V2.cxx:776
 AliAnalysisTaskPi0V2.cxx:777
 AliAnalysisTaskPi0V2.cxx:778
 AliAnalysisTaskPi0V2.cxx:779
 AliAnalysisTaskPi0V2.cxx:780
 AliAnalysisTaskPi0V2.cxx:781
 AliAnalysisTaskPi0V2.cxx:782
 AliAnalysisTaskPi0V2.cxx:783
 AliAnalysisTaskPi0V2.cxx:784
 AliAnalysisTaskPi0V2.cxx:785
 AliAnalysisTaskPi0V2.cxx:786
 AliAnalysisTaskPi0V2.cxx:787
 AliAnalysisTaskPi0V2.cxx:788
 AliAnalysisTaskPi0V2.cxx:789
 AliAnalysisTaskPi0V2.cxx:790
 AliAnalysisTaskPi0V2.cxx:791
 AliAnalysisTaskPi0V2.cxx:792
 AliAnalysisTaskPi0V2.cxx:793
 AliAnalysisTaskPi0V2.cxx:794
 AliAnalysisTaskPi0V2.cxx:795
 AliAnalysisTaskPi0V2.cxx:796
 AliAnalysisTaskPi0V2.cxx:797
 AliAnalysisTaskPi0V2.cxx:798
 AliAnalysisTaskPi0V2.cxx:799
 AliAnalysisTaskPi0V2.cxx:800
 AliAnalysisTaskPi0V2.cxx:801
 AliAnalysisTaskPi0V2.cxx:802
 AliAnalysisTaskPi0V2.cxx:803
 AliAnalysisTaskPi0V2.cxx:804
 AliAnalysisTaskPi0V2.cxx:805
 AliAnalysisTaskPi0V2.cxx:806
 AliAnalysisTaskPi0V2.cxx:807
 AliAnalysisTaskPi0V2.cxx:808
 AliAnalysisTaskPi0V2.cxx:809
 AliAnalysisTaskPi0V2.cxx:810
 AliAnalysisTaskPi0V2.cxx:811
 AliAnalysisTaskPi0V2.cxx:812
 AliAnalysisTaskPi0V2.cxx:813
 AliAnalysisTaskPi0V2.cxx:814
 AliAnalysisTaskPi0V2.cxx:815
 AliAnalysisTaskPi0V2.cxx:816
 AliAnalysisTaskPi0V2.cxx:817
 AliAnalysisTaskPi0V2.cxx:818
 AliAnalysisTaskPi0V2.cxx:819
 AliAnalysisTaskPi0V2.cxx:820
 AliAnalysisTaskPi0V2.cxx:821
 AliAnalysisTaskPi0V2.cxx:822
 AliAnalysisTaskPi0V2.cxx:823
 AliAnalysisTaskPi0V2.cxx:824
 AliAnalysisTaskPi0V2.cxx:825
 AliAnalysisTaskPi0V2.cxx:826
 AliAnalysisTaskPi0V2.cxx:827
 AliAnalysisTaskPi0V2.cxx:828
 AliAnalysisTaskPi0V2.cxx:829
 AliAnalysisTaskPi0V2.cxx:830
 AliAnalysisTaskPi0V2.cxx:831
 AliAnalysisTaskPi0V2.cxx:832
 AliAnalysisTaskPi0V2.cxx:833
 AliAnalysisTaskPi0V2.cxx:834
 AliAnalysisTaskPi0V2.cxx:835
 AliAnalysisTaskPi0V2.cxx:836
 AliAnalysisTaskPi0V2.cxx:837
 AliAnalysisTaskPi0V2.cxx:838
 AliAnalysisTaskPi0V2.cxx:839
 AliAnalysisTaskPi0V2.cxx:840
 AliAnalysisTaskPi0V2.cxx:841
 AliAnalysisTaskPi0V2.cxx:842
 AliAnalysisTaskPi0V2.cxx:843
 AliAnalysisTaskPi0V2.cxx:844
 AliAnalysisTaskPi0V2.cxx:845
 AliAnalysisTaskPi0V2.cxx:846
 AliAnalysisTaskPi0V2.cxx:847
 AliAnalysisTaskPi0V2.cxx:848
 AliAnalysisTaskPi0V2.cxx:849
 AliAnalysisTaskPi0V2.cxx:850
 AliAnalysisTaskPi0V2.cxx:851
 AliAnalysisTaskPi0V2.cxx:852
 AliAnalysisTaskPi0V2.cxx:853
 AliAnalysisTaskPi0V2.cxx:854
 AliAnalysisTaskPi0V2.cxx:855
 AliAnalysisTaskPi0V2.cxx:856
 AliAnalysisTaskPi0V2.cxx:857
 AliAnalysisTaskPi0V2.cxx:858
 AliAnalysisTaskPi0V2.cxx:859
 AliAnalysisTaskPi0V2.cxx:860
 AliAnalysisTaskPi0V2.cxx:861
 AliAnalysisTaskPi0V2.cxx:862
 AliAnalysisTaskPi0V2.cxx:863
 AliAnalysisTaskPi0V2.cxx:864
 AliAnalysisTaskPi0V2.cxx:865
 AliAnalysisTaskPi0V2.cxx:866
 AliAnalysisTaskPi0V2.cxx:867
 AliAnalysisTaskPi0V2.cxx:868
 AliAnalysisTaskPi0V2.cxx:869
 AliAnalysisTaskPi0V2.cxx:870
 AliAnalysisTaskPi0V2.cxx:871
 AliAnalysisTaskPi0V2.cxx:872
 AliAnalysisTaskPi0V2.cxx:873
 AliAnalysisTaskPi0V2.cxx:874
 AliAnalysisTaskPi0V2.cxx:875
 AliAnalysisTaskPi0V2.cxx:876
 AliAnalysisTaskPi0V2.cxx:877
 AliAnalysisTaskPi0V2.cxx:878
 AliAnalysisTaskPi0V2.cxx:879
 AliAnalysisTaskPi0V2.cxx:880
 AliAnalysisTaskPi0V2.cxx:881
 AliAnalysisTaskPi0V2.cxx:882
 AliAnalysisTaskPi0V2.cxx:883
 AliAnalysisTaskPi0V2.cxx:884
 AliAnalysisTaskPi0V2.cxx:885
 AliAnalysisTaskPi0V2.cxx:886
 AliAnalysisTaskPi0V2.cxx:887
 AliAnalysisTaskPi0V2.cxx:888
 AliAnalysisTaskPi0V2.cxx:889
 AliAnalysisTaskPi0V2.cxx:890
 AliAnalysisTaskPi0V2.cxx:891
 AliAnalysisTaskPi0V2.cxx:892
 AliAnalysisTaskPi0V2.cxx:893
 AliAnalysisTaskPi0V2.cxx:894
 AliAnalysisTaskPi0V2.cxx:895
 AliAnalysisTaskPi0V2.cxx:896
 AliAnalysisTaskPi0V2.cxx:897
 AliAnalysisTaskPi0V2.cxx:898
 AliAnalysisTaskPi0V2.cxx:899
 AliAnalysisTaskPi0V2.cxx:900
 AliAnalysisTaskPi0V2.cxx:901
 AliAnalysisTaskPi0V2.cxx:902
 AliAnalysisTaskPi0V2.cxx:903
 AliAnalysisTaskPi0V2.cxx:904
 AliAnalysisTaskPi0V2.cxx:905
 AliAnalysisTaskPi0V2.cxx:906
 AliAnalysisTaskPi0V2.cxx:907
 AliAnalysisTaskPi0V2.cxx:908
 AliAnalysisTaskPi0V2.cxx:909
 AliAnalysisTaskPi0V2.cxx:910
 AliAnalysisTaskPi0V2.cxx:911
 AliAnalysisTaskPi0V2.cxx:912
 AliAnalysisTaskPi0V2.cxx:913
 AliAnalysisTaskPi0V2.cxx:914
 AliAnalysisTaskPi0V2.cxx:915
 AliAnalysisTaskPi0V2.cxx:916
 AliAnalysisTaskPi0V2.cxx:917
 AliAnalysisTaskPi0V2.cxx:918
 AliAnalysisTaskPi0V2.cxx:919
 AliAnalysisTaskPi0V2.cxx:920
 AliAnalysisTaskPi0V2.cxx:921
 AliAnalysisTaskPi0V2.cxx:922
 AliAnalysisTaskPi0V2.cxx:923
 AliAnalysisTaskPi0V2.cxx:924
 AliAnalysisTaskPi0V2.cxx:925
 AliAnalysisTaskPi0V2.cxx:926
 AliAnalysisTaskPi0V2.cxx:927
 AliAnalysisTaskPi0V2.cxx:928
 AliAnalysisTaskPi0V2.cxx:929
 AliAnalysisTaskPi0V2.cxx:930
 AliAnalysisTaskPi0V2.cxx:931
 AliAnalysisTaskPi0V2.cxx:932
 AliAnalysisTaskPi0V2.cxx:933
 AliAnalysisTaskPi0V2.cxx:934
 AliAnalysisTaskPi0V2.cxx:935
 AliAnalysisTaskPi0V2.cxx:936
 AliAnalysisTaskPi0V2.cxx:937
 AliAnalysisTaskPi0V2.cxx:938
 AliAnalysisTaskPi0V2.cxx:939
 AliAnalysisTaskPi0V2.cxx:940
 AliAnalysisTaskPi0V2.cxx:941
 AliAnalysisTaskPi0V2.cxx:942
 AliAnalysisTaskPi0V2.cxx:943
 AliAnalysisTaskPi0V2.cxx:944
 AliAnalysisTaskPi0V2.cxx:945
 AliAnalysisTaskPi0V2.cxx:946
 AliAnalysisTaskPi0V2.cxx:947
 AliAnalysisTaskPi0V2.cxx:948
 AliAnalysisTaskPi0V2.cxx:949
 AliAnalysisTaskPi0V2.cxx:950
 AliAnalysisTaskPi0V2.cxx:951
 AliAnalysisTaskPi0V2.cxx:952
 AliAnalysisTaskPi0V2.cxx:953
 AliAnalysisTaskPi0V2.cxx:954
 AliAnalysisTaskPi0V2.cxx:955
 AliAnalysisTaskPi0V2.cxx:956
 AliAnalysisTaskPi0V2.cxx:957
 AliAnalysisTaskPi0V2.cxx:958
 AliAnalysisTaskPi0V2.cxx:959
 AliAnalysisTaskPi0V2.cxx:960
 AliAnalysisTaskPi0V2.cxx:961
 AliAnalysisTaskPi0V2.cxx:962
 AliAnalysisTaskPi0V2.cxx:963
 AliAnalysisTaskPi0V2.cxx:964
 AliAnalysisTaskPi0V2.cxx:965
 AliAnalysisTaskPi0V2.cxx:966
 AliAnalysisTaskPi0V2.cxx:967
 AliAnalysisTaskPi0V2.cxx:968
 AliAnalysisTaskPi0V2.cxx:969
 AliAnalysisTaskPi0V2.cxx:970
 AliAnalysisTaskPi0V2.cxx:971
 AliAnalysisTaskPi0V2.cxx:972
 AliAnalysisTaskPi0V2.cxx:973
 AliAnalysisTaskPi0V2.cxx:974
 AliAnalysisTaskPi0V2.cxx:975
 AliAnalysisTaskPi0V2.cxx:976
 AliAnalysisTaskPi0V2.cxx:977
 AliAnalysisTaskPi0V2.cxx:978
 AliAnalysisTaskPi0V2.cxx:979
 AliAnalysisTaskPi0V2.cxx:980
 AliAnalysisTaskPi0V2.cxx:981
 AliAnalysisTaskPi0V2.cxx:982
 AliAnalysisTaskPi0V2.cxx:983
 AliAnalysisTaskPi0V2.cxx:984
 AliAnalysisTaskPi0V2.cxx:985
 AliAnalysisTaskPi0V2.cxx:986
 AliAnalysisTaskPi0V2.cxx:987
 AliAnalysisTaskPi0V2.cxx:988
 AliAnalysisTaskPi0V2.cxx:989
 AliAnalysisTaskPi0V2.cxx:990
 AliAnalysisTaskPi0V2.cxx:991
 AliAnalysisTaskPi0V2.cxx:992
 AliAnalysisTaskPi0V2.cxx:993
 AliAnalysisTaskPi0V2.cxx:994
 AliAnalysisTaskPi0V2.cxx:995
 AliAnalysisTaskPi0V2.cxx:996
 AliAnalysisTaskPi0V2.cxx:997
 AliAnalysisTaskPi0V2.cxx:998
 AliAnalysisTaskPi0V2.cxx:999
 AliAnalysisTaskPi0V2.cxx:1000
 AliAnalysisTaskPi0V2.cxx:1001
 AliAnalysisTaskPi0V2.cxx:1002
 AliAnalysisTaskPi0V2.cxx:1003
 AliAnalysisTaskPi0V2.cxx:1004
 AliAnalysisTaskPi0V2.cxx:1005
 AliAnalysisTaskPi0V2.cxx:1006
 AliAnalysisTaskPi0V2.cxx:1007
 AliAnalysisTaskPi0V2.cxx:1008
 AliAnalysisTaskPi0V2.cxx:1009
 AliAnalysisTaskPi0V2.cxx:1010
 AliAnalysisTaskPi0V2.cxx:1011
 AliAnalysisTaskPi0V2.cxx:1012
 AliAnalysisTaskPi0V2.cxx:1013
 AliAnalysisTaskPi0V2.cxx:1014
 AliAnalysisTaskPi0V2.cxx:1015
 AliAnalysisTaskPi0V2.cxx:1016
 AliAnalysisTaskPi0V2.cxx:1017
 AliAnalysisTaskPi0V2.cxx:1018
 AliAnalysisTaskPi0V2.cxx:1019
 AliAnalysisTaskPi0V2.cxx:1020
 AliAnalysisTaskPi0V2.cxx:1021
 AliAnalysisTaskPi0V2.cxx:1022
 AliAnalysisTaskPi0V2.cxx:1023
 AliAnalysisTaskPi0V2.cxx:1024
 AliAnalysisTaskPi0V2.cxx:1025
 AliAnalysisTaskPi0V2.cxx:1026
 AliAnalysisTaskPi0V2.cxx:1027
 AliAnalysisTaskPi0V2.cxx:1028
 AliAnalysisTaskPi0V2.cxx:1029
 AliAnalysisTaskPi0V2.cxx:1030
 AliAnalysisTaskPi0V2.cxx:1031
 AliAnalysisTaskPi0V2.cxx:1032
 AliAnalysisTaskPi0V2.cxx:1033
 AliAnalysisTaskPi0V2.cxx:1034
 AliAnalysisTaskPi0V2.cxx:1035
 AliAnalysisTaskPi0V2.cxx:1036
 AliAnalysisTaskPi0V2.cxx:1037
 AliAnalysisTaskPi0V2.cxx:1038
 AliAnalysisTaskPi0V2.cxx:1039
 AliAnalysisTaskPi0V2.cxx:1040
 AliAnalysisTaskPi0V2.cxx:1041
 AliAnalysisTaskPi0V2.cxx:1042
 AliAnalysisTaskPi0V2.cxx:1043
 AliAnalysisTaskPi0V2.cxx:1044
 AliAnalysisTaskPi0V2.cxx:1045
 AliAnalysisTaskPi0V2.cxx:1046
 AliAnalysisTaskPi0V2.cxx:1047
 AliAnalysisTaskPi0V2.cxx:1048
 AliAnalysisTaskPi0V2.cxx:1049
 AliAnalysisTaskPi0V2.cxx:1050
 AliAnalysisTaskPi0V2.cxx:1051
 AliAnalysisTaskPi0V2.cxx:1052
 AliAnalysisTaskPi0V2.cxx:1053
 AliAnalysisTaskPi0V2.cxx:1054
 AliAnalysisTaskPi0V2.cxx:1055
 AliAnalysisTaskPi0V2.cxx:1056
 AliAnalysisTaskPi0V2.cxx:1057
 AliAnalysisTaskPi0V2.cxx:1058
 AliAnalysisTaskPi0V2.cxx:1059
 AliAnalysisTaskPi0V2.cxx:1060
 AliAnalysisTaskPi0V2.cxx:1061
 AliAnalysisTaskPi0V2.cxx:1062
 AliAnalysisTaskPi0V2.cxx:1063
 AliAnalysisTaskPi0V2.cxx:1064
 AliAnalysisTaskPi0V2.cxx:1065
 AliAnalysisTaskPi0V2.cxx:1066
 AliAnalysisTaskPi0V2.cxx:1067
 AliAnalysisTaskPi0V2.cxx:1068
 AliAnalysisTaskPi0V2.cxx:1069
 AliAnalysisTaskPi0V2.cxx:1070
 AliAnalysisTaskPi0V2.cxx:1071
 AliAnalysisTaskPi0V2.cxx:1072
 AliAnalysisTaskPi0V2.cxx:1073
 AliAnalysisTaskPi0V2.cxx:1074
 AliAnalysisTaskPi0V2.cxx:1075
 AliAnalysisTaskPi0V2.cxx:1076
 AliAnalysisTaskPi0V2.cxx:1077
 AliAnalysisTaskPi0V2.cxx:1078
 AliAnalysisTaskPi0V2.cxx:1079
 AliAnalysisTaskPi0V2.cxx:1080
 AliAnalysisTaskPi0V2.cxx:1081
 AliAnalysisTaskPi0V2.cxx:1082
 AliAnalysisTaskPi0V2.cxx:1083
 AliAnalysisTaskPi0V2.cxx:1084
 AliAnalysisTaskPi0V2.cxx:1085
 AliAnalysisTaskPi0V2.cxx:1086
 AliAnalysisTaskPi0V2.cxx:1087
 AliAnalysisTaskPi0V2.cxx:1088
 AliAnalysisTaskPi0V2.cxx:1089
 AliAnalysisTaskPi0V2.cxx:1090
 AliAnalysisTaskPi0V2.cxx:1091
 AliAnalysisTaskPi0V2.cxx:1092
 AliAnalysisTaskPi0V2.cxx:1093
 AliAnalysisTaskPi0V2.cxx:1094
 AliAnalysisTaskPi0V2.cxx:1095
 AliAnalysisTaskPi0V2.cxx:1096
 AliAnalysisTaskPi0V2.cxx:1097
 AliAnalysisTaskPi0V2.cxx:1098
 AliAnalysisTaskPi0V2.cxx:1099
 AliAnalysisTaskPi0V2.cxx:1100
 AliAnalysisTaskPi0V2.cxx:1101
 AliAnalysisTaskPi0V2.cxx:1102
 AliAnalysisTaskPi0V2.cxx:1103
 AliAnalysisTaskPi0V2.cxx:1104
 AliAnalysisTaskPi0V2.cxx:1105
 AliAnalysisTaskPi0V2.cxx:1106
 AliAnalysisTaskPi0V2.cxx:1107
 AliAnalysisTaskPi0V2.cxx:1108
 AliAnalysisTaskPi0V2.cxx:1109
 AliAnalysisTaskPi0V2.cxx:1110
 AliAnalysisTaskPi0V2.cxx:1111
 AliAnalysisTaskPi0V2.cxx:1112
 AliAnalysisTaskPi0V2.cxx:1113
 AliAnalysisTaskPi0V2.cxx:1114
 AliAnalysisTaskPi0V2.cxx:1115
 AliAnalysisTaskPi0V2.cxx:1116
 AliAnalysisTaskPi0V2.cxx:1117
 AliAnalysisTaskPi0V2.cxx:1118
 AliAnalysisTaskPi0V2.cxx:1119
 AliAnalysisTaskPi0V2.cxx:1120
 AliAnalysisTaskPi0V2.cxx:1121
 AliAnalysisTaskPi0V2.cxx:1122
 AliAnalysisTaskPi0V2.cxx:1123
 AliAnalysisTaskPi0V2.cxx:1124
 AliAnalysisTaskPi0V2.cxx:1125
 AliAnalysisTaskPi0V2.cxx:1126
 AliAnalysisTaskPi0V2.cxx:1127
 AliAnalysisTaskPi0V2.cxx:1128
 AliAnalysisTaskPi0V2.cxx:1129
 AliAnalysisTaskPi0V2.cxx:1130
 AliAnalysisTaskPi0V2.cxx:1131
 AliAnalysisTaskPi0V2.cxx:1132
 AliAnalysisTaskPi0V2.cxx:1133
 AliAnalysisTaskPi0V2.cxx:1134
 AliAnalysisTaskPi0V2.cxx:1135
 AliAnalysisTaskPi0V2.cxx:1136
 AliAnalysisTaskPi0V2.cxx:1137
 AliAnalysisTaskPi0V2.cxx:1138
 AliAnalysisTaskPi0V2.cxx:1139
 AliAnalysisTaskPi0V2.cxx:1140
 AliAnalysisTaskPi0V2.cxx:1141
 AliAnalysisTaskPi0V2.cxx:1142
 AliAnalysisTaskPi0V2.cxx:1143
 AliAnalysisTaskPi0V2.cxx:1144
 AliAnalysisTaskPi0V2.cxx:1145
 AliAnalysisTaskPi0V2.cxx:1146
 AliAnalysisTaskPi0V2.cxx:1147
 AliAnalysisTaskPi0V2.cxx:1148
 AliAnalysisTaskPi0V2.cxx:1149
 AliAnalysisTaskPi0V2.cxx:1150
 AliAnalysisTaskPi0V2.cxx:1151
 AliAnalysisTaskPi0V2.cxx:1152
 AliAnalysisTaskPi0V2.cxx:1153
 AliAnalysisTaskPi0V2.cxx:1154
 AliAnalysisTaskPi0V2.cxx:1155
 AliAnalysisTaskPi0V2.cxx:1156
 AliAnalysisTaskPi0V2.cxx:1157
 AliAnalysisTaskPi0V2.cxx:1158
 AliAnalysisTaskPi0V2.cxx:1159
 AliAnalysisTaskPi0V2.cxx:1160
 AliAnalysisTaskPi0V2.cxx:1161
 AliAnalysisTaskPi0V2.cxx:1162
 AliAnalysisTaskPi0V2.cxx:1163
 AliAnalysisTaskPi0V2.cxx:1164
 AliAnalysisTaskPi0V2.cxx:1165
 AliAnalysisTaskPi0V2.cxx:1166
 AliAnalysisTaskPi0V2.cxx:1167
 AliAnalysisTaskPi0V2.cxx:1168
 AliAnalysisTaskPi0V2.cxx:1169
 AliAnalysisTaskPi0V2.cxx:1170
 AliAnalysisTaskPi0V2.cxx:1171
 AliAnalysisTaskPi0V2.cxx:1172
 AliAnalysisTaskPi0V2.cxx:1173
 AliAnalysisTaskPi0V2.cxx:1174
 AliAnalysisTaskPi0V2.cxx:1175
 AliAnalysisTaskPi0V2.cxx:1176
 AliAnalysisTaskPi0V2.cxx:1177
 AliAnalysisTaskPi0V2.cxx:1178
 AliAnalysisTaskPi0V2.cxx:1179
 AliAnalysisTaskPi0V2.cxx:1180
 AliAnalysisTaskPi0V2.cxx:1181
 AliAnalysisTaskPi0V2.cxx:1182
 AliAnalysisTaskPi0V2.cxx:1183
 AliAnalysisTaskPi0V2.cxx:1184
 AliAnalysisTaskPi0V2.cxx:1185
 AliAnalysisTaskPi0V2.cxx:1186
 AliAnalysisTaskPi0V2.cxx:1187
 AliAnalysisTaskPi0V2.cxx:1188
 AliAnalysisTaskPi0V2.cxx:1189
 AliAnalysisTaskPi0V2.cxx:1190
 AliAnalysisTaskPi0V2.cxx:1191
 AliAnalysisTaskPi0V2.cxx:1192
 AliAnalysisTaskPi0V2.cxx:1193
 AliAnalysisTaskPi0V2.cxx:1194
 AliAnalysisTaskPi0V2.cxx:1195
 AliAnalysisTaskPi0V2.cxx:1196
 AliAnalysisTaskPi0V2.cxx:1197
 AliAnalysisTaskPi0V2.cxx:1198
 AliAnalysisTaskPi0V2.cxx:1199
 AliAnalysisTaskPi0V2.cxx:1200
 AliAnalysisTaskPi0V2.cxx:1201
 AliAnalysisTaskPi0V2.cxx:1202
 AliAnalysisTaskPi0V2.cxx:1203
 AliAnalysisTaskPi0V2.cxx:1204
 AliAnalysisTaskPi0V2.cxx:1205
 AliAnalysisTaskPi0V2.cxx:1206
 AliAnalysisTaskPi0V2.cxx:1207
 AliAnalysisTaskPi0V2.cxx:1208
 AliAnalysisTaskPi0V2.cxx:1209
 AliAnalysisTaskPi0V2.cxx:1210
 AliAnalysisTaskPi0V2.cxx:1211
 AliAnalysisTaskPi0V2.cxx:1212
 AliAnalysisTaskPi0V2.cxx:1213
 AliAnalysisTaskPi0V2.cxx:1214
 AliAnalysisTaskPi0V2.cxx:1215
 AliAnalysisTaskPi0V2.cxx:1216
 AliAnalysisTaskPi0V2.cxx:1217
 AliAnalysisTaskPi0V2.cxx:1218
 AliAnalysisTaskPi0V2.cxx:1219
 AliAnalysisTaskPi0V2.cxx:1220
 AliAnalysisTaskPi0V2.cxx:1221
 AliAnalysisTaskPi0V2.cxx:1222
 AliAnalysisTaskPi0V2.cxx:1223
 AliAnalysisTaskPi0V2.cxx:1224
 AliAnalysisTaskPi0V2.cxx:1225
 AliAnalysisTaskPi0V2.cxx:1226
 AliAnalysisTaskPi0V2.cxx:1227
 AliAnalysisTaskPi0V2.cxx:1228
 AliAnalysisTaskPi0V2.cxx:1229
 AliAnalysisTaskPi0V2.cxx:1230
 AliAnalysisTaskPi0V2.cxx:1231
 AliAnalysisTaskPi0V2.cxx:1232
 AliAnalysisTaskPi0V2.cxx:1233
 AliAnalysisTaskPi0V2.cxx:1234
 AliAnalysisTaskPi0V2.cxx:1235
 AliAnalysisTaskPi0V2.cxx:1236
 AliAnalysisTaskPi0V2.cxx:1237
 AliAnalysisTaskPi0V2.cxx:1238
 AliAnalysisTaskPi0V2.cxx:1239
 AliAnalysisTaskPi0V2.cxx:1240
 AliAnalysisTaskPi0V2.cxx:1241
 AliAnalysisTaskPi0V2.cxx:1242
 AliAnalysisTaskPi0V2.cxx:1243
 AliAnalysisTaskPi0V2.cxx:1244
 AliAnalysisTaskPi0V2.cxx:1245
 AliAnalysisTaskPi0V2.cxx:1246
 AliAnalysisTaskPi0V2.cxx:1247
 AliAnalysisTaskPi0V2.cxx:1248
 AliAnalysisTaskPi0V2.cxx:1249
 AliAnalysisTaskPi0V2.cxx:1250
 AliAnalysisTaskPi0V2.cxx:1251
 AliAnalysisTaskPi0V2.cxx:1252
 AliAnalysisTaskPi0V2.cxx:1253
 AliAnalysisTaskPi0V2.cxx:1254
 AliAnalysisTaskPi0V2.cxx:1255
 AliAnalysisTaskPi0V2.cxx:1256
 AliAnalysisTaskPi0V2.cxx:1257
 AliAnalysisTaskPi0V2.cxx:1258
 AliAnalysisTaskPi0V2.cxx:1259
 AliAnalysisTaskPi0V2.cxx:1260
 AliAnalysisTaskPi0V2.cxx:1261
 AliAnalysisTaskPi0V2.cxx:1262
 AliAnalysisTaskPi0V2.cxx:1263
 AliAnalysisTaskPi0V2.cxx:1264
 AliAnalysisTaskPi0V2.cxx:1265
 AliAnalysisTaskPi0V2.cxx:1266
 AliAnalysisTaskPi0V2.cxx:1267
 AliAnalysisTaskPi0V2.cxx:1268
 AliAnalysisTaskPi0V2.cxx:1269
 AliAnalysisTaskPi0V2.cxx:1270
 AliAnalysisTaskPi0V2.cxx:1271
 AliAnalysisTaskPi0V2.cxx:1272
 AliAnalysisTaskPi0V2.cxx:1273
 AliAnalysisTaskPi0V2.cxx:1274
 AliAnalysisTaskPi0V2.cxx:1275
 AliAnalysisTaskPi0V2.cxx:1276
 AliAnalysisTaskPi0V2.cxx:1277
 AliAnalysisTaskPi0V2.cxx:1278
 AliAnalysisTaskPi0V2.cxx:1279
 AliAnalysisTaskPi0V2.cxx:1280
 AliAnalysisTaskPi0V2.cxx:1281
 AliAnalysisTaskPi0V2.cxx:1282
 AliAnalysisTaskPi0V2.cxx:1283
 AliAnalysisTaskPi0V2.cxx:1284
 AliAnalysisTaskPi0V2.cxx:1285
 AliAnalysisTaskPi0V2.cxx:1286
 AliAnalysisTaskPi0V2.cxx:1287
 AliAnalysisTaskPi0V2.cxx:1288
 AliAnalysisTaskPi0V2.cxx:1289
 AliAnalysisTaskPi0V2.cxx:1290
 AliAnalysisTaskPi0V2.cxx:1291
 AliAnalysisTaskPi0V2.cxx:1292
 AliAnalysisTaskPi0V2.cxx:1293
 AliAnalysisTaskPi0V2.cxx:1294
 AliAnalysisTaskPi0V2.cxx:1295
 AliAnalysisTaskPi0V2.cxx:1296
 AliAnalysisTaskPi0V2.cxx:1297
 AliAnalysisTaskPi0V2.cxx:1298
 AliAnalysisTaskPi0V2.cxx:1299
 AliAnalysisTaskPi0V2.cxx:1300
 AliAnalysisTaskPi0V2.cxx:1301
 AliAnalysisTaskPi0V2.cxx:1302
 AliAnalysisTaskPi0V2.cxx:1303
 AliAnalysisTaskPi0V2.cxx:1304
 AliAnalysisTaskPi0V2.cxx:1305
 AliAnalysisTaskPi0V2.cxx:1306
 AliAnalysisTaskPi0V2.cxx:1307
 AliAnalysisTaskPi0V2.cxx:1308
 AliAnalysisTaskPi0V2.cxx:1309
 AliAnalysisTaskPi0V2.cxx:1310
 AliAnalysisTaskPi0V2.cxx:1311
 AliAnalysisTaskPi0V2.cxx:1312
 AliAnalysisTaskPi0V2.cxx:1313
 AliAnalysisTaskPi0V2.cxx:1314
 AliAnalysisTaskPi0V2.cxx:1315
 AliAnalysisTaskPi0V2.cxx:1316
 AliAnalysisTaskPi0V2.cxx:1317
 AliAnalysisTaskPi0V2.cxx:1318
 AliAnalysisTaskPi0V2.cxx:1319
 AliAnalysisTaskPi0V2.cxx:1320
 AliAnalysisTaskPi0V2.cxx:1321
 AliAnalysisTaskPi0V2.cxx:1322
 AliAnalysisTaskPi0V2.cxx:1323
 AliAnalysisTaskPi0V2.cxx:1324
 AliAnalysisTaskPi0V2.cxx:1325
 AliAnalysisTaskPi0V2.cxx:1326
 AliAnalysisTaskPi0V2.cxx:1327
 AliAnalysisTaskPi0V2.cxx:1328
 AliAnalysisTaskPi0V2.cxx:1329
 AliAnalysisTaskPi0V2.cxx:1330
 AliAnalysisTaskPi0V2.cxx:1331
 AliAnalysisTaskPi0V2.cxx:1332
 AliAnalysisTaskPi0V2.cxx:1333
 AliAnalysisTaskPi0V2.cxx:1334
 AliAnalysisTaskPi0V2.cxx:1335
 AliAnalysisTaskPi0V2.cxx:1336
 AliAnalysisTaskPi0V2.cxx:1337
 AliAnalysisTaskPi0V2.cxx:1338
 AliAnalysisTaskPi0V2.cxx:1339
 AliAnalysisTaskPi0V2.cxx:1340
 AliAnalysisTaskPi0V2.cxx:1341
 AliAnalysisTaskPi0V2.cxx:1342
 AliAnalysisTaskPi0V2.cxx:1343
 AliAnalysisTaskPi0V2.cxx:1344
 AliAnalysisTaskPi0V2.cxx:1345
 AliAnalysisTaskPi0V2.cxx:1346
 AliAnalysisTaskPi0V2.cxx:1347
 AliAnalysisTaskPi0V2.cxx:1348
 AliAnalysisTaskPi0V2.cxx:1349
 AliAnalysisTaskPi0V2.cxx:1350
 AliAnalysisTaskPi0V2.cxx:1351
 AliAnalysisTaskPi0V2.cxx:1352
 AliAnalysisTaskPi0V2.cxx:1353
 AliAnalysisTaskPi0V2.cxx:1354
 AliAnalysisTaskPi0V2.cxx:1355
 AliAnalysisTaskPi0V2.cxx:1356
 AliAnalysisTaskPi0V2.cxx:1357
 AliAnalysisTaskPi0V2.cxx:1358
 AliAnalysisTaskPi0V2.cxx:1359
 AliAnalysisTaskPi0V2.cxx:1360