ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, 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 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 for the photon identification.
// Clusters from calorimeters are identified as photons
// and kept in the AOD. Few histograms produced.
// Produces input for other analysis classes like AliAnaPi0,
// AliAnaParticleHadronCorrelation ...
//
// -- Author: Gustavo Conesa (LNF-INFN)
//////////////////////////////////////////////////////////////////////////////


// --- ROOT system ---
#include <TH2F.h>
#include <TClonesArray.h>
#include <TObjString.h>
#include "TParticle.h"
#include "TDatabasePDG.h"

// --- Analysis system ---
#include "AliAnaPhoton.h"
#include "AliCaloTrackReader.h"
#include "AliStack.h"
#include "AliCaloPID.h"
#include "AliMCAnalysisUtils.h"
#include "AliFiducialCut.h"
#include "AliVCluster.h"
#include "AliAODMCParticle.h"
#include "AliMixedEvent.h"
#include "AliAODEvent.h"
#include "AliESDEvent.h"

// --- Detectors ---
#include "AliPHOSGeoUtils.h"
#include "AliEMCALGeometry.h"

ClassImp(AliAnaPhoton)

//____________________________
AliAnaPhoton::AliAnaPhoton() :
AliAnaCaloTrackCorrBaseClass(),
fMinDist(0.),                 fMinDist2(0.),                fMinDist3(0.),
fRejectTrackMatch(0),         fFillTMHisto(kFALSE),
fTimeCutMin(-10000),          fTimeCutMax(10000),
fNCellsCut(0),
fNLMCutMin(-1),               fNLMCutMax(10),
fFillSSHistograms(kFALSE),    fFillOnlySimpleSSHisto(1),
fNOriginHistograms(9),        fNPrimaryHistograms(5),
fMomentum(),                  fPrimaryMom(),
// Histograms

// Control histograms
fhNCellsE(0),                 fhCellsE(0),
fhMaxCellDiffClusterE(0),     fhTimePt(0),                  fhEtaPhi(0),

fhEPhoton(0),                 fhPtPhoton(0),
fhPhiPhoton(0),               fhEtaPhoton(0),
fhEtaPhiPhoton(0),            fhEtaPhi05Photon(0),
fhPtCentralityPhoton(0),      fhPtEventPlanePhoton(0),

// Shower shape histograms
fhNLocMax(0),
fhDispE(0),                   fhLam0E(0),                   fhLam1E(0),
fhDispETRD(0),                fhLam0ETRD(0),                fhLam1ETRD(0),
fhDispETM(0),                 fhLam0ETM(0),                 fhLam1ETM(0),
fhDispETMTRD(0),              fhLam0ETMTRD(0),              fhLam1ETMTRD(0),

fhNCellsLam0LowE(0),          fhNCellsLam1LowE(0),          fhNCellsDispLowE(0),
fhNCellsLam0HighE(0),         fhNCellsLam1HighE(0),         fhNCellsDispHighE(0),

fhEtaLam0LowE(0),             fhPhiLam0LowE(0),
fhEtaLam0HighE(0),            fhPhiLam0HighE(0),
fhLam0DispLowE(0),            fhLam0DispHighE(0),
fhLam1Lam0LowE(0),            fhLam1Lam0HighE(0),
fhDispLam1LowE(0),            fhDispLam1HighE(0),
fhDispEtaE(0),                fhDispPhiE(0),
fhSumEtaE(0),                 fhSumPhiE(0),                 fhSumEtaPhiE(0),
fhDispEtaPhiDiffE(0),         fhSphericityE(0),
fhDispSumEtaDiffE(0),         fhDispSumPhiDiffE(0),

// MC histograms
fhMCPhotonELambda0NoOverlap(0),       fhMCPhotonELambda0TwoOverlap(0),      fhMCPhotonELambda0NOverlap(0),
// Embedding
fhEmbeddedSignalFractionEnergy(0),
fhEmbedPhotonELambda0FullSignal(0),   fhEmbedPhotonELambda0MostlySignal(0),
fhEmbedPhotonELambda0MostlyBkg(0),    fhEmbedPhotonELambda0FullBkg(0),
fhEmbedPi0ELambda0FullSignal(0),      fhEmbedPi0ELambda0MostlySignal(0),
fhEmbedPi0ELambda0MostlyBkg(0),       fhEmbedPi0ELambda0FullBkg(0),

fhTimePtPhotonNoCut(0),               fhTimePtPhotonSPD(0),
fhTimeNPileUpVertSPD(0),              fhTimeNPileUpVertTrack(0),
fhPtPhotonNPileUpSPDVtx(0),           fhPtPhotonNPileUpTrkVtx(0),
fhPtPhotonNPileUpSPDVtxTimeCut(0),    fhPtPhotonNPileUpTrkVtxTimeCut(0),
fhPtPhotonNPileUpSPDVtxTimeCut2(0),   fhPtPhotonNPileUpTrkVtxTimeCut2(0),

fhEClusterSM(0),                      fhEPhotonSM(0),
fhPtClusterSM(0),                     fhPtPhotonSM(0)
{
  //default ctor
  
  for(Int_t i = 0; i < fgkNmcTypes; i++)
  {
    fhMCPt     [i] = 0;
    fhMCE      [i] = 0;
    fhMCPhi    [i] = 0;
    fhMCEta    [i] = 0;
    fhMCDeltaE [i] = 0;
    fhMCDeltaPt[i] = 0;
    fhMC2E     [i] = 0;
    fhMC2Pt    [i] = 0;
  }
  
  for(Int_t i = 0; i < fgkNmcPrimTypes; i++)
  {
    fhPtPrimMC [i] = 0;
    fhEPrimMC  [i] = 0;
    fhPhiPrimMC[i] = 0;
    fhEtaPrimMC[i] = 0;
    fhYPrimMC  [i] = 0;
    
    fhPtPrimMCAcc [i] = 0;
    fhEPrimMCAcc  [i] = 0;
    fhPhiPrimMCAcc[i] = 0;
    fhEtaPrimMCAcc[i] = 0;
    fhYPrimMCAcc  [i] = 0;
  }
  
  for(Int_t i = 0; i < 7; i++)
  {
    fhDispEtaDispPhi[i] = 0;
    fhLambda0DispPhi[i] = 0;
    fhLambda0DispEta[i] = 0;
    
    fhPtPhotonPileUp[i] = 0;
    fhClusterTimeDiffPhotonPileUp [i] = 0;
    
    for(Int_t j = 0; j < fgkNssTypes; j++)
    {
      fhMCDispEtaDispPhi[i][j] = 0;
      fhMCLambda0DispEta[i][j] = 0;
      fhMCLambda0DispPhi[i][j] = 0;
    }
  }
  
  for(Int_t i = 0; i < fgkNssTypes; i++)
  {
    fhMCELambda0    [i]                  = 0;
    fhMCELambda1    [i]                  = 0;
    fhMCEDispersion [i]                  = 0;
    fhMCNCellsE     [i]                  = 0;
    fhMCMaxCellDiffClusterE[i]           = 0;
    fhLambda0DispEta[i]                  = 0;
    fhLambda0DispPhi[i]                  = 0;
    
    fhMCLambda0vsClusterMaxCellDiffE0[i] = 0;
    fhMCLambda0vsClusterMaxCellDiffE2[i] = 0;
    fhMCLambda0vsClusterMaxCellDiffE6[i] = 0;
    fhMCNCellsvsClusterMaxCellDiffE0 [i] = 0;
    fhMCNCellsvsClusterMaxCellDiffE2 [i] = 0;
    fhMCNCellsvsClusterMaxCellDiffE6 [i] = 0;
    
    fhMCEDispEta       [i]               = 0;
    fhMCEDispPhi       [i]               = 0;
    fhMCESumEtaPhi     [i]               = 0;
    fhMCEDispEtaPhiDiff[i]               = 0;
    fhMCESphericity    [i]               = 0;
  }
  
  for(Int_t i = 0; i < 5; i++)
  {
    fhClusterCutsE [i] = 0;
    fhClusterCutsPt[i] = 0;
  }
  
  // Track matching residuals
  for(Int_t i = 0; i < 2; i++)
  {
    fhTrackMatchedDEta   [i] = 0;             fhTrackMatchedDPhi   [i] = 0;         fhTrackMatchedDEtaDPhi   [i] = 0;
    fhTrackMatchedDEtaNeg[i] = 0;             fhTrackMatchedDPhiNeg[i] = 0;         fhTrackMatchedDEtaDPhiNeg[i] = 0;
    fhTrackMatchedDEtaPos[i] = 0;             fhTrackMatchedDPhiPos[i] = 0;         fhTrackMatchedDEtaDPhiPos[i] = 0;
    fhTrackMatchedDEtaTRD[i] = 0;             fhTrackMatchedDPhiTRD[i] = 0;
    fhTrackMatchedDEtaMCOverlap[i] = 0;       fhTrackMatchedDPhiMCOverlap[i] = 0;
    fhTrackMatchedDEtaMCNoOverlap[i] = 0;     fhTrackMatchedDPhiMCNoOverlap[i] = 0;
    fhTrackMatchedDEtaMCConversion[i] = 0;    fhTrackMatchedDPhiMCConversion[i] = 0;
    fhTrackMatchedMCParticle[i] = 0;          fhTrackMatchedMCParticle[i] = 0;
    fhdEdx[i] = 0;                            fhEOverP[i] = 0;
    fhEOverPTRD[i] = 0;
  }
  
  //Initialize parameters
  InitParameters();
  
}

//_________________________________________________________________________________________
Bool_t  AliAnaPhoton::ClusterSelected(AliVCluster* calo, Int_t nMaxima)
{
  //Select clusters if they pass different cuts
  
  Float_t ptcluster  = fMomentum.Pt();
  Float_t ecluster   = fMomentum.E();
  Float_t etacluster = fMomentum.Eta();
  Float_t phicluster = fMomentum.Phi();

  if(phicluster < 0) phicluster+=TMath::TwoPi();
  
  Bool_t matched = IsTrackMatched(calo,GetReader()->GetInputEvent());
  
  AliDebug(2,Form("Current Event %d; Before selection : E %2.2f, pT %2.2f, phi %2.2f, eta %2.2f",
           GetReader()->GetEventNumber(),
           ecluster,ptcluster, phicluster*TMath::RadToDeg(),etacluster));
  
  fhClusterCutsE [1]->Fill( ecluster);
  fhClusterCutsPt[1]->Fill(ptcluster);
  
  if(ecluster > 0.5) fhEtaPhi->Fill(etacluster, phicluster);
  
  Int_t   nSM  = GetModuleNumber(calo);
  if(nSM < GetCaloUtils()->GetNumberOfSuperModulesUsed() && nSM >=0)
  {
    fhEClusterSM ->Fill(ecluster ,nSM);
    fhPtClusterSM->Fill(ptcluster,nSM);
  }
  
  //.......................................
  //If too small or big energy, skip it
  if(ecluster < GetMinEnergy() || ecluster > GetMaxEnergy() ) return kFALSE ;
  
  AliDebug(2,Form("\t Cluster %d Pass E Cut",calo->GetID()));
  
  fhClusterCutsE [2]->Fill( ecluster);
  fhClusterCutsPt[2]->Fill(ptcluster);
  
  //.......................................
  // TOF cut, BE CAREFUL WITH THIS CUT
  Double_t tof = calo->GetTOF()*1e9;
  if(tof < fTimeCutMin || tof > fTimeCutMax) return kFALSE;
  
  AliDebug(2,Form("\t Cluster %d Pass Time Cut",calo->GetID()));
  
  fhClusterCutsE [3]->Fill( ecluster);
  fhClusterCutsPt[3]->Fill(ptcluster);
  
  //.......................................
  if(calo->GetNCells() <= fNCellsCut && GetReader()->GetDataType() != AliCaloTrackReader::kMC) return kFALSE;
  
  AliDebug(2,Form("\t Cluster %d Pass NCell Cut",calo->GetID()));
  
  fhClusterCutsE [4]->Fill( ecluster);
  fhClusterCutsPt[4]->Fill(ptcluster);
  
  if(nMaxima < fNLMCutMin || nMaxima > fNLMCutMax) return kFALSE ;
  AliDebug(2,Form("\t Cluster %d pass NLM %d of out of range",calo->GetID(), nMaxima));
  
  fhClusterCutsE [5]->Fill( ecluster);
  fhClusterCutsPt[5]->Fill(ptcluster);
  
  //.......................................
  //Check acceptance selection
  if(IsFiducialCutOn())
  {
    Bool_t in = GetFiducialCut()->IsInFiducialCut(fMomentum.Eta(),fMomentum.Phi(),GetCalorimeter()) ;
    if(! in ) return kFALSE ;
  }
  
  AliDebug(2,Form("\t Fiducial cut passed"));
  
  fhClusterCutsE [6]->Fill( ecluster);
  fhClusterCutsPt[6]->Fill(ptcluster);
  
  //.......................................
  //Skip matched clusters with tracks
  
  // Fill matching residual histograms before PID cuts
  if(fFillTMHisto) FillTrackMatchingResidualHistograms(calo,0);
  
  if(fRejectTrackMatch)
  {
    if(matched)
    {
      AliDebug(2,"\t Reject track-matched clusters");
      return kFALSE ;
    }
    else
      AliDebug(2,"\t Track-matching cut passed");
  }// reject matched clusters
  
  fhClusterCutsE [7]->Fill( ecluster);
  fhClusterCutsPt[7]->Fill(ptcluster);
  
  //.......................................
  //Check Distance to Bad channel, set bit.
  Double_t distBad=calo->GetDistanceToBadChannel() ; //Distance to bad channel
  if(distBad < 0.) distBad=9999. ; //workout strange convension dist = -1. ;
  if(distBad < fMinDist)
  {//In bad channel (PHOS cristal size 2.2x2.2 cm), EMCAL ( cell units )
    return kFALSE ;
  }
  else AliDebug(2,Form("\t Bad channel cut passed %4.2f > %2.2f",distBad, fMinDist));
  
  fhClusterCutsE [8]->Fill( ecluster);
  fhClusterCutsPt[8]->Fill(ptcluster);
  
  AliDebug(1,Form("Current Event %d; After  selection : E %2.2f, pT %2.2f, phi %2.2f, eta %2.2f",
           GetReader()->GetEventNumber(),
           ecluster, ptcluster,fMomentum.Phi()*TMath::RadToDeg(),fMomentum.Eta()));
  
  //All checks passed, cluster selected
  return kTRUE;
  
}

//___________________________________________
void AliAnaPhoton::FillAcceptanceHistograms()
{
  //Fill acceptance histograms if MC data is available
  
  Double_t photonY   = -100 ;
  Double_t photonE   = -1 ;
  Double_t photonPt  = -1 ;
  Double_t photonPhi =  100 ;
  Double_t photonEta = -1 ;
  
  Int_t    pdg       =  0 ;
  Int_t    tag       =  0 ;
  Int_t    status    =  0 ;
  Int_t    mcIndex   =  0 ;
  Int_t    nprim     =  0 ;
  Bool_t   inacceptance = kFALSE ;
  
  TParticle        * primStack = 0;
  AliAODMCParticle * primAOD   = 0;
  
  // Get the ESD MC particles container
  AliStack * stack = 0;
  if( GetReader()->ReadStack() )
  {
    stack = GetMCStack();
    if( !stack )
    {
      AliFatal("Stack not available, is the MC handler called? STOP");
      return;
    }
    nprim = stack->GetNtrack();
  }
  
  // Get the AOD MC particles container
  TClonesArray * mcparticles = 0;
  if( GetReader()->ReadAODMCParticles() )
  {
    mcparticles = GetReader()->GetAODMCParticles();
    if( !mcparticles )
    {
      AliFatal("Standard MCParticles not available!");
      return;
    }
    nprim = mcparticles->GetEntriesFast();
  }
  
  for(Int_t i=0 ; i < nprim; i++)
  {
    if(GetReader()->AcceptOnlyHIJINGLabels() && !GetReader()->IsHIJINGLabel(i)) continue ;
    
    if(GetReader()->ReadStack())
    {
      primStack = stack->Particle(i) ;
      if(!primStack)
      {
        AliWarning("ESD primaries pointer not available!!");
        continue;
      }
      
      pdg    = primStack->GetPdgCode();
      status = primStack->GetStatusCode();
      
      if(primStack->Energy() == TMath::Abs(primStack->Pz()))  continue ; //Protection against floating point exception
      
      //printf("i %d, %s %d  %s %d \n",i, stack->Particle(i)->GetName(), stack->Particle(i)->GetPdgCode(),
      //       prim->GetName(), prim->GetPdgCode());
      
      //Photon kinematics
      primStack->Momentum(fMomentum);
      
      photonY = 0.5*TMath::Log((primStack->Energy()+primStack->Pz())/(primStack->Energy()-primStack->Pz())) ;
    }
    else
    {
      primAOD = (AliAODMCParticle *) mcparticles->At(i);
      if(!primAOD)
      {
        AliWarning("AOD primaries pointer not available!!");
        continue;
      }
      
      pdg    = primAOD->GetPdgCode();
      status = primAOD->GetStatus();
      
      if(primAOD->E() == TMath::Abs(primAOD->Pz()))  continue ; //Protection against floating point exception
      
      //Photon kinematics
      fMomentum.SetPxPyPzE(primAOD->Px(),primAOD->Py(),primAOD->Pz(),primAOD->E());

      photonY = 0.5*TMath::Log((primAOD->E()+primAOD->Pz())/(primAOD->E()-primAOD->Pz())) ;
    }

    // Select only photons in the final state
    if(pdg != 22 ) continue ;
    
    // If too small or too large pt, skip, same cut as for data analysis
    photonPt  = fMomentum.Pt () ;
    
    if(photonPt < GetMinPt() || photonPt > GetMaxPt() ) continue ;
    
    photonE   = fMomentum.E  () ;
    photonEta = fMomentum.Eta() ;
    photonPhi = fMomentum.Phi() ;
    
    if(photonPhi < 0) photonPhi+=TMath::TwoPi();
    
    // Check if photons hit desired acceptance
    inacceptance = kTRUE;
    
    // Check same fidutial borders as in data analysis on top of real acceptance if real was requested.
    if( IsFiducialCutOn() && !GetFiducialCut()->IsInFiducialCut(fMomentum.Eta(),fMomentum.Phi(),GetCalorimeter())) inacceptance = kFALSE ;
    
    // Check if photons hit the Calorimeter acceptance
    if(IsRealCaloAcceptanceOn()) // defined on base class
    {
      if(GetReader()->ReadStack()          &&
         !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(GetCalorimeter(), primStack)) inacceptance = kFALSE ;
      if(GetReader()->ReadAODMCParticles() &&
         !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(GetCalorimeter(), primAOD  )) inacceptance = kFALSE ;
    }
    
    // Get tag of this particle photon from fragmentation, decay, prompt ...
    // Set the origin of the photon.
    tag = GetMCAnalysisUtils()->CheckOrigin(i,GetReader(),GetCalorimeter());
    
    if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))
    {
      // A conversion photon from a hadron, skip this kind of photon
      // printf("AliAnaPhoton::FillAcceptanceHistograms() - not a photon, weird!\n ");
      // GetMCAnalysisUtils()->PrintMCTag(tag);
      
      continue;
    }
    
    // Consider only final state particles, but this depends on generator,
    // status 1 is the usual one, in case of not being ok, leave the possibility
    // to not consider this.
    if(status > 1) continue ; // Avoid "partonic" photons
    
    Bool_t takeIt  = kFALSE ;
    if(status == 1 && GetMCAnalysisUtils()->GetMCGenerator() != AliMCAnalysisUtils::kBoxLike ) takeIt = kTRUE ;

    if     (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) continue;
    
    //Origin of photon
    if     (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt))
    {
      mcIndex = kmcPPrompt;
    }
    else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation))
    {
      mcIndex = kmcPFragmentation ;
    }
    else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCISR))
    {
      mcIndex = kmcPISR;
    }
    else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay))
    {
      mcIndex = kmcPPi0Decay;
    }
    else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay))
    {
      mcIndex = kmcPEtaDecay;
    }
    else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay))
    {
      mcIndex = kmcPOtherDecay;
    }
    else
    {
      // Other decay but from non final state particle
      mcIndex = kmcPOtherDecay;
    }//Other origin
    
    if(!takeIt &&  (mcIndex == kmcPPi0Decay || mcIndex == kmcPOtherDecay)) takeIt = kTRUE ;

    if(!takeIt) continue ;
      
    //Fill histograms for all photons
    fhYPrimMC[kmcPPhoton]->Fill(photonPt, photonY) ;
    if(TMath::Abs(photonY) < 1.0)
    {
      fhEPrimMC  [kmcPPhoton]->Fill(photonE ) ;
      fhPtPrimMC [kmcPPhoton]->Fill(photonPt) ;
      fhPhiPrimMC[kmcPPhoton]->Fill(photonE , photonPhi) ;
      fhEtaPrimMC[kmcPPhoton]->Fill(photonE , photonEta) ;
    }
    
    if(inacceptance)
    {
      fhEPrimMCAcc  [kmcPPhoton]->Fill(photonE ) ;
      fhPtPrimMCAcc [kmcPPhoton]->Fill(photonPt) ;
      fhPhiPrimMCAcc[kmcPPhoton]->Fill(photonE , photonPhi) ;
      fhEtaPrimMCAcc[kmcPPhoton]->Fill(photonE , photonEta) ;
      fhYPrimMCAcc  [kmcPPhoton]->Fill(photonE , photonY) ;
    }//Accepted
    
    //Fill histograms for photons origin
    if(mcIndex < fNPrimaryHistograms)
    {
      fhYPrimMC[mcIndex]->Fill(photonPt, photonY) ;
      if(TMath::Abs(photonY) < 1.0)
      {
        fhEPrimMC  [mcIndex]->Fill(photonE ) ;
        fhPtPrimMC [mcIndex]->Fill(photonPt) ;
        fhPhiPrimMC[mcIndex]->Fill(photonE , photonPhi) ;
        fhEtaPrimMC[mcIndex]->Fill(photonE , photonEta) ;
      }
      
      if(inacceptance)
      {
        fhEPrimMCAcc  [mcIndex]->Fill(photonE ) ;
        fhPtPrimMCAcc [mcIndex]->Fill(photonPt) ;
        fhPhiPrimMCAcc[mcIndex]->Fill(photonE , photonPhi) ;
        fhEtaPrimMCAcc[mcIndex]->Fill(photonE , photonEta) ;
        fhYPrimMCAcc  [mcIndex]->Fill(photonE , photonY) ;
      }//Accepted
    }
  }//loop on primaries

}

//________________________________________________________________________________
void AliAnaPhoton::FillPileUpHistograms(AliVCluster* cluster, AliVCaloCells *cells,
                                        Int_t absIdMax)
{
  // Fill some histograms to understand pile-up
  
  Float_t pt   = fMomentum.Pt();
  Float_t time = cluster->GetTOF()*1.e9;
  
  AliVEvent * event = GetReader()->GetInputEvent();
  
  if(GetReader()->IsPileUpFromSPD())               fhPtPhotonPileUp[0]->Fill(pt);
  if(GetReader()->IsPileUpFromEMCal())             fhPtPhotonPileUp[1]->Fill(pt);
  if(GetReader()->IsPileUpFromSPDOrEMCal())        fhPtPhotonPileUp[2]->Fill(pt);
  if(GetReader()->IsPileUpFromSPDAndEMCal())       fhPtPhotonPileUp[3]->Fill(pt);
  if(GetReader()->IsPileUpFromSPDAndNotEMCal())    fhPtPhotonPileUp[4]->Fill(pt);
  if(GetReader()->IsPileUpFromEMCalAndNotSPD())    fhPtPhotonPileUp[5]->Fill(pt);
  if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) fhPtPhotonPileUp[6]->Fill(pt);
  
  fhTimePtPhotonNoCut->Fill(pt,time);
  if(GetReader()->IsPileUpFromSPD()) fhTimePtPhotonSPD->Fill(pt,time);
  
  // cells inside the cluster

  //Loop on cells inside cluster, max cell must be over 100 MeV and time in BC=0
  if(cells->GetCellAmplitude(absIdMax) > 0.1 && TMath::Abs(time) < 30)
  {
    for (Int_t ipos = 0; ipos < cluster->GetNCells(); ipos++)
    {
      Int_t absId  = cluster->GetCellsAbsId()[ipos];
      
      if( absId == absIdMax ) continue ;
      
      Double_t tcell = cells->GetCellTime(absId);
      Float_t  amp   = cells->GetCellAmplitude(absId);
      Int_t    bc    = GetReader()->GetInputEvent()->GetBunchCrossNumber();
      
      GetCaloUtils()->GetEMCALRecoUtils()->AcceptCalibrateCell(absId,bc,amp,tcell,cells);
      tcell*=1e9;
      
      Float_t diff = (time-tcell);
      
      if( cells->GetCellAmplitude(absIdMax) < 0.1 ) continue ;
      
      if(GetReader()->IsPileUpFromSPD())               fhClusterTimeDiffPhotonPileUp[0]->Fill(pt, diff);
      if(GetReader()->IsPileUpFromEMCal())             fhClusterTimeDiffPhotonPileUp[1]->Fill(pt, diff);
      if(GetReader()->IsPileUpFromSPDOrEMCal())        fhClusterTimeDiffPhotonPileUp[2]->Fill(pt, diff);
      if(GetReader()->IsPileUpFromSPDAndEMCal())       fhClusterTimeDiffPhotonPileUp[3]->Fill(pt, diff);
      if(GetReader()->IsPileUpFromSPDAndNotEMCal())    fhClusterTimeDiffPhotonPileUp[4]->Fill(pt, diff);
      if(GetReader()->IsPileUpFromEMCalAndNotSPD())    fhClusterTimeDiffPhotonPileUp[5]->Fill(pt, diff);
      if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) fhClusterTimeDiffPhotonPileUp[6]->Fill(pt, diff);

    }//loop
  }
  
  AliESDEvent* esdEv = dynamic_cast<AliESDEvent*> (event);
  AliAODEvent* aodEv = dynamic_cast<AliAODEvent*> (event);
  
  // N pile up vertices
  Int_t nVtxSPD = -1;
  Int_t nVtxTrk = -1;
  
  if      (esdEv)
  {
    nVtxSPD = esdEv->GetNumberOfPileupVerticesSPD();
    nVtxTrk = esdEv->GetNumberOfPileupVerticesTracks();
    
  }//ESD
  else if (aodEv)
  {
    nVtxSPD = aodEv->GetNumberOfPileupVerticesSPD();
    nVtxTrk = aodEv->GetNumberOfPileupVerticesTracks();
  }//AOD
  
  if(pt < 8)
  {
    fhTimeNPileUpVertSPD  ->Fill(time,nVtxSPD);
    fhTimeNPileUpVertTrack->Fill(time,nVtxTrk);
  }
  
  fhPtPhotonNPileUpSPDVtx->Fill(pt,nVtxSPD);
  fhPtPhotonNPileUpTrkVtx->Fill(pt,nVtxTrk);
	
  if(TMath::Abs(time) < 25)
  {
    fhPtPhotonNPileUpSPDVtxTimeCut->Fill(pt,nVtxSPD);
    fhPtPhotonNPileUpTrkVtxTimeCut->Fill(pt,nVtxTrk);
  }
	
  if(time < 75 && time > -25)
  {
    fhPtPhotonNPileUpSPDVtxTimeCut2->Fill(pt,nVtxSPD);
    fhPtPhotonNPileUpTrkVtxTimeCut2->Fill(pt,nVtxTrk);
  }
  
}

//_______________________________________________________________________________
void  AliAnaPhoton::FillShowerShapeHistograms(AliVCluster* cluster,
                                              Int_t mcTag, Float_t maxCellFraction)
{
  //Fill cluster Shower Shape histograms
  
  if(!fFillSSHistograms || GetMixedEvent()) return;
  
  Float_t energy  = cluster->E();
  Int_t   ncells  = cluster->GetNCells();
  Float_t lambda0 = cluster->GetM02();
  Float_t lambda1 = cluster->GetM20();
  Float_t disp    = cluster->GetDispersion()*cluster->GetDispersion();
  
  Float_t eta = fMomentum.Eta();
  Float_t phi = fMomentum.Phi();
  if(phi < 0) phi+=TMath::TwoPi();
  
  fhLam0E ->Fill(energy,lambda0);
  fhLam1E ->Fill(energy,lambda1);
  fhDispE ->Fill(energy,disp);
  
  if(GetCalorimeter() == kEMCAL &&  GetFirstSMCoveredByTRD() >= 0 &&
     GetModuleNumber(cluster) >= GetFirstSMCoveredByTRD()  )
  {
    fhLam0ETRD->Fill(energy,lambda0);
    fhLam1ETRD->Fill(energy,lambda1);
    fhDispETRD->Fill(energy,disp);
  }
  
  Float_t l0   = 0., l1   = 0.;
  Float_t dispp= 0., dEta = 0., dPhi    = 0.;
  Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
  if(GetCalorimeter() == kEMCAL && !fFillOnlySimpleSSHisto)
  {
    GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster,
                                                                                 l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
    //printf("AliAnaPhoton::FillShowerShapeHistogram - l0 %2.6f, l1 %2.6f, disp %2.6f, dEta %2.6f, dPhi %2.6f, sEta %2.6f, sPhi %2.6f, sEtaPhi %2.6f \n",
    //       l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi );
    //printf("AliAnaPhoton::FillShowerShapeHistogram - dispersion %f, dispersion eta+phi %f \n",
    //       disp, dPhi+dEta );
    fhDispEtaE        -> Fill(energy,dEta);
    fhDispPhiE        -> Fill(energy,dPhi);
    fhSumEtaE         -> Fill(energy,sEta);
    fhSumPhiE         -> Fill(energy,sPhi);
    fhSumEtaPhiE      -> Fill(energy,sEtaPhi);
    fhDispEtaPhiDiffE -> Fill(energy,dPhi-dEta);
    if(dEta+dPhi>0)fhSphericityE     -> Fill(energy,(dPhi-dEta)/(dEta+dPhi));
    if(dEta+sEta>0)fhDispSumEtaDiffE -> Fill(energy,(dEta-sEta)/((dEta+sEta)/2.));
    if(dPhi+sPhi>0)fhDispSumPhiDiffE -> Fill(energy,(dPhi-sPhi)/((dPhi+sPhi)/2.));
    
    Int_t ebin = -1;
    if      (energy < 2 ) ebin = 0;
    else if (energy < 4 ) ebin = 1;
    else if (energy < 6 ) ebin = 2;
    else if (energy < 10) ebin = 3;
    else if (energy < 15) ebin = 4;
    else if (energy < 20) ebin = 5;
    else                  ebin = 6;
    
    fhDispEtaDispPhi[ebin]->Fill(dEta   ,dPhi);
    fhLambda0DispEta[ebin]->Fill(lambda0,dEta);
    fhLambda0DispPhi[ebin]->Fill(lambda0,dPhi);
    
  }
  
  // if track-matching was of, check effect of track-matching residual cut
  
  if(!fRejectTrackMatch)
  {
    Float_t dZ  = cluster->GetTrackDz();
    Float_t dR  = cluster->GetTrackDx();
    if(cluster->IsEMCAL() && GetCaloUtils()->IsRecalculationOfClusterTrackMatchingOn())
    {
      dR = 2000., dZ = 2000.;
      GetCaloUtils()->GetEMCALRecoUtils()->GetMatchedResiduals(cluster->GetID(),dZ,dR);
    }
    
    if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
    {
      fhLam0ETM ->Fill(energy,lambda0);
      fhLam1ETM ->Fill(energy,lambda1);
      fhDispETM ->Fill(energy,disp);
      
      if(GetCalorimeter() == kEMCAL &&  GetFirstSMCoveredByTRD()   >= 0 &&
         GetModuleNumber(cluster) >= GetFirstSMCoveredByTRD()  )
      {
        fhLam0ETMTRD->Fill(energy,lambda0);
        fhLam1ETMTRD->Fill(energy,lambda1);
        fhDispETMTRD->Fill(energy,disp);
      }
    }
  }// if track-matching was of, check effect of matching residual cut
  
  
  if(!fFillOnlySimpleSSHisto)
  {
    if(energy < 2)
    {
      fhNCellsLam0LowE ->Fill(ncells,lambda0);
      fhNCellsLam1LowE ->Fill(ncells,lambda1);
      fhNCellsDispLowE ->Fill(ncells,disp);
      
      fhLam1Lam0LowE  ->Fill(lambda1,lambda0);
      fhLam0DispLowE  ->Fill(lambda0,disp);
      fhDispLam1LowE  ->Fill(disp,lambda1);
      fhEtaLam0LowE   ->Fill(eta,lambda0);
      fhPhiLam0LowE   ->Fill(phi,lambda0);
    }
    else
    {
      fhNCellsLam0HighE ->Fill(ncells,lambda0);
      fhNCellsLam1HighE ->Fill(ncells,lambda1);
      fhNCellsDispHighE ->Fill(ncells,disp);
      
      fhLam1Lam0HighE  ->Fill(lambda1,lambda0);
      fhLam0DispHighE  ->Fill(lambda0,disp);
      fhDispLam1HighE  ->Fill(disp,lambda1);
      fhEtaLam0HighE   ->Fill(eta, lambda0);
      fhPhiLam0HighE   ->Fill(phi, lambda0);
    }
  }
  
  if(IsDataMC())
  {
    AliVCaloCells* cells = 0;
    if(GetCalorimeter() == kEMCAL) cells = GetEMCALCells();
    else                        cells = GetPHOSCells();
    
    //Fill histograms to check shape of embedded clusters
    Float_t fraction = 0;
    // printf("check embedding %i\n",GetReader()->IsEmbeddedClusterSelectionOn());
    
    if(GetReader()->IsEmbeddedClusterSelectionOn())
    {//Only working for EMCAL
      // 	printf("embedded\n");
      Float_t clusterE = 0; // recalculate in case corrections applied.
      Float_t cellE    = 0;
      for(Int_t icell  = 0; icell < cluster->GetNCells(); icell++)
      {
        cellE    = cells->GetCellAmplitude(cluster->GetCellAbsId(icell));
        clusterE+=cellE;
        fraction+=cellE*cluster->GetCellAmplitudeFraction(icell);
      }
      
      //Fraction of total energy due to the embedded signal
      fraction/=clusterE;
      
      AliDebug(1,Form("Energy fraction of embedded signal %2.3f, Energy %2.3f",fraction, clusterE));
      
      fhEmbeddedSignalFractionEnergy->Fill(clusterE,fraction);
      
    }  // embedded fraction
        
    // Check the origin and fill histograms
    
    Int_t mcIndex = -1;
    
    if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton)     &&
       !GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion) &&
       !GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)        &&
       !GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEta))
    {
      mcIndex = kmcssPhoton ;
      
      if(!GetReader()->IsEmbeddedClusterSelectionOn())
      {
        //Check particle overlaps in cluster
        
        // Compare the primary depositing more energy with the rest,
        // if no photon/electron as comon ancestor (conversions), count as other particle
        const UInt_t nlabels = cluster->GetNLabels();
        Int_t overpdg[nlabels];
        Int_t noverlaps = GetMCAnalysisUtils()->GetNOverlaps(cluster->GetLabels(), nlabels,mcTag,-1,GetReader(),overpdg);

        //printf("N overlaps %d \n",noverlaps);
        
        if(noverlaps == 0)
        {
          fhMCPhotonELambda0NoOverlap  ->Fill(energy, lambda0);
        }
        else if(noverlaps == 1)
        {
          fhMCPhotonELambda0TwoOverlap ->Fill(energy, lambda0);
        }
        else if(noverlaps > 1)
        {
          fhMCPhotonELambda0NOverlap   ->Fill(energy, lambda0);
        }
        else
        {
          AliWarning(Form("n overlaps = %d!!", noverlaps));
        }
      }//No embedding
      
      //Fill histograms to check shape of embedded clusters
      if(GetReader()->IsEmbeddedClusterSelectionOn())
      {
        if     (fraction > 0.9)
        {
          fhEmbedPhotonELambda0FullSignal   ->Fill(energy, lambda0);
        }
        else if(fraction > 0.5)
        {
          fhEmbedPhotonELambda0MostlySignal ->Fill(energy, lambda0);
        }
        else if(fraction > 0.1)
        {
          fhEmbedPhotonELambda0MostlyBkg    ->Fill(energy, lambda0);
        }
        else
        {
          fhEmbedPhotonELambda0FullBkg      ->Fill(energy, lambda0);
        }
      } // embedded
      
    }//photon   no conversion
    else if  ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton)     &&
               GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion) &&
              !GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)        &&
              !GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEta))
    {
      mcIndex = kmcssConversion ;
    }//conversion photon

    else if  ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron))
    {
      mcIndex = kmcssElectron ;
    }//electron
    else if  ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)  )
    {
      mcIndex = kmcssPi0 ;
      
      //Fill histograms to check shape of embedded clusters
      if(GetReader()->IsEmbeddedClusterSelectionOn())
      {
        if     (fraction > 0.9)
        {
          fhEmbedPi0ELambda0FullSignal   ->Fill(energy, lambda0);
        }
        else if(fraction > 0.5)
        {
          fhEmbedPi0ELambda0MostlySignal ->Fill(energy, lambda0);
        }
        else if(fraction > 0.1)
        {
          fhEmbedPi0ELambda0MostlyBkg    ->Fill(energy, lambda0);
        }
        else
        {
          fhEmbedPi0ELambda0FullBkg      ->Fill(energy, lambda0);
        }
      } // embedded
      
    }//pi0
    else if  ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEta)  )
    {
      mcIndex = kmcssEta ;
    }//eta
    else
    {
      mcIndex = kmcssOther ;
    }//other particles
    
    fhMCELambda0           [mcIndex]->Fill(energy, lambda0);
    fhMCELambda1           [mcIndex]->Fill(energy, lambda1);
    fhMCEDispersion        [mcIndex]->Fill(energy, disp);
    fhMCNCellsE            [mcIndex]->Fill(energy, ncells);
    fhMCMaxCellDiffClusterE[mcIndex]->Fill(energy, maxCellFraction);
    
    if(!fFillOnlySimpleSSHisto)
    {
      if     (energy < 2.)
      {
        fhMCLambda0vsClusterMaxCellDiffE0[mcIndex]->Fill(lambda0, maxCellFraction);
        fhMCNCellsvsClusterMaxCellDiffE0 [mcIndex]->Fill(ncells,  maxCellFraction);
      }
      else if(energy < 6.)
      {
        fhMCLambda0vsClusterMaxCellDiffE2[mcIndex]->Fill(lambda0, maxCellFraction);
        fhMCNCellsvsClusterMaxCellDiffE2 [mcIndex]->Fill(ncells,  maxCellFraction);
      }
      else
      {
        fhMCLambda0vsClusterMaxCellDiffE6[mcIndex]->Fill(lambda0, maxCellFraction);
        fhMCNCellsvsClusterMaxCellDiffE6 [mcIndex]->Fill(ncells,  maxCellFraction);
      }
      
      if(GetCalorimeter() == kEMCAL)
      {
        fhMCEDispEta        [mcIndex]-> Fill(energy,dEta);
        fhMCEDispPhi        [mcIndex]-> Fill(energy,dPhi);
        fhMCESumEtaPhi      [mcIndex]-> Fill(energy,sEtaPhi);
        fhMCEDispEtaPhiDiff [mcIndex]-> Fill(energy,dPhi-dEta);
        if(dEta+dPhi>0)fhMCESphericity[mcIndex]-> Fill(energy,(dPhi-dEta)/(dEta+dPhi));
        
        Int_t ebin = -1;
        if      (energy < 2 ) ebin = 0;
        else if (energy < 4 ) ebin = 1;
        else if (energy < 6 ) ebin = 2;
        else if (energy < 10) ebin = 3;
        else if (energy < 15) ebin = 4;
        else if (energy < 20) ebin = 5;
        else                  ebin = 6;
        
        fhMCDispEtaDispPhi[ebin][mcIndex]->Fill(dEta   ,dPhi);
        fhMCLambda0DispEta[ebin][mcIndex]->Fill(lambda0,dEta);
        fhMCLambda0DispPhi[ebin][mcIndex]->Fill(lambda0,dPhi);
      }
    }
  }//MC data
  
}

//__________________________________________________________________________
void AliAnaPhoton::FillTrackMatchingResidualHistograms(AliVCluster* cluster,
                                                       Int_t cut)
{
  // If selected, fill histograms with residuals of matched clusters, help to define track matching cut
  // Residual filled for different cuts 0 (No cut), after 1 PID cut
  
  Float_t dZ = cluster->GetTrackDz();
  Float_t dR = cluster->GetTrackDx();
  
  if(cluster->IsEMCAL() && GetCaloUtils()->IsRecalculationOfClusterTrackMatchingOn())
  {
    dR = 2000., dZ = 2000.;
    GetCaloUtils()->GetEMCALRecoUtils()->GetMatchedResiduals(cluster->GetID(),dZ,dR);
  }
  
  AliVTrack *track = GetCaloUtils()->GetMatchedTrack(cluster, GetReader()->GetInputEvent());
  
  Bool_t positive = kFALSE;
  if(track) positive = (track->Charge()>0);
  
  if(fhTrackMatchedDEta[cut] && TMath::Abs(dR) < 999)
  {
    fhTrackMatchedDEta[cut]->Fill(cluster->E(),dZ);
    fhTrackMatchedDPhi[cut]->Fill(cluster->E(),dR);
    if(cluster->E() > 0.5) fhTrackMatchedDEtaDPhi[cut]->Fill(dZ,dR);

    if(track)
    {
      if(positive)
      {
        fhTrackMatchedDEtaPos[cut]->Fill(cluster->E(),dZ);
        fhTrackMatchedDPhiPos[cut]->Fill(cluster->E(),dR);
        if(cluster->E() > 0.5) fhTrackMatchedDEtaDPhiPos[cut]->Fill(dZ,dR);
      }
      else
      {
        fhTrackMatchedDEtaNeg[cut]->Fill(cluster->E(),dZ);
        fhTrackMatchedDPhiNeg[cut]->Fill(cluster->E(),dR);
        if(cluster->E() > 0.5) fhTrackMatchedDEtaDPhiNeg[cut]->Fill(dZ,dR);
      }
    }
    
    Int_t nSMod = GetModuleNumber(cluster);
    
    if(GetCalorimeter()==kEMCAL &&   GetFirstSMCoveredByTRD() >= 0 &&
       nSMod >= GetFirstSMCoveredByTRD()   )
    {
      fhTrackMatchedDEtaTRD[cut]->Fill(cluster->E(),dZ);
      fhTrackMatchedDPhiTRD[cut]->Fill(cluster->E(),dR);
    }
    
    // Check dEdx and E/p of matched clusters

    if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
    {
      if(track)
      {
        Float_t dEdx   = track->GetTPCsignal();
        Float_t eOverp = cluster->E()/track->P();
        
        fhdEdx[cut]  ->Fill(cluster->E(), dEdx);
        fhEOverP[cut]->Fill(cluster->E(), eOverp);
        
        if(GetCalorimeter()==kEMCAL &&  GetFirstSMCoveredByTRD() >= 0 &&
           nSMod >= GetFirstSMCoveredByTRD()  )
          fhEOverPTRD[cut]->Fill(cluster->E(), eOverp);
        
        
      }
      else
        AliWarning(Form("Residual OK but (dR, dZ)= (%2.4f,%2.4f) no track associated WHAT?", dR,dZ));
      
      if(IsDataMC())
      {
        
        Int_t tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(),GetReader(),GetCalorimeter());
        
        if  ( !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)  )
        {
          if       ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)      ||
                    GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta)       ) fhTrackMatchedMCParticle[cut]->Fill(cluster->E(), 2.5 );
          else if  ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton)    ) fhTrackMatchedMCParticle[cut]->Fill(cluster->E(), 0.5 );
          else if  ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)  ) fhTrackMatchedMCParticle[cut]->Fill(cluster->E(), 1.5 );
          else                                                                                 fhTrackMatchedMCParticle[cut]->Fill(cluster->E(), 3.5 );
          
          // Check if several particles contributed to cluster and discard overlapped mesons
          if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) ||
             !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta))
          {
            if(cluster->GetNLabels()==1)
            {
              fhTrackMatchedDEtaMCNoOverlap[cut]->Fill(cluster->E(),dZ);
              fhTrackMatchedDPhiMCNoOverlap[cut]->Fill(cluster->E(),dR);
            }
            else
            {
              fhTrackMatchedDEtaMCOverlap[cut]->Fill(cluster->E(),dZ);
              fhTrackMatchedDPhiMCOverlap[cut]->Fill(cluster->E(),dR);
            }
            
          }// Check overlaps
          
        }
        else
        {
          if       ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)      ||
                    GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta)       ) fhTrackMatchedMCParticle[cut]->Fill(cluster->E(), 6.5 );
          else if  ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton)    ) fhTrackMatchedMCParticle[cut]->Fill(cluster->E(), 4.5 );
          else if  ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)  ) fhTrackMatchedMCParticle[cut]->Fill(cluster->E(), 5.5 );
          else                                                                                 fhTrackMatchedMCParticle[cut]->Fill(cluster->E(), 7.5 );
          
          // Check if several particles contributed to cluster
          if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) ||
             !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta))
          {
            fhTrackMatchedDEtaMCConversion[cut]->Fill(cluster->E(),dZ);
            fhTrackMatchedDPhiMCConversion[cut]->Fill(cluster->E(),dR);
            
          }// Check overlaps
          
        }
        
      } // MC
      
    } // residuals window
    
  } // Small residual
  
}

//___________________________________________
TObjString *  AliAnaPhoton::GetAnalysisCuts()
{
  //Save parameters used for analysis
  TString parList ; //this will be list of parameters used for this analysis.
  const Int_t buffersize = 255;
  char onePar[buffersize] ;
  
  snprintf(onePar,buffersize,"--- AliAnaPhoton ---:") ;
  parList+=onePar ;
  snprintf(onePar,buffersize,"Calorimeter: %s;",GetCalorimeterString().Data()) ;
  parList+=onePar ;
  snprintf(onePar,buffersize,"fMinDist =%2.2f (Minimal distance to bad channel to accept cluster);",fMinDist) ;
  parList+=onePar ;
  snprintf(onePar,buffersize,"fMinDist2=%2.2f (Cuts on Minimal distance to study acceptance evaluation);",fMinDist2) ;
  parList+=onePar ;
  snprintf(onePar,buffersize,"fMinDist3=%2.2f (One more cut on distance used for acceptance-efficiency study);",fMinDist3) ;
  parList+=onePar ;
  snprintf(onePar,buffersize,"fRejectTrackMatch: %d",fRejectTrackMatch) ;
  parList+=onePar ;
  
  //Get parameters set in base class.
  parList += GetBaseParametersList() ;
  
  //Get parameters set in PID class.
  parList += GetCaloPID()->GetPIDParametersList() ;
  
  //Get parameters set in FiducialCut class (not available yet)
  //parlist += GetFidCut()->GetFidCutParametersList()
  
  return new TObjString(parList) ;
}

//________________________________________________________________________
TList *  AliAnaPhoton::GetCreateOutputObjects()
{
  // Create histograms to be saved in output file and
  // store them in outputContainer
  TList * outputContainer = new TList() ;
  outputContainer->SetName("PhotonHistos") ;
	
  Int_t nptbins  = GetHistogramRanges()->GetHistoPtBins();  Float_t ptmax  = GetHistogramRanges()->GetHistoPtMax();  Float_t ptmin  = GetHistogramRanges()->GetHistoPtMin();
  Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins(); Float_t phimax = GetHistogramRanges()->GetHistoPhiMax(); Float_t phimin = GetHistogramRanges()->GetHistoPhiMin();
  Int_t netabins = GetHistogramRanges()->GetHistoEtaBins(); Float_t etamax = GetHistogramRanges()->GetHistoEtaMax(); Float_t etamin = GetHistogramRanges()->GetHistoEtaMin();
  Int_t ssbins   = GetHistogramRanges()->GetHistoShowerShapeBins();  Float_t ssmax   = GetHistogramRanges()->GetHistoShowerShapeMax();  Float_t ssmin   = GetHistogramRanges()->GetHistoShowerShapeMin();
  Int_t nbins    = GetHistogramRanges()->GetHistoNClusterCellBins(); Int_t   nmax    = GetHistogramRanges()->GetHistoNClusterCellMax(); Int_t   nmin    = GetHistogramRanges()->GetHistoNClusterCellMin();
  Int_t ntimebins= GetHistogramRanges()->GetHistoTimeBins();         Float_t timemax = GetHistogramRanges()->GetHistoTimeMax();         Float_t timemin = GetHistogramRanges()->GetHistoTimeMin();
  
  Int_t   nresetabins = GetHistogramRanges()->GetHistoTrackResidualEtaBins();
  Float_t resetamax   = GetHistogramRanges()->GetHistoTrackResidualEtaMax();
  Float_t resetamin   = GetHistogramRanges()->GetHistoTrackResidualEtaMin();
  Int_t   nresphibins = GetHistogramRanges()->GetHistoTrackResidualPhiBins();
  Float_t resphimax   = GetHistogramRanges()->GetHistoTrackResidualPhiMax();
  Float_t resphimin   = GetHistogramRanges()->GetHistoTrackResidualPhiMin();
  
  Int_t   ndedxbins   = GetHistogramRanges()->GetHistodEdxBins();
  Float_t dedxmax     = GetHistogramRanges()->GetHistodEdxMax();
  Float_t dedxmin     = GetHistogramRanges()->GetHistodEdxMin();
  Int_t   nPoverEbins = GetHistogramRanges()->GetHistoPOverEBins();
  Float_t pOverEmax   = GetHistogramRanges()->GetHistoPOverEMax();
  Float_t pOverEmin   = GetHistogramRanges()->GetHistoPOverEMin();
  
  Int_t bin[] = {0,2,4,6,10,15,20,100}; // energy bins for SS studies
  
  TString cut[] = {"Open","Reader","E","Time","NCells","NLM","Fidutial","Matching","Bad","PID"};
  for (Int_t i = 0; i < 10 ;  i++)
  {
    fhClusterCutsE[i] = new TH1F(Form("hE_Cut_%d_%s", i, cut[i].Data()),
                                Form("Number of clusters that pass cuts <= %d, %s", i, cut[i].Data()),
                                nptbins,ptmin,ptmax);
    fhClusterCutsE[i]->SetYTitle("d#it{N}/d#it{E} ");
    fhClusterCutsE[i]->SetXTitle("#it{E} (GeV)");
    outputContainer->Add(fhClusterCutsE[i]) ;
    
    fhClusterCutsPt[i] = new TH1F(Form("hPt_Cut_%d_%s", i, cut[i].Data()),
                                Form("Number of clusters that pass cuts <= %d, %s", i, cut[i].Data()),
                                nptbins,ptmin,ptmax);
    fhClusterCutsPt[i]->SetYTitle("d#it{N}/d#it{E} ");
    fhClusterCutsPt[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
    outputContainer->Add(fhClusterCutsPt[i]) ;
  }
  
  fhEClusterSM = new TH2F("hEClusterSM","Raw clusters E and super-module number",
                          nptbins,ptmin,ptmax,
                          GetCaloUtils()->GetNumberOfSuperModulesUsed(),0,GetCaloUtils()->GetNumberOfSuperModulesUsed());
  fhEClusterSM->SetYTitle("SuperModule ");
  fhEClusterSM->SetXTitle("#it{E} (GeV)");
  outputContainer->Add(fhEClusterSM) ;

  fhPtClusterSM = new TH2F("hPtClusterSM","Raw clusters #it{p}_{T} and super-module number",
                          nptbins,ptmin,ptmax,
                          GetCaloUtils()->GetNumberOfSuperModulesUsed(),0,GetCaloUtils()->GetNumberOfSuperModulesUsed());
  fhPtClusterSM->SetYTitle("SuperModule ");
  fhPtClusterSM->SetXTitle("#it{E} (GeV)");
  outputContainer->Add(fhPtClusterSM) ;
  
  fhEPhotonSM = new TH2F("hEPhotonSM","Selected clusters E and super-module number",
                          nptbins,ptmin,ptmax,
                          GetCaloUtils()->GetNumberOfSuperModulesUsed(),0,GetCaloUtils()->GetNumberOfSuperModulesUsed());
  fhEPhotonSM->SetYTitle("SuperModule ");
  fhEPhotonSM->SetXTitle("#it{E} (GeV)");
  outputContainer->Add(fhEPhotonSM) ;
  
  fhPtPhotonSM = new TH2F("hPtPhotonSM","Selected clusters #it{p}_{T} and super-module number",
                           nptbins,ptmin,ptmax,
                           GetCaloUtils()->GetNumberOfSuperModulesUsed(),0,GetCaloUtils()->GetNumberOfSuperModulesUsed());
  fhPtPhotonSM->SetYTitle("SuperModule ");
  fhPtPhotonSM->SetXTitle("#it{E} (GeV)");
  outputContainer->Add(fhPtPhotonSM) ;
  
  fhNCellsE  = new TH2F ("hNCellsE","# of cells in cluster vs E of clusters", nptbins,ptmin,ptmax, nbins,nmin,nmax);
  fhNCellsE->SetXTitle("#it{E} (GeV)");
  fhNCellsE->SetYTitle("# of cells in cluster");
  outputContainer->Add(fhNCellsE);
  
  fhCellsE  = new TH2F ("hCellsE","energy of cells in cluster vs E of clusters", nptbins,ptmin,ptmax, nptbins*2,ptmin,ptmax);
  fhCellsE->SetXTitle("#it{E}_{cluster} (GeV)");
  fhCellsE->SetYTitle("#it{E}_{cell} (GeV)");
  outputContainer->Add(fhCellsE);
  
  fhTimePt  = new TH2F ("hTimePt","time of cluster vs pT of clusters", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
  fhTimePt->SetXTitle("#it{p}_{T} (GeV/#it{c})");
  fhTimePt->SetYTitle("#it{time} (ns)");
  outputContainer->Add(fhTimePt);
  
  fhMaxCellDiffClusterE  = new TH2F ("hMaxCellDiffClusterE","energy vs difference of cluster energy - max cell energy / cluster energy, good clusters",
                                     nptbins,ptmin,ptmax, 500,0,1.);
  fhMaxCellDiffClusterE->SetXTitle("#it{E}_{cluster} (GeV) ");
  fhMaxCellDiffClusterE->SetYTitle("(#it{E}_{cluster} - #it{E}_{cell max})/ #it{E}_{cluster}");
  outputContainer->Add(fhMaxCellDiffClusterE);
  
  fhEPhoton  = new TH1F("hEPhoton","Number of #gamma over calorimeter vs energy",nptbins,ptmin,ptmax);
  fhEPhoton->SetYTitle("#it{counts}");
  fhEPhoton->SetXTitle("#it{E}_{#gamma}(GeV)");
  outputContainer->Add(fhEPhoton) ;
  
  fhPtPhoton  = new TH1F("hPtPhoton","Number of #gamma over calorimeter vs #it{p}_{T}",nptbins,ptmin,ptmax);
  fhPtPhoton->SetYTitle("#it{counts}");
  fhPtPhoton->SetXTitle("p_{T #gamma}(GeV/#it{c})");
  outputContainer->Add(fhPtPhoton) ;
  
  if(IsHighMultiplicityAnalysisOn())
  {
    fhPtCentralityPhoton  = new TH2F("hPtCentralityPhoton","centrality vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,100);
    fhPtCentralityPhoton->SetYTitle("Centrality");
    fhPtCentralityPhoton->SetXTitle("#it{p}_{T}(GeV/#it{c})");
    outputContainer->Add(fhPtCentralityPhoton) ;
    
    fhPtEventPlanePhoton  = new TH2F("hPtEventPlanePhoton","centrality vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,TMath::Pi());
    fhPtEventPlanePhoton->SetYTitle("Event plane angle (rad)");
    fhPtEventPlanePhoton->SetXTitle("#it{p}_{T} (GeV/#it{c})");
    outputContainer->Add(fhPtEventPlanePhoton) ;
  }
  
  fhEtaPhi  = new TH2F
  ("hEtaPhi","cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
  fhEtaPhi->SetYTitle("#phi (rad)");
  fhEtaPhi->SetXTitle("#eta");
  outputContainer->Add(fhEtaPhi) ;
  
  fhPhiPhoton  = new TH2F
  ("hPhiPhoton","#phi_{#gamma} vs #it{p}_{T}",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
  fhPhiPhoton->SetYTitle("#phi (rad)");
  fhPhiPhoton->SetXTitle("p_{T #gamma} (GeV/#it{c})");
  outputContainer->Add(fhPhiPhoton) ;
  
  fhEtaPhoton  = new TH2F
  ("hEtaPhoton","#eta_{#gamma} vs #it{p}_{T}",nptbins,ptmin,ptmax,netabins,etamin,etamax);
  fhEtaPhoton->SetYTitle("#eta");
  fhEtaPhoton->SetXTitle("p_{T #gamma} (GeV/#it{c})");
  outputContainer->Add(fhEtaPhoton) ;
  
  fhEtaPhiPhoton  = new TH2F
  ("hEtaPhiPhoton","#eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
  fhEtaPhiPhoton->SetYTitle("#phi (rad)");
  fhEtaPhiPhoton->SetXTitle("#eta");
  outputContainer->Add(fhEtaPhiPhoton) ;
  if(GetMinPt() < 0.5)
  {
    fhEtaPhi05Photon  = new TH2F
    ("hEtaPhi05Photon","#eta vs #phi, E < 0.5",netabins,etamin,etamax,nphibins,phimin,phimax);
    fhEtaPhi05Photon->SetYTitle("#phi (rad)");
    fhEtaPhi05Photon->SetXTitle("#eta");
    outputContainer->Add(fhEtaPhi05Photon) ;
  }
  
  fhNLocMax = new TH2F("hNLocMax","Number of local maxima in cluster",
                       nptbins,ptmin,ptmax,10,0,10);
  fhNLocMax ->SetYTitle("N maxima");
  fhNLocMax ->SetXTitle("#it{E} (GeV)");
  outputContainer->Add(fhNLocMax) ;
  
  //Shower shape
  if(fFillSSHistograms)
  {
    fhLam0E  = new TH2F ("hLam0E","#lambda_{0}^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
    fhLam0E->SetYTitle("#lambda_{0}^{2}");
    fhLam0E->SetXTitle("#it{E} (GeV)");
    outputContainer->Add(fhLam0E);
    
    fhLam1E  = new TH2F ("hLam1E","#lambda_{1}^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
    fhLam1E->SetYTitle("#lambda_{1}^{2}");
    fhLam1E->SetXTitle("#it{E} (GeV)");
    outputContainer->Add(fhLam1E);
    
    fhDispE  = new TH2F ("hDispE"," dispersion^{2} vs E", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
    fhDispE->SetYTitle("D^{2}");
    fhDispE->SetXTitle("#it{E} (GeV) ");
    outputContainer->Add(fhDispE);
    
    if(!fRejectTrackMatch)
    {
      fhLam0ETM  = new TH2F ("hLam0ETM","#lambda_{0}^{2} vs E, cut on track-matching residual |#Delta #eta| < 0.05,  |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
      fhLam0ETM->SetYTitle("#lambda_{0}^{2}");
      fhLam0ETM->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhLam0ETM);
      
      fhLam1ETM  = new TH2F ("hLam1ETM","#lambda_{1}^{2} vs E, cut on track-matching residual |#Delta #eta| < 0.05,  |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
      fhLam1ETM->SetYTitle("#lambda_{1}^{2}");
      fhLam1ETM->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhLam1ETM);
      
      fhDispETM  = new TH2F ("hDispETM"," dispersion^{2} vs E, cut on track-matching residual |#Delta #eta| < 0.05,  |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
      fhDispETM->SetYTitle("D^{2}");
      fhDispETM->SetXTitle("#it{E} (GeV) ");
      outputContainer->Add(fhDispETM);
    }
    
    if(GetCalorimeter() == kEMCAL &&  GetFirstSMCoveredByTRD() >= 0)
    {
      fhLam0ETRD  = new TH2F ("hLam0ETRD","#lambda_{0}^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
      fhLam0ETRD->SetYTitle("#lambda_{0}^{2}");
      fhLam0ETRD->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhLam0ETRD);
      
      fhLam1ETRD  = new TH2F ("hLam1ETRD","#lambda_{1}^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
      fhLam1ETRD->SetYTitle("#lambda_{1}^{2}");
      fhLam1ETRD->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhLam1ETRD);
      
      fhDispETRD  = new TH2F ("hDispETRD"," dispersion^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
      fhDispETRD->SetYTitle("Dispersion^{2}");
      fhDispETRD->SetXTitle("#it{E} (GeV) ");
      outputContainer->Add(fhDispETRD);
      
      if(!fRejectTrackMatch &&  GetFirstSMCoveredByTRD() >=0 )
      {
        fhLam0ETMTRD  = new TH2F ("hLam0ETMTRD","#lambda_{0}^{2} vs E, EMCAL SM covered by TRD, cut on track-matching residual |#Delta #eta| < 0.05,  |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhLam0ETMTRD->SetYTitle("#lambda_{0}^{2}");
        fhLam0ETMTRD->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhLam0ETMTRD);
        
        fhLam1ETMTRD  = new TH2F ("hLam1ETMTRD","#lambda_{1}^{2} vs E, EMCAL SM covered by TRD, cut on track-matching residual |#Delta #eta| < 0.05,  |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhLam1ETMTRD->SetYTitle("#lambda_{1}^{2}");
        fhLam1ETMTRD->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhLam1ETMTRD);
        
        fhDispETMTRD  = new TH2F ("hDispETMTRD"," dispersion^{2} vs E, EMCAL SM covered by TRD, cut on track-matching residual |#Delta #eta| < 0.05,  |#Delta #phi| < 0.05", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhDispETMTRD->SetYTitle("Dispersion^{2}");
        fhDispETMTRD->SetXTitle("#it{E} (GeV) ");
        outputContainer->Add(fhDispETMTRD);
      }
    }
    
    if(!fFillOnlySimpleSSHisto)
    {
      fhNCellsLam0LowE  = new TH2F ("hNCellsLam0LowE","N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
      fhNCellsLam0LowE->SetXTitle("N_{cells}");
      fhNCellsLam0LowE->SetYTitle("#lambda_{0}^{2}");
      outputContainer->Add(fhNCellsLam0LowE);
      
      fhNCellsLam0HighE  = new TH2F ("hNCellsLam0HighE","N_{cells} in cluster vs #lambda_{0}^{2}, #it{E} > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
      fhNCellsLam0HighE->SetXTitle("N_{cells}");
      fhNCellsLam0HighE->SetYTitle("#lambda_{0}^{2}");
      outputContainer->Add(fhNCellsLam0HighE);
      
      fhNCellsLam1LowE  = new TH2F ("hNCellsLam1LowE","N_{cells} in cluster vs #lambda_{1}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
      fhNCellsLam1LowE->SetXTitle("N_{cells}");
      fhNCellsLam1LowE->SetYTitle("#lambda_{0}^{2}");
      outputContainer->Add(fhNCellsLam1LowE);
      
      fhNCellsLam1HighE  = new TH2F ("hNCellsLam1HighE","N_{cells} in cluster vs #lambda_{1}^{2}, #it{E} > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
      fhNCellsLam1HighE->SetXTitle("N_{cells}");
      fhNCellsLam1HighE->SetYTitle("#lambda_{0}^{2}");
      outputContainer->Add(fhNCellsLam1HighE);
      
      fhNCellsDispLowE  = new TH2F ("hNCellsDispLowE","N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
      fhNCellsDispLowE->SetXTitle("N_{cells}");
      fhNCellsDispLowE->SetYTitle("D^{2}");
      outputContainer->Add(fhNCellsDispLowE);
      
      fhNCellsDispHighE  = new TH2F ("hNCellsDispHighE","N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax);
      fhNCellsDispHighE->SetXTitle("N_{cells}");
      fhNCellsDispHighE->SetYTitle("D^{2}");
      outputContainer->Add(fhNCellsDispHighE);
      
      fhEtaLam0LowE  = new TH2F ("hEtaLam0LowE","#eta vs #lambda_{0}^{2}, E < 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax);
      fhEtaLam0LowE->SetYTitle("#lambda_{0}^{2}");
      fhEtaLam0LowE->SetXTitle("#eta");
      outputContainer->Add(fhEtaLam0LowE);
      
      fhPhiLam0LowE  = new TH2F ("hPhiLam0LowE","#phi vs #lambda_{0}^{2}, E < 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax);
      fhPhiLam0LowE->SetYTitle("#lambda_{0}^{2}");
      fhPhiLam0LowE->SetXTitle("#phi");
      outputContainer->Add(fhPhiLam0LowE);
      
      fhEtaLam0HighE  = new TH2F ("hEtaLam0HighE","#eta vs #lambda_{0}^{2}, #it{E} > 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax);
      fhEtaLam0HighE->SetYTitle("#lambda_{0}^{2}");
      fhEtaLam0HighE->SetXTitle("#eta");
      outputContainer->Add(fhEtaLam0HighE);
      
      fhPhiLam0HighE  = new TH2F ("hPhiLam0HighE","#phi vs #lambda_{0}^{2}, #it{E} > 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax);
      fhPhiLam0HighE->SetYTitle("#lambda_{0}^{2}");
      fhPhiLam0HighE->SetXTitle("#phi");
      outputContainer->Add(fhPhiLam0HighE);
      
      fhLam1Lam0LowE  = new TH2F ("hLam1Lam0LowE","#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
      fhLam1Lam0LowE->SetYTitle("#lambda_{0}^{2}");
      fhLam1Lam0LowE->SetXTitle("#lambda_{1}^{2}");
      outputContainer->Add(fhLam1Lam0LowE);
      
      fhLam1Lam0HighE  = new TH2F ("hLam1Lam0HighE","#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of #it{E} > 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
      fhLam1Lam0HighE->SetYTitle("#lambda_{0}^{2}");
      fhLam1Lam0HighE->SetXTitle("#lambda_{1}^{2}");
      outputContainer->Add(fhLam1Lam0HighE);
      
      fhLam0DispLowE  = new TH2F ("hLam0DispLowE","#lambda_{0}^{2} vs dispersion^{2} in cluster of E < 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
      fhLam0DispLowE->SetXTitle("#lambda_{0}^{2}");
      fhLam0DispLowE->SetYTitle("D^{2}");
      outputContainer->Add(fhLam0DispLowE);
      
      fhLam0DispHighE  = new TH2F ("hLam0DispHighE","#lambda_{0}^{2} vs dispersion^{2} in cluster of #it{E} > 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
      fhLam0DispHighE->SetXTitle("#lambda_{0}^{2}");
      fhLam0DispHighE->SetYTitle("D^{2}");
      outputContainer->Add(fhLam0DispHighE);
      
      fhDispLam1LowE  = new TH2F ("hDispLam1LowE","Dispersion^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
      fhDispLam1LowE->SetXTitle("D^{2}");
      fhDispLam1LowE->SetYTitle("#lambda_{1}^{2}");
      outputContainer->Add(fhDispLam1LowE);
      
      fhDispLam1HighE  = new TH2F ("hDispLam1HighE","Dispersion^{2} vs #lambda_{1^{2}} in cluster of #it{E} > 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax);
      fhDispLam1HighE->SetXTitle("D^{2}");
      fhDispLam1HighE->SetYTitle("#lambda_{1}^{2}");
      outputContainer->Add(fhDispLam1HighE);
      
      if(GetCalorimeter() == kEMCAL)
      {
        fhDispEtaE  = new TH2F ("hDispEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
        fhDispEtaE->SetXTitle("#it{E} (GeV)");
        fhDispEtaE->SetYTitle("#sigma^{2}_{#eta #eta}");
        outputContainer->Add(fhDispEtaE);
        
        fhDispPhiE  = new TH2F ("hDispPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
        fhDispPhiE->SetXTitle("#it{E} (GeV)");
        fhDispPhiE->SetYTitle("#sigma^{2}_{#phi #phi}");
        outputContainer->Add(fhDispPhiE);
        
        fhSumEtaE  = new TH2F ("hSumEtaE","#delta^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
        fhSumEtaE->SetXTitle("#it{E} (GeV)");
        fhSumEtaE->SetYTitle("#delta^{2}_{#eta #eta}");
        outputContainer->Add(fhSumEtaE);
        
        fhSumPhiE  = new TH2F ("hSumPhiE","#delta^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",
                               nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
        fhSumPhiE->SetXTitle("#it{E} (GeV)");
        fhSumPhiE->SetYTitle("#delta^{2}_{#phi #phi}");
        outputContainer->Add(fhSumPhiE);
        
        fhSumEtaPhiE  = new TH2F ("hSumEtaPhiE","#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",
                                  nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax);
        fhSumEtaPhiE->SetXTitle("#it{E} (GeV)");
        fhSumEtaPhiE->SetYTitle("#delta^{2}_{#eta #phi}");
        outputContainer->Add(fhSumEtaPhiE);
        
        fhDispEtaPhiDiffE  = new TH2F ("hDispEtaPhiDiffE","#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",
                                       nptbins,ptmin,ptmax,200, -10,10);
        fhDispEtaPhiDiffE->SetXTitle("#it{E} (GeV)");
        fhDispEtaPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
        outputContainer->Add(fhDispEtaPhiDiffE);
        
        fhSphericityE  = new TH2F ("hSphericityE","(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",
                                   nptbins,ptmin,ptmax, 200, -1,1);
        fhSphericityE->SetXTitle("#it{E} (GeV)");
        fhSphericityE->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
        outputContainer->Add(fhSphericityE);
        
        fhDispSumEtaDiffE  = new TH2F ("hDispSumEtaDiffE","#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average vs E",  nptbins,ptmin,ptmax, 200,-0.01,0.01);
        fhDispSumEtaDiffE->SetXTitle("#it{E} (GeV)");
        fhDispSumEtaDiffE->SetYTitle("#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average");
        outputContainer->Add(fhDispSumEtaDiffE);
        
        fhDispSumPhiDiffE  = new TH2F ("hDispSumPhiDiffE","#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average vs E",  nptbins,ptmin,ptmax, 200,-0.01,0.01);
        fhDispSumPhiDiffE->SetXTitle("#it{E} (GeV)");
        fhDispSumPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average");
        outputContainer->Add(fhDispSumPhiDiffE);
        
        for(Int_t i = 0; i < 7; i++)
        {
          fhDispEtaDispPhi[i] = new TH2F (Form("hDispEtaDispPhi_EBin%d",i),Form("#sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]),
                                          ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
          fhDispEtaDispPhi[i]->SetXTitle("#sigma^{2}_{#eta #eta}");
          fhDispEtaDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
          outputContainer->Add(fhDispEtaDispPhi[i]);
          
          fhLambda0DispEta[i] = new TH2F (Form("hLambda0DispEta_EBin%d",i),Form("#lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]),
                                          ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
          fhLambda0DispEta[i]->SetXTitle("#lambda^{2}_{0}");
          fhLambda0DispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}");
          outputContainer->Add(fhLambda0DispEta[i]);
          
          fhLambda0DispPhi[i] = new TH2F (Form("hLambda0DispPhi_EBin%d",i),Form("#lambda^{2}_{0}} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",bin[i],bin[i+1]),
                                          ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
          fhLambda0DispPhi[i]->SetXTitle("#lambda^{2}_{0}");
          fhLambda0DispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
          outputContainer->Add(fhLambda0DispPhi[i]);
        }
      }
    }
  } // Shower shape
  
  // Track Matching
  
  if(fFillTMHisto)
  {
    TString cutTM [] = {"NoCut",""};
    
    for(Int_t i = 0; i < 2; i++)
    {
      fhTrackMatchedDEta[i]  = new TH2F
      (Form("hTrackMatchedDEta%s",cutTM[i].Data()),
       Form("d#eta of cluster-track vs cluster energy, %s",cutTM[i].Data()),
       nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
      fhTrackMatchedDEta[i]->SetYTitle("d#eta");
      fhTrackMatchedDEta[i]->SetXTitle("#it{E}_{cluster} (GeV)");
      
      fhTrackMatchedDPhi[i]  = new TH2F
      (Form("hTrackMatchedDPhi%s",cutTM[i].Data()),
       Form("d#phi of cluster-track vs cluster energy, %s",cutTM[i].Data()),
       nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
      fhTrackMatchedDPhi[i]->SetYTitle("d#phi (rad)");
      fhTrackMatchedDPhi[i]->SetXTitle("#it{E}_{cluster} (GeV)");
      
      fhTrackMatchedDEtaDPhi[i]  = new TH2F
      (Form("hTrackMatchedDEtaDPhi%s",cutTM[i].Data()),
       Form("d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].Data()),
       nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
      fhTrackMatchedDEtaDPhi[i]->SetYTitle("d#phi (rad)");
      fhTrackMatchedDEtaDPhi[i]->SetXTitle("d#eta");
      
      fhTrackMatchedDEtaPos[i]  = new TH2F
      (Form("hTrackMatchedDEtaPos%s",cutTM[i].Data()),
       Form("d#eta of cluster-track vs cluster energy, %s",cutTM[i].Data()),
       nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
      fhTrackMatchedDEtaPos[i]->SetYTitle("d#eta");
      fhTrackMatchedDEtaPos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
      
      fhTrackMatchedDPhiPos[i]  = new TH2F
      (Form("hTrackMatchedDPhiPos%s",cutTM[i].Data()),
       Form("d#phi of cluster-track vs cluster energy, %s",cutTM[i].Data()),
       nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
      fhTrackMatchedDPhiPos[i]->SetYTitle("d#phi (rad)");
      fhTrackMatchedDPhiPos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
      
      fhTrackMatchedDEtaDPhiPos[i]  = new TH2F
      (Form("hTrackMatchedDEtaDPhiPos%s",cutTM[i].Data()),
       Form("d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].Data()),
       nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
      fhTrackMatchedDEtaDPhiPos[i]->SetYTitle("d#phi (rad)");
      fhTrackMatchedDEtaDPhiPos[i]->SetXTitle("d#eta");
      
      fhTrackMatchedDEtaNeg[i]  = new TH2F
      (Form("hTrackMatchedDEtaNeg%s",cutTM[i].Data()),
       Form("d#eta of cluster-track vs cluster energy, %s",cutTM[i].Data()),
       nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
      fhTrackMatchedDEtaNeg[i]->SetYTitle("d#eta");
      fhTrackMatchedDEtaNeg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
      
      fhTrackMatchedDPhiNeg[i]  = new TH2F
      (Form("hTrackMatchedDPhiNeg%s",cutTM[i].Data()),
       Form("d#phi of cluster-track vs cluster energy, %s",cutTM[i].Data()),
       nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
      fhTrackMatchedDPhiNeg[i]->SetYTitle("d#phi (rad)");
      fhTrackMatchedDPhiNeg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
      
      fhTrackMatchedDEtaDPhiNeg[i]  = new TH2F
      (Form("hTrackMatchedDEtaDPhiNeg%s",cutTM[i].Data()),
       Form("d#eta vs d#phi of cluster-track vs cluster energy, %s",cutTM[i].Data()),
       nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
      fhTrackMatchedDEtaDPhiNeg[i]->SetYTitle("d#phi (rad)");
      fhTrackMatchedDEtaDPhiNeg[i]->SetXTitle("d#eta");
      
      fhdEdx[i]  = new TH2F (Form("hdEdx%s",cutTM[i].Data()),Form("matched track <dE/dx> vs cluster E, %s",cutTM[i].Data()),
                             nptbins,ptmin,ptmax,ndedxbins, dedxmin, dedxmax);
      fhdEdx[i]->SetXTitle("#it{E} (GeV)");
      fhdEdx[i]->SetYTitle("<dE/dx>");
      
      fhEOverP[i]  = new TH2F (Form("hEOverP%s",cutTM[i].Data()),Form("matched track E/p vs cluster E, %s",cutTM[i].Data()),
                               nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
      fhEOverP[i]->SetXTitle("#it{E} (GeV)");
      fhEOverP[i]->SetYTitle("E/p");
      
      outputContainer->Add(fhTrackMatchedDEta[i]) ;
      outputContainer->Add(fhTrackMatchedDPhi[i]) ;
      outputContainer->Add(fhTrackMatchedDEtaDPhi[i]) ;
      outputContainer->Add(fhTrackMatchedDEtaPos[i]) ;
      outputContainer->Add(fhTrackMatchedDPhiPos[i]) ;
      outputContainer->Add(fhTrackMatchedDEtaDPhiPos[i]) ;
      outputContainer->Add(fhTrackMatchedDEtaNeg[i]) ;
      outputContainer->Add(fhTrackMatchedDPhiNeg[i]) ;
      outputContainer->Add(fhTrackMatchedDEtaDPhiNeg[i]) ;
      outputContainer->Add(fhdEdx[i]);
      outputContainer->Add(fhEOverP[i]);
      
      if(GetCalorimeter()==kEMCAL &&  GetFirstSMCoveredByTRD() >=0 )
      {
        fhTrackMatchedDEtaTRD[i]  = new TH2F
        (Form("hTrackMatchedDEtaTRD%s",cutTM[i].Data()),
         Form("d#eta of cluster-track vs cluster energy, SM behind TRD, %s",cutTM[i].Data()),
         nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
        fhTrackMatchedDEtaTRD[i]->SetYTitle("d#eta");
        fhTrackMatchedDEtaTRD[i]->SetXTitle("#it{E}_{cluster} (GeV)");
        
        fhTrackMatchedDPhiTRD[i]  = new TH2F
        (Form("hTrackMatchedDPhiTRD%s",cutTM[i].Data()),
         Form("d#phi of cluster-track vs cluster energy, SM behing TRD, %s",cutTM[i].Data()),
         nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
        fhTrackMatchedDPhiTRD[i]->SetYTitle("d#phi (rad)");
        fhTrackMatchedDPhiTRD[i]->SetXTitle("#it{E}_{cluster} (GeV)");
        
        fhEOverPTRD[i]  = new TH2F
        (Form("hEOverPTRD%s",cutTM[i].Data()),
         Form("matched track E/p vs cluster E, behind TRD, %s",cutTM[i].Data()),
         nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
        fhEOverPTRD[i]->SetXTitle("#it{E} (GeV)");
        fhEOverPTRD[i]->SetYTitle("E/p");
        
        outputContainer->Add(fhTrackMatchedDEtaTRD[i]) ;
        outputContainer->Add(fhTrackMatchedDPhiTRD[i]) ;
        outputContainer->Add(fhEOverPTRD[i]);
      }
      
      if(IsDataMC())
      {
        fhTrackMatchedDEtaMCNoOverlap[i]  = new TH2F
        (Form("hTrackMatchedDEtaMCNoOverlap%s",cutTM[i].Data()),
         Form("d#eta of cluster-track vs cluster energy, no other MC particles overlap %s",cutTM[i].Data()),
         nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
        fhTrackMatchedDEtaMCNoOverlap[i]->SetYTitle("d#eta");
        fhTrackMatchedDEtaMCNoOverlap[i]->SetXTitle("#it{E}_{cluster} (GeV)");
        
        fhTrackMatchedDPhiMCNoOverlap[i]  = new TH2F
        (Form("hTrackMatchedDPhiMCNoOverlap%s",cutTM[i].Data()),
         Form("d#phi of cluster-track vs cluster energy, no other MC particles overlap %s",cutTM[i].Data()),
         nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
        fhTrackMatchedDPhiMCNoOverlap[i]->SetYTitle("d#phi (rad)");
        fhTrackMatchedDPhiMCNoOverlap[i]->SetXTitle("#it{E}_{cluster} (GeV)");
        
        outputContainer->Add(fhTrackMatchedDEtaMCNoOverlap[i]) ;
        outputContainer->Add(fhTrackMatchedDPhiMCNoOverlap[i]) ;
        fhTrackMatchedDEtaMCOverlap[i]  = new TH2F
        (Form("hTrackMatchedDEtaMCOverlap%s",cutTM[i].Data()),
         Form("d#eta of cluster-track vs cluster energy, several MC particles overlap %s",cutTM[i].Data()),
         nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
        fhTrackMatchedDEtaMCOverlap[i]->SetYTitle("d#eta");
        fhTrackMatchedDEtaMCOverlap[i]->SetXTitle("#it{E}_{cluster} (GeV)");
        
        fhTrackMatchedDPhiMCOverlap[i]  = new TH2F
        (Form("hTrackMatchedDPhiMCOverlap%s",cutTM[i].Data()),
         Form("d#phi of cluster-track vs cluster energy, several MC particles overlap %s",cutTM[i].Data()),
         nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
        fhTrackMatchedDPhiMCOverlap[i]->SetYTitle("d#phi (rad)");
        fhTrackMatchedDPhiMCOverlap[i]->SetXTitle("#it{E}_{cluster} (GeV)");
        
        outputContainer->Add(fhTrackMatchedDEtaMCOverlap[i]) ;
        outputContainer->Add(fhTrackMatchedDPhiMCOverlap[i]) ;
        
        fhTrackMatchedDEtaMCConversion[i]  = new TH2F
        (Form("hTrackMatchedDEtaMCConversion%s",cutTM[i].Data()),
         Form("d#eta of cluster-track vs cluster energy, no other MC particles overlap appart from conversions %s",cutTM[i].Data()),
         nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
        fhTrackMatchedDEtaMCConversion[i]->SetYTitle("d#eta");
        fhTrackMatchedDEtaMCConversion[i]->SetXTitle("#it{E}_{cluster} (GeV)");
        
        fhTrackMatchedDPhiMCConversion[i]  = new TH2F
        (Form("hTrackMatchedDPhiMCConversion%s",cutTM[i].Data()),
         Form("d#phi of cluster-track vs cluster energy, no other MC particles overlap appart from conversions %s",cutTM[i].Data()),
         nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
        fhTrackMatchedDPhiMCConversion[i]->SetYTitle("d#phi (rad)");
        fhTrackMatchedDPhiMCConversion[i]->SetXTitle("#it{E}_{cluster} (GeV)");
        
        outputContainer->Add(fhTrackMatchedDEtaMCConversion[i]) ;
        outputContainer->Add(fhTrackMatchedDPhiMCConversion[i]) ;
        
        fhTrackMatchedMCParticle[i]  = new TH2F
        (Form("hTrackMatchedMCParticle%s",cutTM[i].Data()),
         Form("Origin of particle vs energy %s",cutTM[i].Data()),
         nptbins,ptmin,ptmax,8,0,8);
        fhTrackMatchedMCParticle[i]->SetXTitle("#it{E} (GeV)");
        //fhTrackMatchedMCParticle[i]->SetYTitle("Particle type");
        
        fhTrackMatchedMCParticle[i]->GetYaxis()->SetBinLabel(1 ,"Photon");
        fhTrackMatchedMCParticle[i]->GetYaxis()->SetBinLabel(2 ,"Electron");
        fhTrackMatchedMCParticle[i]->GetYaxis()->SetBinLabel(3 ,"Meson Merged");
        fhTrackMatchedMCParticle[i]->GetYaxis()->SetBinLabel(4 ,"Rest");
        fhTrackMatchedMCParticle[i]->GetYaxis()->SetBinLabel(5 ,"Conv. Photon");
        fhTrackMatchedMCParticle[i]->GetYaxis()->SetBinLabel(6 ,"Conv. Electron");
        fhTrackMatchedMCParticle[i]->GetYaxis()->SetBinLabel(7 ,"Conv. Merged");
        fhTrackMatchedMCParticle[i]->GetYaxis()->SetBinLabel(8 ,"Conv. Rest");
        
        outputContainer->Add(fhTrackMatchedMCParticle[i]);
      }
    }
  }
  
  if(IsPileUpAnalysisOn())
  {
    TString pileUpName[] = {"SPD","EMCAL","SPDOrEMCAL","SPDAndEMCAL","SPDAndNotEMCAL","EMCALAndNotSPD","NotSPDAndNotEMCAL"} ;
    
    for(Int_t i = 0 ; i < 7 ; i++)
    {
      fhPtPhotonPileUp[i]  = new TH1F(Form("hPtPhotonPileUp%s",pileUpName[i].Data()),
                                      Form("Selected photon #it{p}_{T} distribution, %s Pile-Up event",pileUpName[i].Data()), nptbins,ptmin,ptmax);
      fhPtPhotonPileUp[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
      outputContainer->Add(fhPtPhotonPileUp[i]);
      
      fhClusterTimeDiffPhotonPileUp[i]  = new TH2F(Form("hClusterTimeDiffPhotonPileUp%s",pileUpName[i].Data()),
                                             Form("Photon cluster E vs #it{t}_{max}-#it{t}_{cell} in cluster, %s Pile-Up event",pileUpName[i].Data()),
                                             nptbins,ptmin,ptmax,400,-200,200);
      fhClusterTimeDiffPhotonPileUp[i]->SetXTitle("#it{E} (GeV)");
      fhClusterTimeDiffPhotonPileUp[i]->SetYTitle("#it{t}_{max}-#it{t}_{cell} (ns)");
      outputContainer->Add(fhClusterTimeDiffPhotonPileUp[i]);
    }
    
    fhTimePtPhotonNoCut  = new TH2F ("hTimePtPhoton_NoCut","time of photon cluster vs pT of clusters, no cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
    fhTimePtPhotonNoCut->SetXTitle("#it{p}_{T} (GeV/#it{c})");
    fhTimePtPhotonNoCut->SetYTitle("#it{time} (ns)");
    outputContainer->Add(fhTimePtPhotonNoCut);
    
    fhTimePtPhotonSPD  = new TH2F ("hTimePtPhoton_SPD","time of  photon cluster vs pT of clusters, SPD cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
    fhTimePtPhotonSPD->SetXTitle("#it{p}_{T} (GeV/#it{c})");
    fhTimePtPhotonSPD->SetYTitle("#it{time} (ns)");
    outputContainer->Add(fhTimePtPhotonSPD);
    
    fhTimeNPileUpVertSPD  = new TH2F ("hTime_NPileUpVertSPD","time of cluster vs N pile-up SPD vertex", ntimebins,timemin,timemax,20,0,20);
    fhTimeNPileUpVertSPD->SetYTitle("# vertex ");
    fhTimeNPileUpVertSPD->SetXTitle("#it{time} (ns)");
    outputContainer->Add(fhTimeNPileUpVertSPD);
    
    fhTimeNPileUpVertTrack  = new TH2F ("hTime_NPileUpVertTracks","time of cluster vs N pile-up Tracks vertex", ntimebins,timemin,timemax, 20,0,20 );
    fhTimeNPileUpVertTrack->SetYTitle("# vertex ");
    fhTimeNPileUpVertTrack->SetXTitle("#it{time} (ns)");
    outputContainer->Add(fhTimeNPileUpVertTrack);
    
    fhPtPhotonNPileUpSPDVtx  = new TH2F ("hPtPhoton_NPileUpVertSPD","pT of cluster vs N pile-up SPD vertex",
                                         nptbins,ptmin,ptmax,20,0,20);
    fhPtPhotonNPileUpSPDVtx->SetYTitle("# vertex ");
    fhPtPhotonNPileUpSPDVtx->SetXTitle("#it{p}_{T} (GeV/#it{c})");
    outputContainer->Add(fhPtPhotonNPileUpSPDVtx);
	  
    fhPtPhotonNPileUpTrkVtx  = new TH2F ("hPtPhoton_NPileUpVertTracks","pT of cluster vs N pile-up Tracks vertex",
                                         nptbins,ptmin,ptmax, 20,0,20 );
    fhPtPhotonNPileUpTrkVtx->SetYTitle("# vertex ");
    fhPtPhotonNPileUpTrkVtx->SetXTitle("#it{p}_{T} (GeV/#it{c})");
    outputContainer->Add(fhPtPhotonNPileUpTrkVtx);
	  
    fhPtPhotonNPileUpSPDVtxTimeCut  = new TH2F ("hPtPhoton_NPileUpVertSPD_TimeCut","pT of cluster vs N pile-up SPD vertex, |tof| < 25 ns",
                                                nptbins,ptmin,ptmax,20,0,20);
    fhPtPhotonNPileUpSPDVtxTimeCut->SetYTitle("# vertex ");
    fhPtPhotonNPileUpSPDVtxTimeCut->SetXTitle("#it{p}_{T} (GeV/#it{c})");
    outputContainer->Add(fhPtPhotonNPileUpSPDVtxTimeCut);
	  
    fhPtPhotonNPileUpTrkVtxTimeCut  = new TH2F ("hPtPhoton_NPileUpVertTracks_TimeCut","pT of cluster vs N pile-up Tracks vertex, |tof| < 25 ns",
                                                nptbins,ptmin,ptmax, 20,0,20 );
    fhPtPhotonNPileUpTrkVtxTimeCut->SetYTitle("# vertex ");
    fhPtPhotonNPileUpTrkVtxTimeCut->SetXTitle("#it{p}_{T} (GeV/#it{c})");
    outputContainer->Add(fhPtPhotonNPileUpTrkVtxTimeCut);
	  
    fhPtPhotonNPileUpSPDVtxTimeCut2  = new TH2F ("hPtPhoton_NPileUpVertSPD_TimeCut2","pT of cluster vs N pile-up SPD vertex, -25 < tof < 75 ns",
                                                 nptbins,ptmin,ptmax,20,0,20);
    fhPtPhotonNPileUpSPDVtxTimeCut2->SetYTitle("# vertex ");
    fhPtPhotonNPileUpSPDVtxTimeCut2->SetXTitle("#it{p}_{T} (GeV/#it{c})");
    outputContainer->Add(fhPtPhotonNPileUpSPDVtxTimeCut2);
	  
    fhPtPhotonNPileUpTrkVtxTimeCut2  = new TH2F ("hPtPhoton_NPileUpVertTracks_TimeCut2","pT of cluster vs N pile-up Tracks vertex,  -25 < tof < 75 ns",
                                                 nptbins,ptmin,ptmax, 20,0,20 );
    fhPtPhotonNPileUpTrkVtxTimeCut2->SetYTitle("# vertex ");
    fhPtPhotonNPileUpTrkVtxTimeCut2->SetXTitle("#it{p}_{T} (GeV/#it{c})");
    outputContainer->Add(fhPtPhotonNPileUpTrkVtxTimeCut2);
    
  }

  
  
  if(IsDataMC())
  {
    TString ptype[] = { "#gamma"         , "#gamma_{#pi decay}"    , "#gamma_{#eta decay}", "#gamma_{other decay}",
                        "#pi^{0}"        , "#eta"                  , "e^{#pm}"            , "#gamma->e^{#pm}"     ,
                        "hadron?"        , "Anti-N"                , "Anti-P"             ,
                        "#gamma_{prompt}", "#gamma_{fragmentation}", "#gamma_{ISR}"       , "String"               } ;
    
    TString pname[] = { "Photon"      , "PhotonPi0Decay"     , "PhotonEtaDecay", "PhotonOtherDecay",
                        "Pi0"         , "Eta"                , "Electron"      , "Conversion"      ,
                        "Hadron"      , "AntiNeutron"        , "AntiProton"    ,
                        "PhotonPrompt", "PhotonFragmentation", "PhotonISR"     , "String"           } ;
    
    for(Int_t i = 0; i < fNOriginHistograms; i++)
    {
      fhMCE[i]  = new TH1F(Form("hE_MC%s",pname[i].Data()),
                           Form("cluster from %s : E ",ptype[i].Data()),
                           nptbins,ptmin,ptmax);
      fhMCE[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhMCE[i]) ;
      
      fhMCPt[i]  = new TH1F(Form("hPt_MC%s",pname[i].Data()),
                            Form("cluster from %s : #it{p}_{T} ",ptype[i].Data()),
                            nptbins,ptmin,ptmax);
      fhMCPt[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
      outputContainer->Add(fhMCPt[i]) ;
      
      fhMCEta[i]  = new TH2F(Form("hEta_MC%s",pname[i].Data()),
                             Form("cluster from %s : #eta ",ptype[i].Data()),
                             nptbins,ptmin,ptmax,netabins,etamin,etamax);
      fhMCEta[i]->SetYTitle("#eta");
      fhMCEta[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhMCEta[i]) ;
      
      fhMCPhi[i]  = new TH2F(Form("hPhi_MC%s",pname[i].Data()),
                             Form("cluster from %s : #phi ",ptype[i].Data()),
                             nptbins,ptmin,ptmax,nphibins,phimin,phimax);
      fhMCPhi[i]->SetYTitle("#phi (rad)");
      fhMCPhi[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhMCPhi[i]) ;
      
      
      fhMCDeltaE[i]  = new TH2F (Form("hDeltaE_MC%s",pname[i].Data()),
                                 Form("MC - Reco E from %s",pname[i].Data()),
                                 nptbins,ptmin,ptmax, 200,-50,50);
      fhMCDeltaE[i]->SetYTitle("#Delta #it{E} (GeV)");
      fhMCDeltaE[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhMCDeltaE[i]);
      
      fhMCDeltaPt[i]  = new TH2F (Form("hDeltaPt_MC%s",pname[i].Data()),
                                  Form("MC - Reco #it{p}_{T} from %s",pname[i].Data()),
                                  nptbins,ptmin,ptmax, 200,-50,50);
      fhMCDeltaPt[i]->SetXTitle("p_{T,rec} (GeV/#it{c})");
      fhMCDeltaPt[i]->SetYTitle("#Delta #it{p}_{T} (GeV/#it{c})");
      outputContainer->Add(fhMCDeltaPt[i]);
      
      fhMC2E[i]  = new TH2F (Form("h2E_MC%s",pname[i].Data()),
                             Form("E distribution, reconstructed vs generated from %s",pname[i].Data()),
                             nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
      fhMC2E[i]->SetXTitle("#it{E}_{rec} (GeV)");
      fhMC2E[i]->SetYTitle("#it{E}_{gen} (GeV)");
      outputContainer->Add(fhMC2E[i]);
      
      fhMC2Pt[i]  = new TH2F (Form("h2Pt_MC%s",pname[i].Data()),
                              Form("p_T distribution, reconstructed vs generated from %s",pname[i].Data()),
                              nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
      fhMC2Pt[i]->SetXTitle("p_{T,rec} (GeV/#it{c})");
      fhMC2Pt[i]->SetYTitle("p_{T,gen} (GeV/#it{c})");
      outputContainer->Add(fhMC2Pt[i]);
      
      
    }
    
    TString pptype[] = { "#gamma"             , "#gamma_{#pi decay}"    ,
                         "#gamma_{#eta decay}", "#gamma_{other decay}"  ,
                         "#gamma_{prompt}"    , "#gamma_{fragmentation}", "#gamma_{ISR}" } ;
    
    TString ppname[] = { "Photon"        , "PhotonPi0Decay"     ,
                         "PhotonEtaDecay", "PhotonOtherDecay"   ,
                         "PhotonPrompt"  , "PhotonFragmentation", "PhotonISR" } ;
    
    for(Int_t i = 0; i < fNPrimaryHistograms; i++)
    {
      fhEPrimMC[i]  = new TH1F(Form("hEPrim_MC%s",ppname[i].Data()),
                               Form("primary photon %s : E ",pptype[i].Data()),
                               nptbins,ptmin,ptmax);
      fhEPrimMC[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhEPrimMC[i]) ;
      
      fhPtPrimMC[i]  = new TH1F(Form("hPtPrim_MC%s",ppname[i].Data()),
                                Form("primary photon %s : #it{p}_{T} ",pptype[i].Data()),
                                nptbins,ptmin,ptmax);
      fhPtPrimMC[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
      outputContainer->Add(fhPtPrimMC[i]) ;
      
      fhYPrimMC[i]  = new TH2F(Form("hYPrim_MC%s",ppname[i].Data()),
                               Form("primary photon %s : Rapidity ",pptype[i].Data()),
                               nptbins,ptmin,ptmax,200,-2,2);
      fhYPrimMC[i]->SetYTitle("Rapidity");
      fhYPrimMC[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhYPrimMC[i]) ;
      
      fhEtaPrimMC[i]  = new TH2F(Form("hEtaPrim_MC%s",ppname[i].Data()),
                               Form("primary photon %s : #eta",pptype[i].Data()),
                               nptbins,ptmin,ptmax,200,-2,2);
      fhEtaPrimMC[i]->SetYTitle("#eta");
      fhEtaPrimMC[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhEtaPrimMC[i]) ;
      
      fhPhiPrimMC[i]  = new TH2F(Form("hPhiPrim_MC%s",ppname[i].Data()),
                                 Form("primary photon %s : #phi ",pptype[i].Data()),
                                 nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
      fhPhiPrimMC[i]->SetYTitle("#phi (rad)");
      fhPhiPrimMC[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhPhiPrimMC[i]) ;
      
      
      fhEPrimMCAcc[i]  = new TH1F(Form("hEPrimAcc_MC%s",ppname[i].Data()),
                                  Form("primary photon %s in acceptance: E ",pptype[i].Data()),
                                  nptbins,ptmin,ptmax);
      fhEPrimMCAcc[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhEPrimMCAcc[i]) ;
      
      fhPtPrimMCAcc[i]  = new TH1F(Form("hPtPrimAcc_MC%s",ppname[i].Data()),
                                   Form("primary photon %s in acceptance: #it{p}_{T} ",pptype[i].Data()),
                                   nptbins,ptmin,ptmax);
      fhPtPrimMCAcc[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
      outputContainer->Add(fhPtPrimMCAcc[i]) ;
      
      fhYPrimMCAcc[i]  = new TH2F(Form("hYPrimAcc_MC%s",ppname[i].Data()),
                                  Form("primary photon %s in acceptance: Rapidity ",pptype[i].Data()),
                                  nptbins,ptmin,ptmax,100,-1,1);
      fhYPrimMCAcc[i]->SetYTitle("Rapidity");
      fhYPrimMCAcc[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhYPrimMCAcc[i]) ;

      fhEtaPrimMCAcc[i]  = new TH2F(Form("hEtaPrimAcc_MC%s",ppname[i].Data()),
                                  Form("primary photon %s in acceptance: #eta ",pptype[i].Data()),
                                  nptbins,ptmin,ptmax,netabins,etamin,etamax);
      fhEtaPrimMCAcc[i]->SetYTitle("#eta");
      fhEtaPrimMCAcc[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhEtaPrimMCAcc[i]) ;
      
      fhPhiPrimMCAcc[i]  = new TH2F(Form("hPhiPrimAcc_MC%s",ppname[i].Data()),
                                    Form("primary photon %s in acceptance: #phi ",pptype[i].Data()),
                                    nptbins,ptmin,ptmax,nphibins,phimin,phimax);
      fhPhiPrimMCAcc[i]->SetYTitle("#phi (rad)");
      fhPhiPrimMCAcc[i]->SetXTitle("#it{E} (GeV)");
      outputContainer->Add(fhPhiPrimMCAcc[i]) ;
      
    }
    
    if(fFillSSHistograms)
    {
      TString ptypess[] = { "#gamma","hadron?","#pi^{0}","#eta","#gamma->e^{#pm}","e^{#pm}"} ;
      
      TString pnamess[] = { "Photon","Hadron","Pi0","Eta","Conversion","Electron"} ;
      
      for(Int_t i = 0; i < 6; i++)
      {
        fhMCELambda0[i]  = new TH2F(Form("hELambda0_MC%s",pnamess[i].Data()),
                                    Form("cluster from %s : E vs #lambda_{0}^{2}",ptypess[i].Data()),
                                    nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhMCELambda0[i]->SetYTitle("#lambda_{0}^{2}");
        fhMCELambda0[i]->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhMCELambda0[i]) ;
        
        fhMCELambda1[i]  = new TH2F(Form("hELambda1_MC%s",pnamess[i].Data()),
                                    Form("cluster from %s : E vs #lambda_{1}^{2}",ptypess[i].Data()),
                                    nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhMCELambda1[i]->SetYTitle("#lambda_{1}^{2}");
        fhMCELambda1[i]->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhMCELambda1[i]) ;
        
        fhMCEDispersion[i]  = new TH2F(Form("hEDispersion_MC%s",pnamess[i].Data()),
                                       Form("cluster from %s : E vs dispersion^{2}",ptypess[i].Data()),
                                       nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhMCEDispersion[i]->SetYTitle("D^{2}");
        fhMCEDispersion[i]->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhMCEDispersion[i]) ;
        
        fhMCNCellsE[i]  = new TH2F (Form("hNCellsE_MC%s",pnamess[i].Data()),
                                    Form("# of cells in cluster from %s vs E of clusters",ptypess[i].Data()),
                                    nptbins,ptmin,ptmax, nbins,nmin,nmax);
        fhMCNCellsE[i]->SetXTitle("#it{E} (GeV)");
        fhMCNCellsE[i]->SetYTitle("# of cells in cluster");
        outputContainer->Add(fhMCNCellsE[i]);
        
        fhMCMaxCellDiffClusterE[i]  = new TH2F (Form("hMaxCellDiffClusterE_MC%s",pnamess[i].Data()),
                                                Form("energy vs difference of cluster energy from %s - max cell energy / cluster energy, good clusters",ptypess[i].Data()),
                                                nptbins,ptmin,ptmax, 500,0,1.);
        fhMCMaxCellDiffClusterE[i]->SetXTitle("#it{E}_{cluster} (GeV) ");
        fhMCMaxCellDiffClusterE[i]->SetYTitle("(#it{E}_{cluster} - #it{E}_{cell max})/ #it{E}_{cluster}");
        outputContainer->Add(fhMCMaxCellDiffClusterE[i]);
        
        if(!fFillOnlySimpleSSHisto)
        {
          fhMCLambda0vsClusterMaxCellDiffE0[i]  = new TH2F(Form("hLambda0vsClusterMaxCellDiffE0_MC%s",pnamess[i].Data()),
                                                           Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].Data()),
                                                           ssbins,ssmin,ssmax,500,0,1.);
          fhMCLambda0vsClusterMaxCellDiffE0[i]->SetXTitle("#lambda_{0}^{2}");
          fhMCLambda0vsClusterMaxCellDiffE0[i]->SetYTitle("(#it{E}_{cluster} - #it{E}_{cell max})/ #it{E}_{cluster}");
          outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE0[i]) ;
          
          fhMCLambda0vsClusterMaxCellDiffE2[i]  = new TH2F(Form("hLambda0vsClusterMaxCellDiffE2_MC%s",pnamess[i].Data()),
                                                           Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].Data()),
                                                           ssbins,ssmin,ssmax,500,0,1.);
          fhMCLambda0vsClusterMaxCellDiffE2[i]->SetXTitle("#lambda_{0}^{2}");
          fhMCLambda0vsClusterMaxCellDiffE2[i]->SetYTitle("(#it{E}_{cluster} - #it{E}_{cell max})/ #it{E}_{cluster}");
          outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE2[i]) ;
          
          fhMCLambda0vsClusterMaxCellDiffE6[i]  = new TH2F(Form("hLambda0vsClusterMaxCellDiffE6_MC%s",pnamess[i].Data()),
                                                           Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, #it{E} > 6 GeV",ptypess[i].Data()),
                                                           ssbins,ssmin,ssmax,500,0,1.);
          fhMCLambda0vsClusterMaxCellDiffE6[i]->SetXTitle("#lambda_{0}^{2}");
          fhMCLambda0vsClusterMaxCellDiffE6[i]->SetYTitle("(#it{E}_{cluster} - #it{E}_{cell max})/ #it{E}_{cluster}");
          outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE6[i]) ;
          
          fhMCNCellsvsClusterMaxCellDiffE0[i]  = new TH2F(Form("hNCellsvsClusterMaxCellDiffE0_MC%s",pnamess[i].Data()),
                                                          Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].Data()),
                                                          nbins/5,nmin,nmax/5,500,0,1.);
          fhMCNCellsvsClusterMaxCellDiffE0[i]->SetXTitle("N cells in cluster");
          fhMCNCellsvsClusterMaxCellDiffE0[i]->SetYTitle("(#it{E}_{cluster} - #it{E}_{cell max})/ #it{E}_{cluster}");
          outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE0[i]) ;
          
          fhMCNCellsvsClusterMaxCellDiffE2[i]  = new TH2F(Form("hNCellsvsClusterMaxCellDiffE2_MC%s",pnamess[i].Data()),
                                                          Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].Data()),
                                                          nbins/5,nmin,nmax/5,500,0,1.);
          fhMCNCellsvsClusterMaxCellDiffE2[i]->SetXTitle("N cells in cluster");
          fhMCNCellsvsClusterMaxCellDiffE2[i]->SetYTitle("(#it{E}_{cluster} - #it{E}_{cell max})/ #it{E}_{cluster}");
          outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE2[i]) ;
          
          fhMCNCellsvsClusterMaxCellDiffE6[i]  = new TH2F(Form("hNCellsvsClusterMaxCellDiffE6_MC%s",pnamess[i].Data()),
                                                          Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, #it{E} > 6 GeV",ptypess[i].Data()),
                                                          nbins/5,nmin,nmax/5,500,0,1.);
          fhMCNCellsvsClusterMaxCellDiffE6[i]->SetXTitle("N cells in cluster");
          fhMCNCellsvsClusterMaxCellDiffE6[i]->SetYTitle("#it{E} (GeV)");
          outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE6[i]) ;
          
          if(GetCalorimeter()==kEMCAL)
          {
            fhMCEDispEta[i]  = new TH2F (Form("hEDispEtaE_MC%s",pnamess[i].Data()),
                                         Form("cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].Data()),
                                         nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
            fhMCEDispEta[i]->SetXTitle("#it{E} (GeV)");
            fhMCEDispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}");
            outputContainer->Add(fhMCEDispEta[i]);
            
            fhMCEDispPhi[i]  = new TH2F (Form("hEDispPhiE_MC%s",pnamess[i].Data()),
                                         Form("cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptypess[i].Data()),
                                         nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
            fhMCEDispPhi[i]->SetXTitle("#it{E} (GeV)");
            fhMCEDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
            outputContainer->Add(fhMCEDispPhi[i]);
            
            fhMCESumEtaPhi[i]  = new TH2F (Form("hESumEtaPhiE_MC%s",pnamess[i].Data()),
                                           Form("cluster from %s : #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",ptypess[i].Data()),
                                           nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax);
            fhMCESumEtaPhi[i]->SetXTitle("#it{E} (GeV)");
            fhMCESumEtaPhi[i]->SetYTitle("#delta^{2}_{#eta #phi}");
            outputContainer->Add(fhMCESumEtaPhi[i]);
            
            fhMCEDispEtaPhiDiff[i]  = new TH2F (Form("hEDispEtaPhiDiffE_MC%s",pnamess[i].Data()),
                                                Form("cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptypess[i].Data()),
                                                nptbins,ptmin,ptmax,200,-10,10);
            fhMCEDispEtaPhiDiff[i]->SetXTitle("#it{E} (GeV)");
            fhMCEDispEtaPhiDiff[i]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
            outputContainer->Add(fhMCEDispEtaPhiDiff[i]);
            
            fhMCESphericity[i]  = new TH2F (Form("hESphericity_MC%s",pnamess[i].Data()),
                                            Form("cluster from %s : (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",ptypess[i].Data()),
                                            nptbins,ptmin,ptmax, 200,-1,1);
            fhMCESphericity[i]->SetXTitle("#it{E} (GeV)");
            fhMCESphericity[i]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
            outputContainer->Add(fhMCESphericity[i]);
            
            for(Int_t ie = 0; ie < 7; ie++)
            {
              fhMCDispEtaDispPhi[ie][i] = new TH2F (Form("hMCDispEtaDispPhi_EBin%d_MC%s",ie,pnamess[i].Data()),
                                                    Form("cluster from %s : #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]),
                                                    ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
              fhMCDispEtaDispPhi[ie][i]->SetXTitle("#sigma^{2}_{#eta #eta}");
              fhMCDispEtaDispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
              outputContainer->Add(fhMCDispEtaDispPhi[ie][i]);
              
              fhMCLambda0DispEta[ie][i] = new TH2F (Form("hMCLambda0DispEta_EBin%d_MC%s",ie,pnamess[i].Data()),
                                                    Form("cluster from %s : #lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]),
                                                    ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
              fhMCLambda0DispEta[ie][i]->SetXTitle("#lambda^{2}_{0}");
              fhMCLambda0DispEta[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
              outputContainer->Add(fhMCLambda0DispEta[ie][i]);
              
              fhMCLambda0DispPhi[ie][i] = new TH2F (Form("hMCLambda0DispPhi_EBin%d_MC%s",ie,pnamess[i].Data()),
                                                    Form("cluster from %s :#lambda^{2}_{0} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]),
                                                    ssbins,ssmin,ssmax , ssbins,ssmin,ssmax);
              fhMCLambda0DispPhi[ie][i]->SetXTitle("#lambda^{2}_{0}");
              fhMCLambda0DispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
              outputContainer->Add(fhMCLambda0DispPhi[ie][i]);
            }
          }
        }
      }// loop
      
      if(!GetReader()->IsEmbeddedClusterSelectionOn())
      {
        fhMCPhotonELambda0NoOverlap  = new TH2F("hELambda0_MCPhoton_NoOverlap",
                                                "cluster from Photon : E vs #lambda_{0}^{2}",
                                                nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhMCPhotonELambda0NoOverlap->SetYTitle("#lambda_{0}^{2}");
        fhMCPhotonELambda0NoOverlap->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhMCPhotonELambda0NoOverlap) ;
        
        fhMCPhotonELambda0TwoOverlap  = new TH2F("hELambda0_MCPhoton_TwoOverlap",
                                                 "cluster from Photon : E vs #lambda_{0}^{2}",
                                                 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhMCPhotonELambda0TwoOverlap->SetYTitle("#lambda_{0}^{2}");
        fhMCPhotonELambda0TwoOverlap->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhMCPhotonELambda0TwoOverlap) ;
        
        fhMCPhotonELambda0NOverlap  = new TH2F("hELambda0_MCPhoton_NOverlap",
                                               "cluster from Photon : E vs #lambda_{0}^{2}",
                                               nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhMCPhotonELambda0NOverlap->SetYTitle("#lambda_{0}^{2}");
        fhMCPhotonELambda0NOverlap->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhMCPhotonELambda0NOverlap) ;
        
      } //No embedding
      
      if(GetReader()->IsEmbeddedClusterSelectionOn())
      {
        
        fhEmbeddedSignalFractionEnergy  = new TH2F("hEmbeddedSignal_FractionEnergy",
                                                   "Energy Fraction of embedded signal versus cluster energy",
                                                   nptbins,ptmin,ptmax,100,0.,1.);
        fhEmbeddedSignalFractionEnergy->SetYTitle("Fraction");
        fhEmbeddedSignalFractionEnergy->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhEmbeddedSignalFractionEnergy) ;
        
        fhEmbedPhotonELambda0FullSignal  = new TH2F("hELambda0_EmbedPhoton_FullSignal",
                                                    "cluster from Photon embedded with more than 90% energy in cluster : E vs #lambda_{0}^{2}",
                                                    nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhEmbedPhotonELambda0FullSignal->SetYTitle("#lambda_{0}^{2}");
        fhEmbedPhotonELambda0FullSignal->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhEmbedPhotonELambda0FullSignal) ;
        
        fhEmbedPhotonELambda0MostlySignal  = new TH2F("hELambda0_EmbedPhoton_MostlySignal",
                                                      "cluster from Photon embedded with 50% to 90% energy in cluster : E vs #lambda_{0}^{2}",
                                                      nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhEmbedPhotonELambda0MostlySignal->SetYTitle("#lambda_{0}^{2}");
        fhEmbedPhotonELambda0MostlySignal->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhEmbedPhotonELambda0MostlySignal) ;
        
        fhEmbedPhotonELambda0MostlyBkg  = new TH2F("hELambda0_EmbedPhoton_MostlyBkg",
                                                   "cluster from Photon embedded with 10% to 50% energy in cluster : E vs #lambda_{0}^{2}",
                                                   nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhEmbedPhotonELambda0MostlyBkg->SetYTitle("#lambda_{0}^{2}");
        fhEmbedPhotonELambda0MostlyBkg->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhEmbedPhotonELambda0MostlyBkg) ;
        
        fhEmbedPhotonELambda0FullBkg  = new TH2F("hELambda0_EmbedPhoton_FullBkg",
                                                 "cluster from Photonm embedded with 0% to 10% energy in cluster : E vs #lambda_{0}^{2}",
                                                 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhEmbedPhotonELambda0FullBkg->SetYTitle("#lambda_{0}^{2}");
        fhEmbedPhotonELambda0FullBkg->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhEmbedPhotonELambda0FullBkg) ;
        
        fhEmbedPi0ELambda0FullSignal  = new TH2F("hELambda0_EmbedPi0_FullSignal",
                                                 "cluster from Pi0 embedded with more than 90% energy in cluster : E vs #lambda_{0}^{2}",
                                                 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhEmbedPi0ELambda0FullSignal->SetYTitle("#lambda_{0}^{2}");
        fhEmbedPi0ELambda0FullSignal->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhEmbedPi0ELambda0FullSignal) ;
        
        fhEmbedPi0ELambda0MostlySignal  = new TH2F("hELambda0_EmbedPi0_MostlySignal",
                                                   "cluster from Pi0 embedded with 50% to 90% energy in cluster : E vs #lambda_{0}^{2}",
                                                   nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhEmbedPi0ELambda0MostlySignal->SetYTitle("#lambda_{0}^{2}");
        fhEmbedPi0ELambda0MostlySignal->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhEmbedPi0ELambda0MostlySignal) ;
        
        fhEmbedPi0ELambda0MostlyBkg  = new TH2F("hELambda0_EmbedPi0_MostlyBkg",
                                                "cluster from Pi0 embedded with 10% to 50% energy in cluster : E vs #lambda_{0}^{2}",
                                                nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhEmbedPi0ELambda0MostlyBkg->SetYTitle("#lambda_{0}^{2}");
        fhEmbedPi0ELambda0MostlyBkg->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhEmbedPi0ELambda0MostlyBkg) ;
        
        fhEmbedPi0ELambda0FullBkg  = new TH2F("hELambda0_EmbedPi0_FullBkg",
                                              "cluster from Pi0 embedded with 0% to 10% energy in cluster : E vs #lambda_{0}^{2}",
                                              nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
        fhEmbedPi0ELambda0FullBkg->SetYTitle("#lambda_{0}^{2}");
        fhEmbedPi0ELambda0FullBkg->SetXTitle("#it{E} (GeV)");
        outputContainer->Add(fhEmbedPi0ELambda0FullBkg) ;
        
      }// embedded histograms
      
      
    }// Fill SS MC histograms
    
  }//Histos with MC
  
  return outputContainer ;
  
}

//_______________________
void AliAnaPhoton::Init()
{
  //Init
 
  //Do some checks
  
  if      ( GetCalorimeter() == kPHOS  && !GetReader()->IsPHOSSwitchedOn()  && NewOutputAOD() )
    AliFatal("!!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!");
  else  if( GetCalorimeter() == kEMCAL && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD() )
    AliFatal("!!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!");
  
  if(GetReader()->GetDataType() == AliCaloTrackReader::kMC) GetCaloPID()->SwitchOnBayesian();
  
}

//____________________________________________________________________________
void AliAnaPhoton::InitParameters()
{
  
  //Initialize the parameters of the analysis.
  AddToHistogramsName("AnaPhoton_");
  
  fMinDist     = 2.;
  fMinDist2    = 4.;
  fMinDist3    = 5.;
	
  fTimeCutMin  =-1000000;
  fTimeCutMax  = 1000000;
  fNCellsCut   = 0;
	
  fRejectTrackMatch       = kTRUE ;
  
}

//__________________________________________________________________
void  AliAnaPhoton::MakeAnalysisFillAOD()
{
  //Do photon analysis and fill aods
  
  //Get the vertex
  Double_t v[3] = {0,0,0}; //vertex ;
  GetReader()->GetVertex(v);
  
  //Select the Calorimeter of the photon
  TObjArray * pl = 0x0;
  AliVCaloCells* cells    = 0;
  if      (GetCalorimeter() == kPHOS )
  {
    pl    = GetPHOSClusters();
    cells = GetPHOSCells();
  }
  else if (GetCalorimeter() == kEMCAL)
  {
    pl    = GetEMCALClusters();
    cells = GetEMCALCells();
  }
  
  if(!pl)
  {
    AliWarning(Form("TObjArray with %s clusters is NULL!",GetCalorimeterString().Data()));
    return;
  }
  
  // Loop on raw clusters before filtering in the reader and fill control histogram
  if((GetReader()->GetEMCALClusterListName()=="" && GetCalorimeter()==kEMCAL) || GetCalorimeter()==kPHOS)
  {
    for(Int_t iclus = 0; iclus < GetReader()->GetInputEvent()->GetNumberOfCaloClusters(); iclus++ )
    {
      AliVCluster * clus = GetReader()->GetInputEvent()->GetCaloCluster(iclus);
      if     (GetCalorimeter() == kPHOS  && clus->IsPHOS()  && clus->E() > GetReader()->GetPHOSPtMin() )
      {
        fhClusterCutsE [0]->Fill(clus->E());
        
        clus->GetMomentum(fMomentum,GetVertex(0)) ;
        fhClusterCutsPt[0]->Fill(fMomentum.Pt());
      }
      else if(GetCalorimeter() == kEMCAL && clus->IsEMCAL() && clus->E() > GetReader()->GetEMCALPtMin())
      {
        fhClusterCutsE [0]->Fill(clus->E());
        
        clus->GetMomentum(fMomentum,GetVertex(0)) ;
        fhClusterCutsPt[0]->Fill(fMomentum.Pt());
      }
    }
  }
  else
  { // reclusterized
    TClonesArray * clusterList = 0;
    
    if(GetReader()->GetInputEvent()->FindListObject(GetReader()->GetEMCALClusterListName()))
      clusterList = dynamic_cast<TClonesArray*> (GetReader()->GetInputEvent()->FindListObject(GetReader()->GetEMCALClusterListName()));
    else if(GetReader()->GetOutputEvent())
      clusterList = dynamic_cast<TClonesArray*> (GetReader()->GetOutputEvent()->FindListObject(GetReader()->GetEMCALClusterListName()));
    
    if(clusterList)
    {
      Int_t nclusters = clusterList->GetEntriesFast();
      for (Int_t iclus =  0; iclus <  nclusters; iclus++)
      {
        AliVCluster * clus = dynamic_cast<AliVCluster*> (clusterList->At(iclus));
        if(clus)
        {
          fhClusterCutsE [0]->Fill(clus->E());
          
          clus->GetMomentum(fMomentum,GetVertex(0)) ;
          fhClusterCutsPt[0]->Fill(fMomentum.Pt());
        }
      }
    }
  }
  
  // Init arrays, variables, get number of clusters
  Int_t nCaloClusters = pl->GetEntriesFast();
  
  AliDebug(1,Form("Input %s cluster entries %d", GetCalorimeterString().Data(), nCaloClusters));
  
  //----------------------------------------------------
  // Fill AOD with PHOS/EMCAL AliAODPWG4Particle objects
  //----------------------------------------------------
  // Loop on clusters
  for(Int_t icalo = 0; icalo < nCaloClusters; icalo++)
  {
	  AliVCluster * calo =  (AliVCluster*) (pl->At(icalo));
    //printf("calo %d, %f\n",icalo,calo->E());
    
    //Get the index where the cluster comes, to retrieve the corresponding vertex
    Int_t evtIndex = 0 ;
    if (GetMixedEvent())
    {
      evtIndex=GetMixedEvent()->EventIndexForCaloCluster(calo->GetID()) ;
      //Get the vertex and check it is not too large in z
      if(TMath::Abs(GetVertex(evtIndex)[2])> GetZvertexCut()) continue;
    }
    
    //Cluster selection, not charged, with photon id and in fiducial cut
    if(GetReader()->GetDataType() != AliCaloTrackReader::kMC)
    {
      calo->GetMomentum(fMomentum,GetVertex(evtIndex)) ;
    }//Assume that come from vertex in straight line
    else
    {
      Double_t vertex[]={0,0,0};
      calo->GetMomentum(fMomentum,vertex) ;
    }
    
    //-----------------------------
    // Cluster selection
    //-----------------------------
    Int_t nMaxima = GetCaloUtils()->GetNumberOfLocalMaxima(calo, cells); // NLM
    if(!ClusterSelected(calo,nMaxima)) continue;
    
    //----------------------------
    // Create AOD for analysis
    //----------------------------
    AliAODPWG4Particle aodph = AliAODPWG4Particle(fMomentum);
    
    //...............................................
    //Set the indeces of the original caloclusters (MC, ID), and calorimeter
    Int_t label = calo->GetLabel();
    aodph.SetLabel(label);
    aodph.SetCaloLabel(calo->GetID(),-1);
    aodph.SetDetectorTag(GetCalorimeter());
    //printf("Index %d, Id %d, iaod %d\n",icalo, calo->GetID(),GetOutputAODBranch()->GetEntriesFast());
    
    //...............................................
    //Set bad channel distance bit
    Double_t distBad=calo->GetDistanceToBadChannel() ; //Distance to bad channel
    if     (distBad > fMinDist3) aodph.SetDistToBad(2) ;
    else if(distBad > fMinDist2) aodph.SetDistToBad(1) ;
    else                         aodph.SetDistToBad(0) ;
    //printf("DistBad %f Bit %d\n",distBad, aodph.DistToBad());
    
    //-------------------------------------
    // Play with the MC stack if available
    //-------------------------------------
    
    //Check origin of the candidates
    Int_t tag = -1;
    
    if(IsDataMC())
    {
      tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(),GetCalorimeter());
      aodph.SetTag(tag);
      
      AliDebug(1,Form("Origin of candidate, bit map %d",aodph.GetTag()));
    }//Work with stack also
    
    //--------------------------------------------------------
    // Fill some shower shape histograms before PID is applied
    //--------------------------------------------------------
    
    Float_t maxCellFraction = 0;
    Int_t absIdMax = GetCaloUtils()->GetMaxEnergyCell(cells, calo, maxCellFraction);
    if( absIdMax < 0 ) AliFatal("Wrong absID");
    
    FillShowerShapeHistograms(calo,tag,maxCellFraction);
    
    aodph.SetM02(calo->GetM02());
    aodph.SetNLM(nMaxima);
    aodph.SetTime(calo->GetTOF()*1e9);
    aodph.SetNCells(calo->GetNCells());
    Int_t nSM = GetModuleNumber(calo);
    aodph.SetSModNumber(nSM);

    //-------------------------------------
    // PID selection or bit setting
    //-------------------------------------
    
    //...............................................
    // Data, PID check on
    if(IsCaloPIDOn())
    {
      // Get most probable PID, 2 options check bayesian PID weights or redo PID
      // By default, redo PID
      
      aodph.SetIdentifiedParticleType(GetCaloPID()->GetIdentifiedParticleType(calo));
      
      AliDebug(1,Form("PDG of identified particle %d",aodph.GetIdentifiedParticleType()));
      
      //If cluster does not pass pid, not photon, skip it.
      if(aodph.GetIdentifiedParticleType() != AliCaloPID::kPhoton) continue ;
      
    }
    
    //...............................................
    // Data, PID check off
    else
    {
      //Set PID bits for later selection (AliAnaPi0 for example)
      //GetIdentifiedParticleType already called in SetPIDBits.
      
      GetCaloPID()->SetPIDBits(calo,&aodph, GetCaloUtils(),GetReader()->GetInputEvent());
      
      AliDebug(1,"PID Bits set");
    }
    
    AliDebug(1,Form("Photon selection cuts passed: pT %3.2f, pdg %d",aodph.Pt(),aodph.GetIdentifiedParticleType()));
    
    fhClusterCutsE [9]->Fill(calo->E());
    fhClusterCutsPt[9]->Fill(fMomentum.Pt());
    
    if(nSM < GetCaloUtils()->GetNumberOfSuperModulesUsed() && nSM >=0)
    {
      fhEPhotonSM ->Fill(fMomentum.E (),nSM);
      fhPtPhotonSM->Fill(fMomentum.Pt(),nSM);
    }
    
    fhNLocMax->Fill(calo->E(),nMaxima);
    
    // Few more control histograms for selected clusters
    fhMaxCellDiffClusterE->Fill(calo->E() ,maxCellFraction);
    fhNCellsE            ->Fill(calo->E() ,calo->GetNCells());
    fhTimePt             ->Fill(fMomentum.Pt()  ,calo->GetTOF()*1.e9);
    
    if(cells)
    {
      for(Int_t icell = 0; icell <  calo->GetNCells(); icell++)
        fhCellsE->Fill(calo->E(),cells->GetCellAmplitude(calo->GetCellsAbsId()[icell]));
    }
    
    // Matching after cuts
    if( fFillTMHisto )          FillTrackMatchingResidualHistograms(calo,1);
    
    // Fill histograms to undertand pile-up before other cuts applied
    // Remember to relax time cuts in the reader
    if( IsPileUpAnalysisOn() ) FillPileUpHistograms(calo,cells, absIdMax);
    
    // Add AOD with photon object to aod branch
    AddAODParticle(aodph);
    
  }//loop
  
  AliDebug(1,Form("End fill AODs, with %d entries",GetOutputAODBranch()->GetEntriesFast()));
  
}

//______________________________________________
void  AliAnaPhoton::MakeAnalysisFillHistograms()
{
  //Fill histograms
  
  //In case of simulated data, fill acceptance histograms
  if(IsDataMC()) FillAcceptanceHistograms();
  
  // Get vertex
  Double_t v[3] = {0,0,0}; //vertex ;
  GetReader()->GetVertex(v);
  //fhVertex->Fill(v[0],v[1],v[2]);
  if(TMath::Abs(v[2]) > GetZvertexCut()) return ; // done elsewhere for Single Event analysis, but there for mixed event
  
  //----------------------------------
  //Loop on stored AOD photons
  Int_t naod = GetOutputAODBranch()->GetEntriesFast();
  AliDebug(1,Form("AOD branch entries %d", naod));
  
  Float_t cen = GetEventCentrality();
  // printf("++++++++++ GetEventCentrality() %f\n",cen);
  
  Float_t ep  = GetEventPlaneAngle();
  
  for(Int_t iaod = 0; iaod < naod ; iaod++)
  {
    AliAODPWG4Particle* ph =  (AliAODPWG4Particle*) (GetOutputAODBranch()->At(iaod));
    Int_t pdg = ph->GetIdentifiedParticleType();
    
    AliDebug(2,Form("PDG %d, MC TAG %d, Calorimeter <%d>",ph->GetIdentifiedParticleType(),ph->GetTag(), ph->GetDetectorTag())) ;
    
    //If PID used, fill histos with photons in Calorimeter GetCalorimeter()
    if(IsCaloPIDOn() && pdg != AliCaloPID::kPhoton) continue;
    
    if(((Int_t) ph->GetDetectorTag()) != GetCalorimeter()) continue;
    
    AliDebug(2,Form("ID Photon: pt %f, phi %f, eta %f", ph->Pt(),ph->Phi(),ph->Eta())) ;
    
    //................................
    //Fill photon histograms
    Float_t ptcluster  = ph->Pt();
    Float_t phicluster = ph->Phi();
    Float_t etacluster = ph->Eta();
    Float_t ecluster   = ph->E();
    
    fhEPhoton   ->Fill(ecluster);
    fhPtPhoton  ->Fill(ptcluster);
    fhPhiPhoton ->Fill(ptcluster,phicluster);
    fhEtaPhoton ->Fill(ptcluster,etacluster);
    if     (ecluster   > 0.5) fhEtaPhiPhoton  ->Fill(etacluster, phicluster);
    else if(GetMinPt() < 0.5) fhEtaPhi05Photon->Fill(etacluster, phicluster);
    
    if(IsHighMultiplicityAnalysisOn())
    {
      fhPtCentralityPhoton ->Fill(ptcluster,cen) ;
      fhPtEventPlanePhoton ->Fill(ptcluster,ep ) ;
    }
  
//    Comment this part, not needed but in case to know how to do it in the future
//    //Get original cluster, to recover some information
//    AliVCaloCells* cells    = 0;
//    TObjArray * clusters    = 0;
//    if(GetCalorimeter() == kEMCAL)
//    {
//      cells    = GetEMCALCells();
//      clusters = GetEMCALClusters();
//    }
//    else
//    {
//      cells    = GetPHOSCells();
//      clusters = GetPHOSClusters();
//    }
    
//    Int_t iclus = -1;
//    AliVCluster *cluster = FindCluster(clusters,ph->GetCaloLabel(0),iclus);
//    if(cluster)
    
    //.......................................
    //Play with the MC data if available
    if(IsDataMC())
    {
      //....................................................................
      // Access MC information in stack if requested, check that it exists.
      Int_t label = ph->GetLabel();
      
      if(label < 0)
      {
        AliDebug(1,Form("*** bad label ***:  label %d", label));
        continue;
      }
      
      Float_t eprim   = 0;
      Float_t ptprim  = 0;
      Bool_t ok = kFALSE;
      fPrimaryMom = GetMCAnalysisUtils()->GetMother(label,GetReader(),ok);
                 
      if(ok)
      {
        eprim   = fPrimaryMom.Energy();
        ptprim  = fPrimaryMom.Pt();
      }
      
      Int_t tag =ph->GetTag();
      Int_t mcParticleTag = -1;
      if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) && fhMCE[kmcPhoton])
      {
        fhMCE  [kmcPhoton] ->Fill(ecluster);
        fhMCPt [kmcPhoton] ->Fill(ptcluster);
        fhMCPhi[kmcPhoton] ->Fill(ecluster,phicluster);
        fhMCEta[kmcPhoton] ->Fill(ecluster,etacluster);
        
        fhMC2E     [kmcPhoton] ->Fill(ecluster, eprim);
        fhMC2Pt    [kmcPhoton] ->Fill(ptcluster, ptprim);
        fhMCDeltaE [kmcPhoton] ->Fill(ecluster,eprim-ecluster);
        fhMCDeltaPt[kmcPhoton] ->Fill(ptcluster,ptprim-ptcluster);
        
        if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion) &&
           fhMCE[kmcConversion])
        {
          fhMCE  [kmcConversion] ->Fill(ecluster);
          fhMCPt [kmcConversion] ->Fill(ptcluster);
          fhMCPhi[kmcConversion] ->Fill(ecluster,phicluster);
          fhMCEta[kmcConversion] ->Fill(ecluster,etacluster);
          
          fhMC2E     [kmcConversion] ->Fill(ecluster, eprim);
          fhMC2Pt    [kmcConversion] ->Fill(ptcluster, ptprim);
          fhMCDeltaE [kmcConversion] ->Fill(ecluster,eprim-ecluster);
          fhMCDeltaPt[kmcConversion] ->Fill(ptcluster,ptprim-ptcluster);
        }
        
        if     ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt) )
        {
          mcParticleTag = kmcPrompt;
        }
        else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation) )
        {
          mcParticleTag = kmcFragmentation;
        }
        else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCISR) )
        {
          mcParticleTag = kmcISR;
        }
        else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) )
        {
          mcParticleTag = kmcPi0;
        }
        else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta) )
        {
          mcParticleTag = kmcEta;
        }
        else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay) )
        {
          mcParticleTag = kmcPi0Decay;
        }
        else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay) )
        {
          mcParticleTag = kmcEtaDecay;
        }
        else
        {
          mcParticleTag = kmcOtherDecay;
        }
      }
      else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCAntiNeutron) )
      {
        mcParticleTag = kmcAntiNeutron;
      }
      else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCAntiProton) )
      {
        mcParticleTag = kmcAntiProton;
      }
      else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron) )
      {
        mcParticleTag = kmcElectron;
      }
      else if( fhMCE[kmcOther] )
      {
        mcParticleTag = kmcOther;
        
        //		 printf(" AliAnaPhoton::MakeAnalysisFillHistograms() - Label %d, pT %2.3f Unknown, bits set: ",
        //					ph->GetLabel(),ph->Pt());
        //		  for(Int_t i = 0; i < 20; i++) {
        //			  if(GetMCAnalysisUtils()->CheckTagBit(tag,i)) printf(" %d, ",i);
        //		  }
        //		  printf("\n");
        
      }
      
      if(mcParticleTag >= 0 && fhMCE[mcParticleTag])
      {
        fhMCE  [mcParticleTag]->Fill(ecluster);
        fhMCPt [mcParticleTag]->Fill(ptcluster);
        fhMCPhi[mcParticleTag]->Fill(ecluster,phicluster);
        fhMCEta[mcParticleTag]->Fill(ecluster,etacluster);
        
        fhMC2E     [mcParticleTag]->Fill(ecluster, eprim);
        fhMC2Pt    [mcParticleTag]->Fill(ptcluster, ptprim);
        fhMCDeltaE [mcParticleTag]->Fill(ecluster,eprim-ecluster);
        fhMCDeltaPt[mcParticleTag]->Fill(ptcluster,ptprim-ptcluster);
      }
    }//Histograms with MC
    
  }// aod loop
  
}


//__________________________________________________________________
void AliAnaPhoton::Print(const Option_t * opt) const
{
  //Print some relevant parameters set for the analysis
  
  if(! opt)
    return;
  
  printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
  AliAnaCaloTrackCorrBaseClass::Print(" ");
  
  printf("Calorimeter            =     %s\n", GetCalorimeterString().Data()) ;
  printf("Min Distance to Bad Channel   = %2.1f\n",fMinDist);
  printf("Min Distance to Bad Channel 2 = %2.1f\n",fMinDist2);
  printf("Min Distance to Bad Channel 3 = %2.1f\n",fMinDist3);
  printf("Reject clusters with a track matched = %d\n",fRejectTrackMatch);
  printf("Time Cut: %3.1f < TOF  < %3.1f\n", fTimeCutMin, fTimeCutMax);
  printf("Number of cells in cluster is        > %d \n", fNCellsCut);
  printf("    \n") ;
	
}
 AliAnaPhoton.cxx:1
 AliAnaPhoton.cxx:2
 AliAnaPhoton.cxx:3
 AliAnaPhoton.cxx:4
 AliAnaPhoton.cxx:5
 AliAnaPhoton.cxx:6
 AliAnaPhoton.cxx:7
 AliAnaPhoton.cxx:8
 AliAnaPhoton.cxx:9
 AliAnaPhoton.cxx:10
 AliAnaPhoton.cxx:11
 AliAnaPhoton.cxx:12
 AliAnaPhoton.cxx:13
 AliAnaPhoton.cxx:14
 AliAnaPhoton.cxx:15
 AliAnaPhoton.cxx:16
 AliAnaPhoton.cxx:17
 AliAnaPhoton.cxx:18
 AliAnaPhoton.cxx:19
 AliAnaPhoton.cxx:20
 AliAnaPhoton.cxx:21
 AliAnaPhoton.cxx:22
 AliAnaPhoton.cxx:23
 AliAnaPhoton.cxx:24
 AliAnaPhoton.cxx:25
 AliAnaPhoton.cxx:26
 AliAnaPhoton.cxx:27
 AliAnaPhoton.cxx:28
 AliAnaPhoton.cxx:29
 AliAnaPhoton.cxx:30
 AliAnaPhoton.cxx:31
 AliAnaPhoton.cxx:32
 AliAnaPhoton.cxx:33
 AliAnaPhoton.cxx:34
 AliAnaPhoton.cxx:35
 AliAnaPhoton.cxx:36
 AliAnaPhoton.cxx:37
 AliAnaPhoton.cxx:38
 AliAnaPhoton.cxx:39
 AliAnaPhoton.cxx:40
 AliAnaPhoton.cxx:41
 AliAnaPhoton.cxx:42
 AliAnaPhoton.cxx:43
 AliAnaPhoton.cxx:44
 AliAnaPhoton.cxx:45
 AliAnaPhoton.cxx:46
 AliAnaPhoton.cxx:47
 AliAnaPhoton.cxx:48
 AliAnaPhoton.cxx:49
 AliAnaPhoton.cxx:50
 AliAnaPhoton.cxx:51
 AliAnaPhoton.cxx:52
 AliAnaPhoton.cxx:53
 AliAnaPhoton.cxx:54
 AliAnaPhoton.cxx:55
 AliAnaPhoton.cxx:56
 AliAnaPhoton.cxx:57
 AliAnaPhoton.cxx:58
 AliAnaPhoton.cxx:59
 AliAnaPhoton.cxx:60
 AliAnaPhoton.cxx:61
 AliAnaPhoton.cxx:62
 AliAnaPhoton.cxx:63
 AliAnaPhoton.cxx:64
 AliAnaPhoton.cxx:65
 AliAnaPhoton.cxx:66
 AliAnaPhoton.cxx:67
 AliAnaPhoton.cxx:68
 AliAnaPhoton.cxx:69
 AliAnaPhoton.cxx:70
 AliAnaPhoton.cxx:71
 AliAnaPhoton.cxx:72
 AliAnaPhoton.cxx:73
 AliAnaPhoton.cxx:74
 AliAnaPhoton.cxx:75
 AliAnaPhoton.cxx:76
 AliAnaPhoton.cxx:77
 AliAnaPhoton.cxx:78
 AliAnaPhoton.cxx:79
 AliAnaPhoton.cxx:80
 AliAnaPhoton.cxx:81
 AliAnaPhoton.cxx:82
 AliAnaPhoton.cxx:83
 AliAnaPhoton.cxx:84
 AliAnaPhoton.cxx:85
 AliAnaPhoton.cxx:86
 AliAnaPhoton.cxx:87
 AliAnaPhoton.cxx:88
 AliAnaPhoton.cxx:89
 AliAnaPhoton.cxx:90
 AliAnaPhoton.cxx:91
 AliAnaPhoton.cxx:92
 AliAnaPhoton.cxx:93
 AliAnaPhoton.cxx:94
 AliAnaPhoton.cxx:95
 AliAnaPhoton.cxx:96
 AliAnaPhoton.cxx:97
 AliAnaPhoton.cxx:98
 AliAnaPhoton.cxx:99
 AliAnaPhoton.cxx:100
 AliAnaPhoton.cxx:101
 AliAnaPhoton.cxx:102
 AliAnaPhoton.cxx:103
 AliAnaPhoton.cxx:104
 AliAnaPhoton.cxx:105
 AliAnaPhoton.cxx:106
 AliAnaPhoton.cxx:107
 AliAnaPhoton.cxx:108
 AliAnaPhoton.cxx:109
 AliAnaPhoton.cxx:110
 AliAnaPhoton.cxx:111
 AliAnaPhoton.cxx:112
 AliAnaPhoton.cxx:113
 AliAnaPhoton.cxx:114
 AliAnaPhoton.cxx:115
 AliAnaPhoton.cxx:116
 AliAnaPhoton.cxx:117
 AliAnaPhoton.cxx:118
 AliAnaPhoton.cxx:119
 AliAnaPhoton.cxx:120
 AliAnaPhoton.cxx:121
 AliAnaPhoton.cxx:122
 AliAnaPhoton.cxx:123
 AliAnaPhoton.cxx:124
 AliAnaPhoton.cxx:125
 AliAnaPhoton.cxx:126
 AliAnaPhoton.cxx:127
 AliAnaPhoton.cxx:128
 AliAnaPhoton.cxx:129
 AliAnaPhoton.cxx:130
 AliAnaPhoton.cxx:131
 AliAnaPhoton.cxx:132
 AliAnaPhoton.cxx:133
 AliAnaPhoton.cxx:134
 AliAnaPhoton.cxx:135
 AliAnaPhoton.cxx:136
 AliAnaPhoton.cxx:137
 AliAnaPhoton.cxx:138
 AliAnaPhoton.cxx:139
 AliAnaPhoton.cxx:140
 AliAnaPhoton.cxx:141
 AliAnaPhoton.cxx:142
 AliAnaPhoton.cxx:143
 AliAnaPhoton.cxx:144
 AliAnaPhoton.cxx:145
 AliAnaPhoton.cxx:146
 AliAnaPhoton.cxx:147
 AliAnaPhoton.cxx:148
 AliAnaPhoton.cxx:149
 AliAnaPhoton.cxx:150
 AliAnaPhoton.cxx:151
 AliAnaPhoton.cxx:152
 AliAnaPhoton.cxx:153
 AliAnaPhoton.cxx:154
 AliAnaPhoton.cxx:155
 AliAnaPhoton.cxx:156
 AliAnaPhoton.cxx:157
 AliAnaPhoton.cxx:158
 AliAnaPhoton.cxx:159
 AliAnaPhoton.cxx:160
 AliAnaPhoton.cxx:161
 AliAnaPhoton.cxx:162
 AliAnaPhoton.cxx:163
 AliAnaPhoton.cxx:164
 AliAnaPhoton.cxx:165
 AliAnaPhoton.cxx:166
 AliAnaPhoton.cxx:167
 AliAnaPhoton.cxx:168
 AliAnaPhoton.cxx:169
 AliAnaPhoton.cxx:170
 AliAnaPhoton.cxx:171
 AliAnaPhoton.cxx:172
 AliAnaPhoton.cxx:173
 AliAnaPhoton.cxx:174
 AliAnaPhoton.cxx:175
 AliAnaPhoton.cxx:176
 AliAnaPhoton.cxx:177
 AliAnaPhoton.cxx:178
 AliAnaPhoton.cxx:179
 AliAnaPhoton.cxx:180
 AliAnaPhoton.cxx:181
 AliAnaPhoton.cxx:182
 AliAnaPhoton.cxx:183
 AliAnaPhoton.cxx:184
 AliAnaPhoton.cxx:185
 AliAnaPhoton.cxx:186
 AliAnaPhoton.cxx:187
 AliAnaPhoton.cxx:188
 AliAnaPhoton.cxx:189
 AliAnaPhoton.cxx:190
 AliAnaPhoton.cxx:191
 AliAnaPhoton.cxx:192
 AliAnaPhoton.cxx:193
 AliAnaPhoton.cxx:194
 AliAnaPhoton.cxx:195
 AliAnaPhoton.cxx:196
 AliAnaPhoton.cxx:197
 AliAnaPhoton.cxx:198
 AliAnaPhoton.cxx:199
 AliAnaPhoton.cxx:200
 AliAnaPhoton.cxx:201
 AliAnaPhoton.cxx:202
 AliAnaPhoton.cxx:203
 AliAnaPhoton.cxx:204
 AliAnaPhoton.cxx:205
 AliAnaPhoton.cxx:206
 AliAnaPhoton.cxx:207
 AliAnaPhoton.cxx:208
 AliAnaPhoton.cxx:209
 AliAnaPhoton.cxx:210
 AliAnaPhoton.cxx:211
 AliAnaPhoton.cxx:212
 AliAnaPhoton.cxx:213
 AliAnaPhoton.cxx:214
 AliAnaPhoton.cxx:215
 AliAnaPhoton.cxx:216
 AliAnaPhoton.cxx:217
 AliAnaPhoton.cxx:218
 AliAnaPhoton.cxx:219
 AliAnaPhoton.cxx:220
 AliAnaPhoton.cxx:221
 AliAnaPhoton.cxx:222
 AliAnaPhoton.cxx:223
 AliAnaPhoton.cxx:224
 AliAnaPhoton.cxx:225
 AliAnaPhoton.cxx:226
 AliAnaPhoton.cxx:227
 AliAnaPhoton.cxx:228
 AliAnaPhoton.cxx:229
 AliAnaPhoton.cxx:230
 AliAnaPhoton.cxx:231
 AliAnaPhoton.cxx:232
 AliAnaPhoton.cxx:233
 AliAnaPhoton.cxx:234
 AliAnaPhoton.cxx:235
 AliAnaPhoton.cxx:236
 AliAnaPhoton.cxx:237
 AliAnaPhoton.cxx:238
 AliAnaPhoton.cxx:239
 AliAnaPhoton.cxx:240
 AliAnaPhoton.cxx:241
 AliAnaPhoton.cxx:242
 AliAnaPhoton.cxx:243
 AliAnaPhoton.cxx:244
 AliAnaPhoton.cxx:245
 AliAnaPhoton.cxx:246
 AliAnaPhoton.cxx:247
 AliAnaPhoton.cxx:248
 AliAnaPhoton.cxx:249
 AliAnaPhoton.cxx:250
 AliAnaPhoton.cxx:251
 AliAnaPhoton.cxx:252
 AliAnaPhoton.cxx:253
 AliAnaPhoton.cxx:254
 AliAnaPhoton.cxx:255
 AliAnaPhoton.cxx:256
 AliAnaPhoton.cxx:257
 AliAnaPhoton.cxx:258
 AliAnaPhoton.cxx:259
 AliAnaPhoton.cxx:260
 AliAnaPhoton.cxx:261
 AliAnaPhoton.cxx:262
 AliAnaPhoton.cxx:263
 AliAnaPhoton.cxx:264
 AliAnaPhoton.cxx:265
 AliAnaPhoton.cxx:266
 AliAnaPhoton.cxx:267
 AliAnaPhoton.cxx:268
 AliAnaPhoton.cxx:269
 AliAnaPhoton.cxx:270
 AliAnaPhoton.cxx:271
 AliAnaPhoton.cxx:272
 AliAnaPhoton.cxx:273
 AliAnaPhoton.cxx:274
 AliAnaPhoton.cxx:275
 AliAnaPhoton.cxx:276
 AliAnaPhoton.cxx:277
 AliAnaPhoton.cxx:278
 AliAnaPhoton.cxx:279
 AliAnaPhoton.cxx:280
 AliAnaPhoton.cxx:281
 AliAnaPhoton.cxx:282
 AliAnaPhoton.cxx:283
 AliAnaPhoton.cxx:284
 AliAnaPhoton.cxx:285
 AliAnaPhoton.cxx:286
 AliAnaPhoton.cxx:287
 AliAnaPhoton.cxx:288
 AliAnaPhoton.cxx:289
 AliAnaPhoton.cxx:290
 AliAnaPhoton.cxx:291
 AliAnaPhoton.cxx:292
 AliAnaPhoton.cxx:293
 AliAnaPhoton.cxx:294
 AliAnaPhoton.cxx:295
 AliAnaPhoton.cxx:296
 AliAnaPhoton.cxx:297
 AliAnaPhoton.cxx:298
 AliAnaPhoton.cxx:299
 AliAnaPhoton.cxx:300
 AliAnaPhoton.cxx:301
 AliAnaPhoton.cxx:302
 AliAnaPhoton.cxx:303
 AliAnaPhoton.cxx:304
 AliAnaPhoton.cxx:305
 AliAnaPhoton.cxx:306
 AliAnaPhoton.cxx:307
 AliAnaPhoton.cxx:308
 AliAnaPhoton.cxx:309
 AliAnaPhoton.cxx:310
 AliAnaPhoton.cxx:311
 AliAnaPhoton.cxx:312
 AliAnaPhoton.cxx:313
 AliAnaPhoton.cxx:314
 AliAnaPhoton.cxx:315
 AliAnaPhoton.cxx:316
 AliAnaPhoton.cxx:317
 AliAnaPhoton.cxx:318
 AliAnaPhoton.cxx:319
 AliAnaPhoton.cxx:320
 AliAnaPhoton.cxx:321
 AliAnaPhoton.cxx:322
 AliAnaPhoton.cxx:323
 AliAnaPhoton.cxx:324
 AliAnaPhoton.cxx:325
 AliAnaPhoton.cxx:326
 AliAnaPhoton.cxx:327
 AliAnaPhoton.cxx:328
 AliAnaPhoton.cxx:329
 AliAnaPhoton.cxx:330
 AliAnaPhoton.cxx:331
 AliAnaPhoton.cxx:332
 AliAnaPhoton.cxx:333
 AliAnaPhoton.cxx:334
 AliAnaPhoton.cxx:335
 AliAnaPhoton.cxx:336
 AliAnaPhoton.cxx:337
 AliAnaPhoton.cxx:338
 AliAnaPhoton.cxx:339
 AliAnaPhoton.cxx:340
 AliAnaPhoton.cxx:341
 AliAnaPhoton.cxx:342
 AliAnaPhoton.cxx:343
 AliAnaPhoton.cxx:344
 AliAnaPhoton.cxx:345
 AliAnaPhoton.cxx:346
 AliAnaPhoton.cxx:347
 AliAnaPhoton.cxx:348
 AliAnaPhoton.cxx:349
 AliAnaPhoton.cxx:350
 AliAnaPhoton.cxx:351
 AliAnaPhoton.cxx:352
 AliAnaPhoton.cxx:353
 AliAnaPhoton.cxx:354
 AliAnaPhoton.cxx:355
 AliAnaPhoton.cxx:356
 AliAnaPhoton.cxx:357
 AliAnaPhoton.cxx:358
 AliAnaPhoton.cxx:359
 AliAnaPhoton.cxx:360
 AliAnaPhoton.cxx:361
 AliAnaPhoton.cxx:362
 AliAnaPhoton.cxx:363
 AliAnaPhoton.cxx:364
 AliAnaPhoton.cxx:365
 AliAnaPhoton.cxx:366
 AliAnaPhoton.cxx:367
 AliAnaPhoton.cxx:368
 AliAnaPhoton.cxx:369
 AliAnaPhoton.cxx:370
 AliAnaPhoton.cxx:371
 AliAnaPhoton.cxx:372
 AliAnaPhoton.cxx:373
 AliAnaPhoton.cxx:374
 AliAnaPhoton.cxx:375
 AliAnaPhoton.cxx:376
 AliAnaPhoton.cxx:377
 AliAnaPhoton.cxx:378
 AliAnaPhoton.cxx:379
 AliAnaPhoton.cxx:380
 AliAnaPhoton.cxx:381
 AliAnaPhoton.cxx:382
 AliAnaPhoton.cxx:383
 AliAnaPhoton.cxx:384
 AliAnaPhoton.cxx:385
 AliAnaPhoton.cxx:386
 AliAnaPhoton.cxx:387
 AliAnaPhoton.cxx:388
 AliAnaPhoton.cxx:389
 AliAnaPhoton.cxx:390
 AliAnaPhoton.cxx:391
 AliAnaPhoton.cxx:392
 AliAnaPhoton.cxx:393
 AliAnaPhoton.cxx:394
 AliAnaPhoton.cxx:395
 AliAnaPhoton.cxx:396
 AliAnaPhoton.cxx:397
 AliAnaPhoton.cxx:398
 AliAnaPhoton.cxx:399
 AliAnaPhoton.cxx:400
 AliAnaPhoton.cxx:401
 AliAnaPhoton.cxx:402
 AliAnaPhoton.cxx:403
 AliAnaPhoton.cxx:404
 AliAnaPhoton.cxx:405
 AliAnaPhoton.cxx:406
 AliAnaPhoton.cxx:407
 AliAnaPhoton.cxx:408
 AliAnaPhoton.cxx:409
 AliAnaPhoton.cxx:410
 AliAnaPhoton.cxx:411
 AliAnaPhoton.cxx:412
 AliAnaPhoton.cxx:413
 AliAnaPhoton.cxx:414
 AliAnaPhoton.cxx:415
 AliAnaPhoton.cxx:416
 AliAnaPhoton.cxx:417
 AliAnaPhoton.cxx:418
 AliAnaPhoton.cxx:419
 AliAnaPhoton.cxx:420
 AliAnaPhoton.cxx:421
 AliAnaPhoton.cxx:422
 AliAnaPhoton.cxx:423
 AliAnaPhoton.cxx:424
 AliAnaPhoton.cxx:425
 AliAnaPhoton.cxx:426
 AliAnaPhoton.cxx:427
 AliAnaPhoton.cxx:428
 AliAnaPhoton.cxx:429
 AliAnaPhoton.cxx:430
 AliAnaPhoton.cxx:431
 AliAnaPhoton.cxx:432
 AliAnaPhoton.cxx:433
 AliAnaPhoton.cxx:434
 AliAnaPhoton.cxx:435
 AliAnaPhoton.cxx:436
 AliAnaPhoton.cxx:437
 AliAnaPhoton.cxx:438
 AliAnaPhoton.cxx:439
 AliAnaPhoton.cxx:440
 AliAnaPhoton.cxx:441
 AliAnaPhoton.cxx:442
 AliAnaPhoton.cxx:443
 AliAnaPhoton.cxx:444
 AliAnaPhoton.cxx:445
 AliAnaPhoton.cxx:446
 AliAnaPhoton.cxx:447
 AliAnaPhoton.cxx:448
 AliAnaPhoton.cxx:449
 AliAnaPhoton.cxx:450
 AliAnaPhoton.cxx:451
 AliAnaPhoton.cxx:452
 AliAnaPhoton.cxx:453
 AliAnaPhoton.cxx:454
 AliAnaPhoton.cxx:455
 AliAnaPhoton.cxx:456
 AliAnaPhoton.cxx:457
 AliAnaPhoton.cxx:458
 AliAnaPhoton.cxx:459
 AliAnaPhoton.cxx:460
 AliAnaPhoton.cxx:461
 AliAnaPhoton.cxx:462
 AliAnaPhoton.cxx:463
 AliAnaPhoton.cxx:464
 AliAnaPhoton.cxx:465
 AliAnaPhoton.cxx:466
 AliAnaPhoton.cxx:467
 AliAnaPhoton.cxx:468
 AliAnaPhoton.cxx:469
 AliAnaPhoton.cxx:470
 AliAnaPhoton.cxx:471
 AliAnaPhoton.cxx:472
 AliAnaPhoton.cxx:473
 AliAnaPhoton.cxx:474
 AliAnaPhoton.cxx:475
 AliAnaPhoton.cxx:476
 AliAnaPhoton.cxx:477
 AliAnaPhoton.cxx:478
 AliAnaPhoton.cxx:479
 AliAnaPhoton.cxx:480
 AliAnaPhoton.cxx:481
 AliAnaPhoton.cxx:482
 AliAnaPhoton.cxx:483
 AliAnaPhoton.cxx:484
 AliAnaPhoton.cxx:485
 AliAnaPhoton.cxx:486
 AliAnaPhoton.cxx:487
 AliAnaPhoton.cxx:488
 AliAnaPhoton.cxx:489
 AliAnaPhoton.cxx:490
 AliAnaPhoton.cxx:491
 AliAnaPhoton.cxx:492
 AliAnaPhoton.cxx:493
 AliAnaPhoton.cxx:494
 AliAnaPhoton.cxx:495
 AliAnaPhoton.cxx:496
 AliAnaPhoton.cxx:497
 AliAnaPhoton.cxx:498
 AliAnaPhoton.cxx:499
 AliAnaPhoton.cxx:500
 AliAnaPhoton.cxx:501
 AliAnaPhoton.cxx:502
 AliAnaPhoton.cxx:503
 AliAnaPhoton.cxx:504
 AliAnaPhoton.cxx:505
 AliAnaPhoton.cxx:506
 AliAnaPhoton.cxx:507
 AliAnaPhoton.cxx:508
 AliAnaPhoton.cxx:509
 AliAnaPhoton.cxx:510
 AliAnaPhoton.cxx:511
 AliAnaPhoton.cxx:512
 AliAnaPhoton.cxx:513
 AliAnaPhoton.cxx:514
 AliAnaPhoton.cxx:515
 AliAnaPhoton.cxx:516
 AliAnaPhoton.cxx:517
 AliAnaPhoton.cxx:518
 AliAnaPhoton.cxx:519
 AliAnaPhoton.cxx:520
 AliAnaPhoton.cxx:521
 AliAnaPhoton.cxx:522
 AliAnaPhoton.cxx:523
 AliAnaPhoton.cxx:524
 AliAnaPhoton.cxx:525
 AliAnaPhoton.cxx:526
 AliAnaPhoton.cxx:527
 AliAnaPhoton.cxx:528
 AliAnaPhoton.cxx:529
 AliAnaPhoton.cxx:530
 AliAnaPhoton.cxx:531
 AliAnaPhoton.cxx:532
 AliAnaPhoton.cxx:533
 AliAnaPhoton.cxx:534
 AliAnaPhoton.cxx:535
 AliAnaPhoton.cxx:536
 AliAnaPhoton.cxx:537
 AliAnaPhoton.cxx:538
 AliAnaPhoton.cxx:539
 AliAnaPhoton.cxx:540
 AliAnaPhoton.cxx:541
 AliAnaPhoton.cxx:542
 AliAnaPhoton.cxx:543
 AliAnaPhoton.cxx:544
 AliAnaPhoton.cxx:545
 AliAnaPhoton.cxx:546
 AliAnaPhoton.cxx:547
 AliAnaPhoton.cxx:548
 AliAnaPhoton.cxx:549
 AliAnaPhoton.cxx:550
 AliAnaPhoton.cxx:551
 AliAnaPhoton.cxx:552
 AliAnaPhoton.cxx:553
 AliAnaPhoton.cxx:554
 AliAnaPhoton.cxx:555
 AliAnaPhoton.cxx:556
 AliAnaPhoton.cxx:557
 AliAnaPhoton.cxx:558
 AliAnaPhoton.cxx:559
 AliAnaPhoton.cxx:560
 AliAnaPhoton.cxx:561
 AliAnaPhoton.cxx:562
 AliAnaPhoton.cxx:563
 AliAnaPhoton.cxx:564
 AliAnaPhoton.cxx:565
 AliAnaPhoton.cxx:566
 AliAnaPhoton.cxx:567
 AliAnaPhoton.cxx:568
 AliAnaPhoton.cxx:569
 AliAnaPhoton.cxx:570
 AliAnaPhoton.cxx:571
 AliAnaPhoton.cxx:572
 AliAnaPhoton.cxx:573
 AliAnaPhoton.cxx:574
 AliAnaPhoton.cxx:575
 AliAnaPhoton.cxx:576
 AliAnaPhoton.cxx:577
 AliAnaPhoton.cxx:578
 AliAnaPhoton.cxx:579
 AliAnaPhoton.cxx:580
 AliAnaPhoton.cxx:581
 AliAnaPhoton.cxx:582
 AliAnaPhoton.cxx:583
 AliAnaPhoton.cxx:584
 AliAnaPhoton.cxx:585
 AliAnaPhoton.cxx:586
 AliAnaPhoton.cxx:587
 AliAnaPhoton.cxx:588
 AliAnaPhoton.cxx:589
 AliAnaPhoton.cxx:590
 AliAnaPhoton.cxx:591
 AliAnaPhoton.cxx:592
 AliAnaPhoton.cxx:593
 AliAnaPhoton.cxx:594
 AliAnaPhoton.cxx:595
 AliAnaPhoton.cxx:596
 AliAnaPhoton.cxx:597
 AliAnaPhoton.cxx:598
 AliAnaPhoton.cxx:599
 AliAnaPhoton.cxx:600
 AliAnaPhoton.cxx:601
 AliAnaPhoton.cxx:602
 AliAnaPhoton.cxx:603
 AliAnaPhoton.cxx:604
 AliAnaPhoton.cxx:605
 AliAnaPhoton.cxx:606
 AliAnaPhoton.cxx:607
 AliAnaPhoton.cxx:608
 AliAnaPhoton.cxx:609
 AliAnaPhoton.cxx:610
 AliAnaPhoton.cxx:611
 AliAnaPhoton.cxx:612
 AliAnaPhoton.cxx:613
 AliAnaPhoton.cxx:614
 AliAnaPhoton.cxx:615
 AliAnaPhoton.cxx:616
 AliAnaPhoton.cxx:617
 AliAnaPhoton.cxx:618
 AliAnaPhoton.cxx:619
 AliAnaPhoton.cxx:620
 AliAnaPhoton.cxx:621
 AliAnaPhoton.cxx:622
 AliAnaPhoton.cxx:623
 AliAnaPhoton.cxx:624
 AliAnaPhoton.cxx:625
 AliAnaPhoton.cxx:626
 AliAnaPhoton.cxx:627
 AliAnaPhoton.cxx:628
 AliAnaPhoton.cxx:629
 AliAnaPhoton.cxx:630
 AliAnaPhoton.cxx:631
 AliAnaPhoton.cxx:632
 AliAnaPhoton.cxx:633
 AliAnaPhoton.cxx:634
 AliAnaPhoton.cxx:635
 AliAnaPhoton.cxx:636
 AliAnaPhoton.cxx:637
 AliAnaPhoton.cxx:638
 AliAnaPhoton.cxx:639
 AliAnaPhoton.cxx:640
 AliAnaPhoton.cxx:641
 AliAnaPhoton.cxx:642
 AliAnaPhoton.cxx:643
 AliAnaPhoton.cxx:644
 AliAnaPhoton.cxx:645
 AliAnaPhoton.cxx:646
 AliAnaPhoton.cxx:647
 AliAnaPhoton.cxx:648
 AliAnaPhoton.cxx:649
 AliAnaPhoton.cxx:650
 AliAnaPhoton.cxx:651
 AliAnaPhoton.cxx:652
 AliAnaPhoton.cxx:653
 AliAnaPhoton.cxx:654
 AliAnaPhoton.cxx:655
 AliAnaPhoton.cxx:656
 AliAnaPhoton.cxx:657
 AliAnaPhoton.cxx:658
 AliAnaPhoton.cxx:659
 AliAnaPhoton.cxx:660
 AliAnaPhoton.cxx:661
 AliAnaPhoton.cxx:662
 AliAnaPhoton.cxx:663
 AliAnaPhoton.cxx:664
 AliAnaPhoton.cxx:665
 AliAnaPhoton.cxx:666
 AliAnaPhoton.cxx:667
 AliAnaPhoton.cxx:668
 AliAnaPhoton.cxx:669
 AliAnaPhoton.cxx:670
 AliAnaPhoton.cxx:671
 AliAnaPhoton.cxx:672
 AliAnaPhoton.cxx:673
 AliAnaPhoton.cxx:674
 AliAnaPhoton.cxx:675
 AliAnaPhoton.cxx:676
 AliAnaPhoton.cxx:677
 AliAnaPhoton.cxx:678
 AliAnaPhoton.cxx:679
 AliAnaPhoton.cxx:680
 AliAnaPhoton.cxx:681
 AliAnaPhoton.cxx:682
 AliAnaPhoton.cxx:683
 AliAnaPhoton.cxx:684
 AliAnaPhoton.cxx:685
 AliAnaPhoton.cxx:686
 AliAnaPhoton.cxx:687
 AliAnaPhoton.cxx:688
 AliAnaPhoton.cxx:689
 AliAnaPhoton.cxx:690
 AliAnaPhoton.cxx:691
 AliAnaPhoton.cxx:692
 AliAnaPhoton.cxx:693
 AliAnaPhoton.cxx:694
 AliAnaPhoton.cxx:695
 AliAnaPhoton.cxx:696
 AliAnaPhoton.cxx:697
 AliAnaPhoton.cxx:698
 AliAnaPhoton.cxx:699
 AliAnaPhoton.cxx:700
 AliAnaPhoton.cxx:701
 AliAnaPhoton.cxx:702
 AliAnaPhoton.cxx:703
 AliAnaPhoton.cxx:704
 AliAnaPhoton.cxx:705
 AliAnaPhoton.cxx:706
 AliAnaPhoton.cxx:707
 AliAnaPhoton.cxx:708
 AliAnaPhoton.cxx:709
 AliAnaPhoton.cxx:710
 AliAnaPhoton.cxx:711
 AliAnaPhoton.cxx:712
 AliAnaPhoton.cxx:713
 AliAnaPhoton.cxx:714
 AliAnaPhoton.cxx:715
 AliAnaPhoton.cxx:716
 AliAnaPhoton.cxx:717
 AliAnaPhoton.cxx:718
 AliAnaPhoton.cxx:719
 AliAnaPhoton.cxx:720
 AliAnaPhoton.cxx:721
 AliAnaPhoton.cxx:722
 AliAnaPhoton.cxx:723
 AliAnaPhoton.cxx:724
 AliAnaPhoton.cxx:725
 AliAnaPhoton.cxx:726
 AliAnaPhoton.cxx:727
 AliAnaPhoton.cxx:728
 AliAnaPhoton.cxx:729
 AliAnaPhoton.cxx:730
 AliAnaPhoton.cxx:731
 AliAnaPhoton.cxx:732
 AliAnaPhoton.cxx:733
 AliAnaPhoton.cxx:734
 AliAnaPhoton.cxx:735
 AliAnaPhoton.cxx:736
 AliAnaPhoton.cxx:737
 AliAnaPhoton.cxx:738
 AliAnaPhoton.cxx:739
 AliAnaPhoton.cxx:740
 AliAnaPhoton.cxx:741
 AliAnaPhoton.cxx:742
 AliAnaPhoton.cxx:743
 AliAnaPhoton.cxx:744
 AliAnaPhoton.cxx:745
 AliAnaPhoton.cxx:746
 AliAnaPhoton.cxx:747
 AliAnaPhoton.cxx:748
 AliAnaPhoton.cxx:749
 AliAnaPhoton.cxx:750
 AliAnaPhoton.cxx:751
 AliAnaPhoton.cxx:752
 AliAnaPhoton.cxx:753
 AliAnaPhoton.cxx:754
 AliAnaPhoton.cxx:755
 AliAnaPhoton.cxx:756
 AliAnaPhoton.cxx:757
 AliAnaPhoton.cxx:758
 AliAnaPhoton.cxx:759
 AliAnaPhoton.cxx:760
 AliAnaPhoton.cxx:761
 AliAnaPhoton.cxx:762
 AliAnaPhoton.cxx:763
 AliAnaPhoton.cxx:764
 AliAnaPhoton.cxx:765
 AliAnaPhoton.cxx:766
 AliAnaPhoton.cxx:767
 AliAnaPhoton.cxx:768
 AliAnaPhoton.cxx:769
 AliAnaPhoton.cxx:770
 AliAnaPhoton.cxx:771
 AliAnaPhoton.cxx:772
 AliAnaPhoton.cxx:773
 AliAnaPhoton.cxx:774
 AliAnaPhoton.cxx:775
 AliAnaPhoton.cxx:776
 AliAnaPhoton.cxx:777
 AliAnaPhoton.cxx:778
 AliAnaPhoton.cxx:779
 AliAnaPhoton.cxx:780
 AliAnaPhoton.cxx:781
 AliAnaPhoton.cxx:782
 AliAnaPhoton.cxx:783
 AliAnaPhoton.cxx:784
 AliAnaPhoton.cxx:785
 AliAnaPhoton.cxx:786
 AliAnaPhoton.cxx:787
 AliAnaPhoton.cxx:788
 AliAnaPhoton.cxx:789
 AliAnaPhoton.cxx:790
 AliAnaPhoton.cxx:791
 AliAnaPhoton.cxx:792
 AliAnaPhoton.cxx:793
 AliAnaPhoton.cxx:794
 AliAnaPhoton.cxx:795
 AliAnaPhoton.cxx:796
 AliAnaPhoton.cxx:797
 AliAnaPhoton.cxx:798
 AliAnaPhoton.cxx:799
 AliAnaPhoton.cxx:800
 AliAnaPhoton.cxx:801
 AliAnaPhoton.cxx:802
 AliAnaPhoton.cxx:803
 AliAnaPhoton.cxx:804
 AliAnaPhoton.cxx:805
 AliAnaPhoton.cxx:806
 AliAnaPhoton.cxx:807
 AliAnaPhoton.cxx:808
 AliAnaPhoton.cxx:809
 AliAnaPhoton.cxx:810
 AliAnaPhoton.cxx:811
 AliAnaPhoton.cxx:812
 AliAnaPhoton.cxx:813
 AliAnaPhoton.cxx:814
 AliAnaPhoton.cxx:815
 AliAnaPhoton.cxx:816
 AliAnaPhoton.cxx:817
 AliAnaPhoton.cxx:818
 AliAnaPhoton.cxx:819
 AliAnaPhoton.cxx:820
 AliAnaPhoton.cxx:821
 AliAnaPhoton.cxx:822
 AliAnaPhoton.cxx:823
 AliAnaPhoton.cxx:824
 AliAnaPhoton.cxx:825
 AliAnaPhoton.cxx:826
 AliAnaPhoton.cxx:827
 AliAnaPhoton.cxx:828
 AliAnaPhoton.cxx:829
 AliAnaPhoton.cxx:830
 AliAnaPhoton.cxx:831
 AliAnaPhoton.cxx:832
 AliAnaPhoton.cxx:833
 AliAnaPhoton.cxx:834
 AliAnaPhoton.cxx:835
 AliAnaPhoton.cxx:836
 AliAnaPhoton.cxx:837
 AliAnaPhoton.cxx:838
 AliAnaPhoton.cxx:839
 AliAnaPhoton.cxx:840
 AliAnaPhoton.cxx:841
 AliAnaPhoton.cxx:842
 AliAnaPhoton.cxx:843
 AliAnaPhoton.cxx:844
 AliAnaPhoton.cxx:845
 AliAnaPhoton.cxx:846
 AliAnaPhoton.cxx:847
 AliAnaPhoton.cxx:848
 AliAnaPhoton.cxx:849
 AliAnaPhoton.cxx:850
 AliAnaPhoton.cxx:851
 AliAnaPhoton.cxx:852
 AliAnaPhoton.cxx:853
 AliAnaPhoton.cxx:854
 AliAnaPhoton.cxx:855
 AliAnaPhoton.cxx:856
 AliAnaPhoton.cxx:857
 AliAnaPhoton.cxx:858
 AliAnaPhoton.cxx:859
 AliAnaPhoton.cxx:860
 AliAnaPhoton.cxx:861
 AliAnaPhoton.cxx:862
 AliAnaPhoton.cxx:863
 AliAnaPhoton.cxx:864
 AliAnaPhoton.cxx:865
 AliAnaPhoton.cxx:866
 AliAnaPhoton.cxx:867
 AliAnaPhoton.cxx:868
 AliAnaPhoton.cxx:869
 AliAnaPhoton.cxx:870
 AliAnaPhoton.cxx:871
 AliAnaPhoton.cxx:872
 AliAnaPhoton.cxx:873
 AliAnaPhoton.cxx:874
 AliAnaPhoton.cxx:875
 AliAnaPhoton.cxx:876
 AliAnaPhoton.cxx:877
 AliAnaPhoton.cxx:878
 AliAnaPhoton.cxx:879
 AliAnaPhoton.cxx:880
 AliAnaPhoton.cxx:881
 AliAnaPhoton.cxx:882
 AliAnaPhoton.cxx:883
 AliAnaPhoton.cxx:884
 AliAnaPhoton.cxx:885
 AliAnaPhoton.cxx:886
 AliAnaPhoton.cxx:887
 AliAnaPhoton.cxx:888
 AliAnaPhoton.cxx:889
 AliAnaPhoton.cxx:890
 AliAnaPhoton.cxx:891
 AliAnaPhoton.cxx:892
 AliAnaPhoton.cxx:893
 AliAnaPhoton.cxx:894
 AliAnaPhoton.cxx:895
 AliAnaPhoton.cxx:896
 AliAnaPhoton.cxx:897
 AliAnaPhoton.cxx:898
 AliAnaPhoton.cxx:899
 AliAnaPhoton.cxx:900
 AliAnaPhoton.cxx:901
 AliAnaPhoton.cxx:902
 AliAnaPhoton.cxx:903
 AliAnaPhoton.cxx:904
 AliAnaPhoton.cxx:905
 AliAnaPhoton.cxx:906
 AliAnaPhoton.cxx:907
 AliAnaPhoton.cxx:908
 AliAnaPhoton.cxx:909
 AliAnaPhoton.cxx:910
 AliAnaPhoton.cxx:911
 AliAnaPhoton.cxx:912
 AliAnaPhoton.cxx:913
 AliAnaPhoton.cxx:914
 AliAnaPhoton.cxx:915
 AliAnaPhoton.cxx:916
 AliAnaPhoton.cxx:917
 AliAnaPhoton.cxx:918
 AliAnaPhoton.cxx:919
 AliAnaPhoton.cxx:920
 AliAnaPhoton.cxx:921
 AliAnaPhoton.cxx:922
 AliAnaPhoton.cxx:923
 AliAnaPhoton.cxx:924
 AliAnaPhoton.cxx:925
 AliAnaPhoton.cxx:926
 AliAnaPhoton.cxx:927
 AliAnaPhoton.cxx:928
 AliAnaPhoton.cxx:929
 AliAnaPhoton.cxx:930
 AliAnaPhoton.cxx:931
 AliAnaPhoton.cxx:932
 AliAnaPhoton.cxx:933
 AliAnaPhoton.cxx:934
 AliAnaPhoton.cxx:935
 AliAnaPhoton.cxx:936
 AliAnaPhoton.cxx:937
 AliAnaPhoton.cxx:938
 AliAnaPhoton.cxx:939
 AliAnaPhoton.cxx:940
 AliAnaPhoton.cxx:941
 AliAnaPhoton.cxx:942
 AliAnaPhoton.cxx:943
 AliAnaPhoton.cxx:944
 AliAnaPhoton.cxx:945
 AliAnaPhoton.cxx:946
 AliAnaPhoton.cxx:947
 AliAnaPhoton.cxx:948
 AliAnaPhoton.cxx:949
 AliAnaPhoton.cxx:950
 AliAnaPhoton.cxx:951
 AliAnaPhoton.cxx:952
 AliAnaPhoton.cxx:953
 AliAnaPhoton.cxx:954
 AliAnaPhoton.cxx:955
 AliAnaPhoton.cxx:956
 AliAnaPhoton.cxx:957
 AliAnaPhoton.cxx:958
 AliAnaPhoton.cxx:959
 AliAnaPhoton.cxx:960
 AliAnaPhoton.cxx:961
 AliAnaPhoton.cxx:962
 AliAnaPhoton.cxx:963
 AliAnaPhoton.cxx:964
 AliAnaPhoton.cxx:965
 AliAnaPhoton.cxx:966
 AliAnaPhoton.cxx:967
 AliAnaPhoton.cxx:968
 AliAnaPhoton.cxx:969
 AliAnaPhoton.cxx:970
 AliAnaPhoton.cxx:971
 AliAnaPhoton.cxx:972
 AliAnaPhoton.cxx:973
 AliAnaPhoton.cxx:974
 AliAnaPhoton.cxx:975
 AliAnaPhoton.cxx:976
 AliAnaPhoton.cxx:977
 AliAnaPhoton.cxx:978
 AliAnaPhoton.cxx:979
 AliAnaPhoton.cxx:980
 AliAnaPhoton.cxx:981
 AliAnaPhoton.cxx:982
 AliAnaPhoton.cxx:983
 AliAnaPhoton.cxx:984
 AliAnaPhoton.cxx:985
 AliAnaPhoton.cxx:986
 AliAnaPhoton.cxx:987
 AliAnaPhoton.cxx:988
 AliAnaPhoton.cxx:989
 AliAnaPhoton.cxx:990
 AliAnaPhoton.cxx:991
 AliAnaPhoton.cxx:992
 AliAnaPhoton.cxx:993
 AliAnaPhoton.cxx:994
 AliAnaPhoton.cxx:995
 AliAnaPhoton.cxx:996
 AliAnaPhoton.cxx:997
 AliAnaPhoton.cxx:998
 AliAnaPhoton.cxx:999
 AliAnaPhoton.cxx:1000
 AliAnaPhoton.cxx:1001
 AliAnaPhoton.cxx:1002
 AliAnaPhoton.cxx:1003
 AliAnaPhoton.cxx:1004
 AliAnaPhoton.cxx:1005
 AliAnaPhoton.cxx:1006
 AliAnaPhoton.cxx:1007
 AliAnaPhoton.cxx:1008
 AliAnaPhoton.cxx:1009
 AliAnaPhoton.cxx:1010
 AliAnaPhoton.cxx:1011
 AliAnaPhoton.cxx:1012
 AliAnaPhoton.cxx:1013
 AliAnaPhoton.cxx:1014
 AliAnaPhoton.cxx:1015
 AliAnaPhoton.cxx:1016
 AliAnaPhoton.cxx:1017
 AliAnaPhoton.cxx:1018
 AliAnaPhoton.cxx:1019
 AliAnaPhoton.cxx:1020
 AliAnaPhoton.cxx:1021
 AliAnaPhoton.cxx:1022
 AliAnaPhoton.cxx:1023
 AliAnaPhoton.cxx:1024
 AliAnaPhoton.cxx:1025
 AliAnaPhoton.cxx:1026
 AliAnaPhoton.cxx:1027
 AliAnaPhoton.cxx:1028
 AliAnaPhoton.cxx:1029
 AliAnaPhoton.cxx:1030
 AliAnaPhoton.cxx:1031
 AliAnaPhoton.cxx:1032
 AliAnaPhoton.cxx:1033
 AliAnaPhoton.cxx:1034
 AliAnaPhoton.cxx:1035
 AliAnaPhoton.cxx:1036
 AliAnaPhoton.cxx:1037
 AliAnaPhoton.cxx:1038
 AliAnaPhoton.cxx:1039
 AliAnaPhoton.cxx:1040
 AliAnaPhoton.cxx:1041
 AliAnaPhoton.cxx:1042
 AliAnaPhoton.cxx:1043
 AliAnaPhoton.cxx:1044
 AliAnaPhoton.cxx:1045
 AliAnaPhoton.cxx:1046
 AliAnaPhoton.cxx:1047
 AliAnaPhoton.cxx:1048
 AliAnaPhoton.cxx:1049
 AliAnaPhoton.cxx:1050
 AliAnaPhoton.cxx:1051
 AliAnaPhoton.cxx:1052
 AliAnaPhoton.cxx:1053
 AliAnaPhoton.cxx:1054
 AliAnaPhoton.cxx:1055
 AliAnaPhoton.cxx:1056
 AliAnaPhoton.cxx:1057
 AliAnaPhoton.cxx:1058
 AliAnaPhoton.cxx:1059
 AliAnaPhoton.cxx:1060
 AliAnaPhoton.cxx:1061
 AliAnaPhoton.cxx:1062
 AliAnaPhoton.cxx:1063
 AliAnaPhoton.cxx:1064
 AliAnaPhoton.cxx:1065
 AliAnaPhoton.cxx:1066
 AliAnaPhoton.cxx:1067
 AliAnaPhoton.cxx:1068
 AliAnaPhoton.cxx:1069
 AliAnaPhoton.cxx:1070
 AliAnaPhoton.cxx:1071
 AliAnaPhoton.cxx:1072
 AliAnaPhoton.cxx:1073
 AliAnaPhoton.cxx:1074
 AliAnaPhoton.cxx:1075
 AliAnaPhoton.cxx:1076
 AliAnaPhoton.cxx:1077
 AliAnaPhoton.cxx:1078
 AliAnaPhoton.cxx:1079
 AliAnaPhoton.cxx:1080
 AliAnaPhoton.cxx:1081
 AliAnaPhoton.cxx:1082
 AliAnaPhoton.cxx:1083
 AliAnaPhoton.cxx:1084
 AliAnaPhoton.cxx:1085
 AliAnaPhoton.cxx:1086
 AliAnaPhoton.cxx:1087
 AliAnaPhoton.cxx:1088
 AliAnaPhoton.cxx:1089
 AliAnaPhoton.cxx:1090
 AliAnaPhoton.cxx:1091
 AliAnaPhoton.cxx:1092
 AliAnaPhoton.cxx:1093
 AliAnaPhoton.cxx:1094
 AliAnaPhoton.cxx:1095
 AliAnaPhoton.cxx:1096
 AliAnaPhoton.cxx:1097
 AliAnaPhoton.cxx:1098
 AliAnaPhoton.cxx:1099
 AliAnaPhoton.cxx:1100
 AliAnaPhoton.cxx:1101
 AliAnaPhoton.cxx:1102
 AliAnaPhoton.cxx:1103
 AliAnaPhoton.cxx:1104
 AliAnaPhoton.cxx:1105
 AliAnaPhoton.cxx:1106
 AliAnaPhoton.cxx:1107
 AliAnaPhoton.cxx:1108
 AliAnaPhoton.cxx:1109
 AliAnaPhoton.cxx:1110
 AliAnaPhoton.cxx:1111
 AliAnaPhoton.cxx:1112
 AliAnaPhoton.cxx:1113
 AliAnaPhoton.cxx:1114
 AliAnaPhoton.cxx:1115
 AliAnaPhoton.cxx:1116
 AliAnaPhoton.cxx:1117
 AliAnaPhoton.cxx:1118
 AliAnaPhoton.cxx:1119
 AliAnaPhoton.cxx:1120
 AliAnaPhoton.cxx:1121
 AliAnaPhoton.cxx:1122
 AliAnaPhoton.cxx:1123
 AliAnaPhoton.cxx:1124
 AliAnaPhoton.cxx:1125
 AliAnaPhoton.cxx:1126
 AliAnaPhoton.cxx:1127
 AliAnaPhoton.cxx:1128
 AliAnaPhoton.cxx:1129
 AliAnaPhoton.cxx:1130
 AliAnaPhoton.cxx:1131
 AliAnaPhoton.cxx:1132
 AliAnaPhoton.cxx:1133
 AliAnaPhoton.cxx:1134
 AliAnaPhoton.cxx:1135
 AliAnaPhoton.cxx:1136
 AliAnaPhoton.cxx:1137
 AliAnaPhoton.cxx:1138
 AliAnaPhoton.cxx:1139
 AliAnaPhoton.cxx:1140
 AliAnaPhoton.cxx:1141
 AliAnaPhoton.cxx:1142
 AliAnaPhoton.cxx:1143
 AliAnaPhoton.cxx:1144
 AliAnaPhoton.cxx:1145
 AliAnaPhoton.cxx:1146
 AliAnaPhoton.cxx:1147
 AliAnaPhoton.cxx:1148
 AliAnaPhoton.cxx:1149
 AliAnaPhoton.cxx:1150
 AliAnaPhoton.cxx:1151
 AliAnaPhoton.cxx:1152
 AliAnaPhoton.cxx:1153
 AliAnaPhoton.cxx:1154
 AliAnaPhoton.cxx:1155
 AliAnaPhoton.cxx:1156
 AliAnaPhoton.cxx:1157
 AliAnaPhoton.cxx:1158
 AliAnaPhoton.cxx:1159
 AliAnaPhoton.cxx:1160
 AliAnaPhoton.cxx:1161
 AliAnaPhoton.cxx:1162
 AliAnaPhoton.cxx:1163
 AliAnaPhoton.cxx:1164
 AliAnaPhoton.cxx:1165
 AliAnaPhoton.cxx:1166
 AliAnaPhoton.cxx:1167
 AliAnaPhoton.cxx:1168
 AliAnaPhoton.cxx:1169
 AliAnaPhoton.cxx:1170
 AliAnaPhoton.cxx:1171
 AliAnaPhoton.cxx:1172
 AliAnaPhoton.cxx:1173
 AliAnaPhoton.cxx:1174
 AliAnaPhoton.cxx:1175
 AliAnaPhoton.cxx:1176
 AliAnaPhoton.cxx:1177
 AliAnaPhoton.cxx:1178
 AliAnaPhoton.cxx:1179
 AliAnaPhoton.cxx:1180
 AliAnaPhoton.cxx:1181
 AliAnaPhoton.cxx:1182
 AliAnaPhoton.cxx:1183
 AliAnaPhoton.cxx:1184
 AliAnaPhoton.cxx:1185
 AliAnaPhoton.cxx:1186
 AliAnaPhoton.cxx:1187
 AliAnaPhoton.cxx:1188
 AliAnaPhoton.cxx:1189
 AliAnaPhoton.cxx:1190
 AliAnaPhoton.cxx:1191
 AliAnaPhoton.cxx:1192
 AliAnaPhoton.cxx:1193
 AliAnaPhoton.cxx:1194
 AliAnaPhoton.cxx:1195
 AliAnaPhoton.cxx:1196
 AliAnaPhoton.cxx:1197
 AliAnaPhoton.cxx:1198
 AliAnaPhoton.cxx:1199
 AliAnaPhoton.cxx:1200
 AliAnaPhoton.cxx:1201
 AliAnaPhoton.cxx:1202
 AliAnaPhoton.cxx:1203
 AliAnaPhoton.cxx:1204
 AliAnaPhoton.cxx:1205
 AliAnaPhoton.cxx:1206
 AliAnaPhoton.cxx:1207
 AliAnaPhoton.cxx:1208
 AliAnaPhoton.cxx:1209
 AliAnaPhoton.cxx:1210
 AliAnaPhoton.cxx:1211
 AliAnaPhoton.cxx:1212
 AliAnaPhoton.cxx:1213
 AliAnaPhoton.cxx:1214
 AliAnaPhoton.cxx:1215
 AliAnaPhoton.cxx:1216
 AliAnaPhoton.cxx:1217
 AliAnaPhoton.cxx:1218
 AliAnaPhoton.cxx:1219
 AliAnaPhoton.cxx:1220
 AliAnaPhoton.cxx:1221
 AliAnaPhoton.cxx:1222
 AliAnaPhoton.cxx:1223
 AliAnaPhoton.cxx:1224
 AliAnaPhoton.cxx:1225
 AliAnaPhoton.cxx:1226
 AliAnaPhoton.cxx:1227
 AliAnaPhoton.cxx:1228
 AliAnaPhoton.cxx:1229
 AliAnaPhoton.cxx:1230
 AliAnaPhoton.cxx:1231
 AliAnaPhoton.cxx:1232
 AliAnaPhoton.cxx:1233
 AliAnaPhoton.cxx:1234
 AliAnaPhoton.cxx:1235
 AliAnaPhoton.cxx:1236
 AliAnaPhoton.cxx:1237
 AliAnaPhoton.cxx:1238
 AliAnaPhoton.cxx:1239
 AliAnaPhoton.cxx:1240
 AliAnaPhoton.cxx:1241
 AliAnaPhoton.cxx:1242
 AliAnaPhoton.cxx:1243
 AliAnaPhoton.cxx:1244
 AliAnaPhoton.cxx:1245
 AliAnaPhoton.cxx:1246
 AliAnaPhoton.cxx:1247
 AliAnaPhoton.cxx:1248
 AliAnaPhoton.cxx:1249
 AliAnaPhoton.cxx:1250
 AliAnaPhoton.cxx:1251
 AliAnaPhoton.cxx:1252
 AliAnaPhoton.cxx:1253
 AliAnaPhoton.cxx:1254
 AliAnaPhoton.cxx:1255
 AliAnaPhoton.cxx:1256
 AliAnaPhoton.cxx:1257
 AliAnaPhoton.cxx:1258
 AliAnaPhoton.cxx:1259
 AliAnaPhoton.cxx:1260
 AliAnaPhoton.cxx:1261
 AliAnaPhoton.cxx:1262
 AliAnaPhoton.cxx:1263
 AliAnaPhoton.cxx:1264
 AliAnaPhoton.cxx:1265
 AliAnaPhoton.cxx:1266
 AliAnaPhoton.cxx:1267
 AliAnaPhoton.cxx:1268
 AliAnaPhoton.cxx:1269
 AliAnaPhoton.cxx:1270
 AliAnaPhoton.cxx:1271
 AliAnaPhoton.cxx:1272
 AliAnaPhoton.cxx:1273
 AliAnaPhoton.cxx:1274
 AliAnaPhoton.cxx:1275
 AliAnaPhoton.cxx:1276
 AliAnaPhoton.cxx:1277
 AliAnaPhoton.cxx:1278
 AliAnaPhoton.cxx:1279
 AliAnaPhoton.cxx:1280
 AliAnaPhoton.cxx:1281
 AliAnaPhoton.cxx:1282
 AliAnaPhoton.cxx:1283
 AliAnaPhoton.cxx:1284
 AliAnaPhoton.cxx:1285
 AliAnaPhoton.cxx:1286
 AliAnaPhoton.cxx:1287
 AliAnaPhoton.cxx:1288
 AliAnaPhoton.cxx:1289
 AliAnaPhoton.cxx:1290
 AliAnaPhoton.cxx:1291
 AliAnaPhoton.cxx:1292
 AliAnaPhoton.cxx:1293
 AliAnaPhoton.cxx:1294
 AliAnaPhoton.cxx:1295
 AliAnaPhoton.cxx:1296
 AliAnaPhoton.cxx:1297
 AliAnaPhoton.cxx:1298
 AliAnaPhoton.cxx:1299
 AliAnaPhoton.cxx:1300
 AliAnaPhoton.cxx:1301
 AliAnaPhoton.cxx:1302
 AliAnaPhoton.cxx:1303
 AliAnaPhoton.cxx:1304
 AliAnaPhoton.cxx:1305
 AliAnaPhoton.cxx:1306
 AliAnaPhoton.cxx:1307
 AliAnaPhoton.cxx:1308
 AliAnaPhoton.cxx:1309
 AliAnaPhoton.cxx:1310
 AliAnaPhoton.cxx:1311
 AliAnaPhoton.cxx:1312
 AliAnaPhoton.cxx:1313
 AliAnaPhoton.cxx:1314
 AliAnaPhoton.cxx:1315
 AliAnaPhoton.cxx:1316
 AliAnaPhoton.cxx:1317
 AliAnaPhoton.cxx:1318
 AliAnaPhoton.cxx:1319
 AliAnaPhoton.cxx:1320
 AliAnaPhoton.cxx:1321
 AliAnaPhoton.cxx:1322
 AliAnaPhoton.cxx:1323
 AliAnaPhoton.cxx:1324
 AliAnaPhoton.cxx:1325
 AliAnaPhoton.cxx:1326
 AliAnaPhoton.cxx:1327
 AliAnaPhoton.cxx:1328
 AliAnaPhoton.cxx:1329
 AliAnaPhoton.cxx:1330
 AliAnaPhoton.cxx:1331
 AliAnaPhoton.cxx:1332
 AliAnaPhoton.cxx:1333
 AliAnaPhoton.cxx:1334
 AliAnaPhoton.cxx:1335
 AliAnaPhoton.cxx:1336
 AliAnaPhoton.cxx:1337
 AliAnaPhoton.cxx:1338
 AliAnaPhoton.cxx:1339
 AliAnaPhoton.cxx:1340
 AliAnaPhoton.cxx:1341
 AliAnaPhoton.cxx:1342
 AliAnaPhoton.cxx:1343
 AliAnaPhoton.cxx:1344
 AliAnaPhoton.cxx:1345
 AliAnaPhoton.cxx:1346
 AliAnaPhoton.cxx:1347
 AliAnaPhoton.cxx:1348
 AliAnaPhoton.cxx:1349
 AliAnaPhoton.cxx:1350
 AliAnaPhoton.cxx:1351
 AliAnaPhoton.cxx:1352
 AliAnaPhoton.cxx:1353
 AliAnaPhoton.cxx:1354
 AliAnaPhoton.cxx:1355
 AliAnaPhoton.cxx:1356
 AliAnaPhoton.cxx:1357
 AliAnaPhoton.cxx:1358
 AliAnaPhoton.cxx:1359
 AliAnaPhoton.cxx:1360
 AliAnaPhoton.cxx:1361
 AliAnaPhoton.cxx:1362
 AliAnaPhoton.cxx:1363
 AliAnaPhoton.cxx:1364
 AliAnaPhoton.cxx:1365
 AliAnaPhoton.cxx:1366
 AliAnaPhoton.cxx:1367
 AliAnaPhoton.cxx:1368
 AliAnaPhoton.cxx:1369
 AliAnaPhoton.cxx:1370
 AliAnaPhoton.cxx:1371
 AliAnaPhoton.cxx:1372
 AliAnaPhoton.cxx:1373
 AliAnaPhoton.cxx:1374
 AliAnaPhoton.cxx:1375
 AliAnaPhoton.cxx:1376
 AliAnaPhoton.cxx:1377
 AliAnaPhoton.cxx:1378
 AliAnaPhoton.cxx:1379
 AliAnaPhoton.cxx:1380
 AliAnaPhoton.cxx:1381
 AliAnaPhoton.cxx:1382
 AliAnaPhoton.cxx:1383
 AliAnaPhoton.cxx:1384
 AliAnaPhoton.cxx:1385
 AliAnaPhoton.cxx:1386
 AliAnaPhoton.cxx:1387
 AliAnaPhoton.cxx:1388
 AliAnaPhoton.cxx:1389
 AliAnaPhoton.cxx:1390
 AliAnaPhoton.cxx:1391
 AliAnaPhoton.cxx:1392
 AliAnaPhoton.cxx:1393
 AliAnaPhoton.cxx:1394
 AliAnaPhoton.cxx:1395
 AliAnaPhoton.cxx:1396
 AliAnaPhoton.cxx:1397
 AliAnaPhoton.cxx:1398
 AliAnaPhoton.cxx:1399
 AliAnaPhoton.cxx:1400
 AliAnaPhoton.cxx:1401
 AliAnaPhoton.cxx:1402
 AliAnaPhoton.cxx:1403
 AliAnaPhoton.cxx:1404
 AliAnaPhoton.cxx:1405
 AliAnaPhoton.cxx:1406
 AliAnaPhoton.cxx:1407
 AliAnaPhoton.cxx:1408
 AliAnaPhoton.cxx:1409
 AliAnaPhoton.cxx:1410
 AliAnaPhoton.cxx:1411
 AliAnaPhoton.cxx:1412
 AliAnaPhoton.cxx:1413
 AliAnaPhoton.cxx:1414
 AliAnaPhoton.cxx:1415
 AliAnaPhoton.cxx:1416
 AliAnaPhoton.cxx:1417
 AliAnaPhoton.cxx:1418
 AliAnaPhoton.cxx:1419
 AliAnaPhoton.cxx:1420
 AliAnaPhoton.cxx:1421
 AliAnaPhoton.cxx:1422
 AliAnaPhoton.cxx:1423
 AliAnaPhoton.cxx:1424
 AliAnaPhoton.cxx:1425
 AliAnaPhoton.cxx:1426
 AliAnaPhoton.cxx:1427
 AliAnaPhoton.cxx:1428
 AliAnaPhoton.cxx:1429
 AliAnaPhoton.cxx:1430
 AliAnaPhoton.cxx:1431
 AliAnaPhoton.cxx:1432
 AliAnaPhoton.cxx:1433
 AliAnaPhoton.cxx:1434
 AliAnaPhoton.cxx:1435
 AliAnaPhoton.cxx:1436
 AliAnaPhoton.cxx:1437
 AliAnaPhoton.cxx:1438
 AliAnaPhoton.cxx:1439
 AliAnaPhoton.cxx:1440
 AliAnaPhoton.cxx:1441
 AliAnaPhoton.cxx:1442
 AliAnaPhoton.cxx:1443
 AliAnaPhoton.cxx:1444
 AliAnaPhoton.cxx:1445
 AliAnaPhoton.cxx:1446
 AliAnaPhoton.cxx:1447
 AliAnaPhoton.cxx:1448
 AliAnaPhoton.cxx:1449
 AliAnaPhoton.cxx:1450
 AliAnaPhoton.cxx:1451
 AliAnaPhoton.cxx:1452
 AliAnaPhoton.cxx:1453
 AliAnaPhoton.cxx:1454
 AliAnaPhoton.cxx:1455
 AliAnaPhoton.cxx:1456
 AliAnaPhoton.cxx:1457
 AliAnaPhoton.cxx:1458
 AliAnaPhoton.cxx:1459
 AliAnaPhoton.cxx:1460
 AliAnaPhoton.cxx:1461
 AliAnaPhoton.cxx:1462
 AliAnaPhoton.cxx:1463
 AliAnaPhoton.cxx:1464
 AliAnaPhoton.cxx:1465
 AliAnaPhoton.cxx:1466
 AliAnaPhoton.cxx:1467
 AliAnaPhoton.cxx:1468
 AliAnaPhoton.cxx:1469
 AliAnaPhoton.cxx:1470
 AliAnaPhoton.cxx:1471
 AliAnaPhoton.cxx:1472
 AliAnaPhoton.cxx:1473
 AliAnaPhoton.cxx:1474
 AliAnaPhoton.cxx:1475
 AliAnaPhoton.cxx:1476
 AliAnaPhoton.cxx:1477
 AliAnaPhoton.cxx:1478
 AliAnaPhoton.cxx:1479
 AliAnaPhoton.cxx:1480
 AliAnaPhoton.cxx:1481
 AliAnaPhoton.cxx:1482
 AliAnaPhoton.cxx:1483
 AliAnaPhoton.cxx:1484
 AliAnaPhoton.cxx:1485
 AliAnaPhoton.cxx:1486
 AliAnaPhoton.cxx:1487
 AliAnaPhoton.cxx:1488
 AliAnaPhoton.cxx:1489
 AliAnaPhoton.cxx:1490
 AliAnaPhoton.cxx:1491
 AliAnaPhoton.cxx:1492
 AliAnaPhoton.cxx:1493
 AliAnaPhoton.cxx:1494
 AliAnaPhoton.cxx:1495
 AliAnaPhoton.cxx:1496
 AliAnaPhoton.cxx:1497
 AliAnaPhoton.cxx:1498
 AliAnaPhoton.cxx:1499
 AliAnaPhoton.cxx:1500
 AliAnaPhoton.cxx:1501
 AliAnaPhoton.cxx:1502
 AliAnaPhoton.cxx:1503
 AliAnaPhoton.cxx:1504
 AliAnaPhoton.cxx:1505
 AliAnaPhoton.cxx:1506
 AliAnaPhoton.cxx:1507
 AliAnaPhoton.cxx:1508
 AliAnaPhoton.cxx:1509
 AliAnaPhoton.cxx:1510
 AliAnaPhoton.cxx:1511
 AliAnaPhoton.cxx:1512
 AliAnaPhoton.cxx:1513
 AliAnaPhoton.cxx:1514
 AliAnaPhoton.cxx:1515
 AliAnaPhoton.cxx:1516
 AliAnaPhoton.cxx:1517
 AliAnaPhoton.cxx:1518
 AliAnaPhoton.cxx:1519
 AliAnaPhoton.cxx:1520
 AliAnaPhoton.cxx:1521
 AliAnaPhoton.cxx:1522
 AliAnaPhoton.cxx:1523
 AliAnaPhoton.cxx:1524
 AliAnaPhoton.cxx:1525
 AliAnaPhoton.cxx:1526
 AliAnaPhoton.cxx:1527
 AliAnaPhoton.cxx:1528
 AliAnaPhoton.cxx:1529
 AliAnaPhoton.cxx:1530
 AliAnaPhoton.cxx:1531
 AliAnaPhoton.cxx:1532
 AliAnaPhoton.cxx:1533
 AliAnaPhoton.cxx:1534
 AliAnaPhoton.cxx:1535
 AliAnaPhoton.cxx:1536
 AliAnaPhoton.cxx:1537
 AliAnaPhoton.cxx:1538
 AliAnaPhoton.cxx:1539
 AliAnaPhoton.cxx:1540
 AliAnaPhoton.cxx:1541
 AliAnaPhoton.cxx:1542
 AliAnaPhoton.cxx:1543
 AliAnaPhoton.cxx:1544
 AliAnaPhoton.cxx:1545
 AliAnaPhoton.cxx:1546
 AliAnaPhoton.cxx:1547
 AliAnaPhoton.cxx:1548
 AliAnaPhoton.cxx:1549
 AliAnaPhoton.cxx:1550
 AliAnaPhoton.cxx:1551
 AliAnaPhoton.cxx:1552
 AliAnaPhoton.cxx:1553
 AliAnaPhoton.cxx:1554
 AliAnaPhoton.cxx:1555
 AliAnaPhoton.cxx:1556
 AliAnaPhoton.cxx:1557
 AliAnaPhoton.cxx:1558
 AliAnaPhoton.cxx:1559
 AliAnaPhoton.cxx:1560
 AliAnaPhoton.cxx:1561
 AliAnaPhoton.cxx:1562
 AliAnaPhoton.cxx:1563
 AliAnaPhoton.cxx:1564
 AliAnaPhoton.cxx:1565
 AliAnaPhoton.cxx:1566
 AliAnaPhoton.cxx:1567
 AliAnaPhoton.cxx:1568
 AliAnaPhoton.cxx:1569
 AliAnaPhoton.cxx:1570
 AliAnaPhoton.cxx:1571
 AliAnaPhoton.cxx:1572
 AliAnaPhoton.cxx:1573
 AliAnaPhoton.cxx:1574
 AliAnaPhoton.cxx:1575
 AliAnaPhoton.cxx:1576
 AliAnaPhoton.cxx:1577
 AliAnaPhoton.cxx:1578
 AliAnaPhoton.cxx:1579
 AliAnaPhoton.cxx:1580
 AliAnaPhoton.cxx:1581
 AliAnaPhoton.cxx:1582
 AliAnaPhoton.cxx:1583
 AliAnaPhoton.cxx:1584
 AliAnaPhoton.cxx:1585
 AliAnaPhoton.cxx:1586
 AliAnaPhoton.cxx:1587
 AliAnaPhoton.cxx:1588
 AliAnaPhoton.cxx:1589
 AliAnaPhoton.cxx:1590
 AliAnaPhoton.cxx:1591
 AliAnaPhoton.cxx:1592
 AliAnaPhoton.cxx:1593
 AliAnaPhoton.cxx:1594
 AliAnaPhoton.cxx:1595
 AliAnaPhoton.cxx:1596
 AliAnaPhoton.cxx:1597
 AliAnaPhoton.cxx:1598
 AliAnaPhoton.cxx:1599
 AliAnaPhoton.cxx:1600
 AliAnaPhoton.cxx:1601
 AliAnaPhoton.cxx:1602
 AliAnaPhoton.cxx:1603
 AliAnaPhoton.cxx:1604
 AliAnaPhoton.cxx:1605
 AliAnaPhoton.cxx:1606
 AliAnaPhoton.cxx:1607
 AliAnaPhoton.cxx:1608
 AliAnaPhoton.cxx:1609
 AliAnaPhoton.cxx:1610
 AliAnaPhoton.cxx:1611
 AliAnaPhoton.cxx:1612
 AliAnaPhoton.cxx:1613
 AliAnaPhoton.cxx:1614
 AliAnaPhoton.cxx:1615
 AliAnaPhoton.cxx:1616
 AliAnaPhoton.cxx:1617
 AliAnaPhoton.cxx:1618
 AliAnaPhoton.cxx:1619
 AliAnaPhoton.cxx:1620
 AliAnaPhoton.cxx:1621
 AliAnaPhoton.cxx:1622
 AliAnaPhoton.cxx:1623
 AliAnaPhoton.cxx:1624
 AliAnaPhoton.cxx:1625
 AliAnaPhoton.cxx:1626
 AliAnaPhoton.cxx:1627
 AliAnaPhoton.cxx:1628
 AliAnaPhoton.cxx:1629
 AliAnaPhoton.cxx:1630
 AliAnaPhoton.cxx:1631
 AliAnaPhoton.cxx:1632
 AliAnaPhoton.cxx:1633
 AliAnaPhoton.cxx:1634
 AliAnaPhoton.cxx:1635
 AliAnaPhoton.cxx:1636
 AliAnaPhoton.cxx:1637
 AliAnaPhoton.cxx:1638
 AliAnaPhoton.cxx:1639
 AliAnaPhoton.cxx:1640
 AliAnaPhoton.cxx:1641
 AliAnaPhoton.cxx:1642
 AliAnaPhoton.cxx:1643
 AliAnaPhoton.cxx:1644
 AliAnaPhoton.cxx:1645
 AliAnaPhoton.cxx:1646
 AliAnaPhoton.cxx:1647
 AliAnaPhoton.cxx:1648
 AliAnaPhoton.cxx:1649
 AliAnaPhoton.cxx:1650
 AliAnaPhoton.cxx:1651
 AliAnaPhoton.cxx:1652
 AliAnaPhoton.cxx:1653
 AliAnaPhoton.cxx:1654
 AliAnaPhoton.cxx:1655
 AliAnaPhoton.cxx:1656
 AliAnaPhoton.cxx:1657
 AliAnaPhoton.cxx:1658
 AliAnaPhoton.cxx:1659
 AliAnaPhoton.cxx:1660
 AliAnaPhoton.cxx:1661
 AliAnaPhoton.cxx:1662
 AliAnaPhoton.cxx:1663
 AliAnaPhoton.cxx:1664
 AliAnaPhoton.cxx:1665
 AliAnaPhoton.cxx:1666
 AliAnaPhoton.cxx:1667
 AliAnaPhoton.cxx:1668
 AliAnaPhoton.cxx:1669
 AliAnaPhoton.cxx:1670
 AliAnaPhoton.cxx:1671
 AliAnaPhoton.cxx:1672
 AliAnaPhoton.cxx:1673
 AliAnaPhoton.cxx:1674
 AliAnaPhoton.cxx:1675
 AliAnaPhoton.cxx:1676
 AliAnaPhoton.cxx:1677
 AliAnaPhoton.cxx:1678
 AliAnaPhoton.cxx:1679
 AliAnaPhoton.cxx:1680
 AliAnaPhoton.cxx:1681
 AliAnaPhoton.cxx:1682
 AliAnaPhoton.cxx:1683
 AliAnaPhoton.cxx:1684
 AliAnaPhoton.cxx:1685
 AliAnaPhoton.cxx:1686
 AliAnaPhoton.cxx:1687
 AliAnaPhoton.cxx:1688
 AliAnaPhoton.cxx:1689
 AliAnaPhoton.cxx:1690
 AliAnaPhoton.cxx:1691
 AliAnaPhoton.cxx:1692
 AliAnaPhoton.cxx:1693
 AliAnaPhoton.cxx:1694
 AliAnaPhoton.cxx:1695
 AliAnaPhoton.cxx:1696
 AliAnaPhoton.cxx:1697
 AliAnaPhoton.cxx:1698
 AliAnaPhoton.cxx:1699
 AliAnaPhoton.cxx:1700
 AliAnaPhoton.cxx:1701
 AliAnaPhoton.cxx:1702
 AliAnaPhoton.cxx:1703
 AliAnaPhoton.cxx:1704
 AliAnaPhoton.cxx:1705
 AliAnaPhoton.cxx:1706
 AliAnaPhoton.cxx:1707
 AliAnaPhoton.cxx:1708
 AliAnaPhoton.cxx:1709
 AliAnaPhoton.cxx:1710
 AliAnaPhoton.cxx:1711
 AliAnaPhoton.cxx:1712
 AliAnaPhoton.cxx:1713
 AliAnaPhoton.cxx:1714
 AliAnaPhoton.cxx:1715
 AliAnaPhoton.cxx:1716
 AliAnaPhoton.cxx:1717
 AliAnaPhoton.cxx:1718
 AliAnaPhoton.cxx:1719
 AliAnaPhoton.cxx:1720
 AliAnaPhoton.cxx:1721
 AliAnaPhoton.cxx:1722
 AliAnaPhoton.cxx:1723
 AliAnaPhoton.cxx:1724
 AliAnaPhoton.cxx:1725
 AliAnaPhoton.cxx:1726
 AliAnaPhoton.cxx:1727
 AliAnaPhoton.cxx:1728
 AliAnaPhoton.cxx:1729
 AliAnaPhoton.cxx:1730
 AliAnaPhoton.cxx:1731
 AliAnaPhoton.cxx:1732
 AliAnaPhoton.cxx:1733
 AliAnaPhoton.cxx:1734
 AliAnaPhoton.cxx:1735
 AliAnaPhoton.cxx:1736
 AliAnaPhoton.cxx:1737
 AliAnaPhoton.cxx:1738
 AliAnaPhoton.cxx:1739
 AliAnaPhoton.cxx:1740
 AliAnaPhoton.cxx:1741
 AliAnaPhoton.cxx:1742
 AliAnaPhoton.cxx:1743
 AliAnaPhoton.cxx:1744
 AliAnaPhoton.cxx:1745
 AliAnaPhoton.cxx:1746
 AliAnaPhoton.cxx:1747
 AliAnaPhoton.cxx:1748
 AliAnaPhoton.cxx:1749
 AliAnaPhoton.cxx:1750
 AliAnaPhoton.cxx:1751
 AliAnaPhoton.cxx:1752
 AliAnaPhoton.cxx:1753
 AliAnaPhoton.cxx:1754
 AliAnaPhoton.cxx:1755
 AliAnaPhoton.cxx:1756
 AliAnaPhoton.cxx:1757
 AliAnaPhoton.cxx:1758
 AliAnaPhoton.cxx:1759
 AliAnaPhoton.cxx:1760
 AliAnaPhoton.cxx:1761
 AliAnaPhoton.cxx:1762
 AliAnaPhoton.cxx:1763
 AliAnaPhoton.cxx:1764
 AliAnaPhoton.cxx:1765
 AliAnaPhoton.cxx:1766
 AliAnaPhoton.cxx:1767
 AliAnaPhoton.cxx:1768
 AliAnaPhoton.cxx:1769
 AliAnaPhoton.cxx:1770
 AliAnaPhoton.cxx:1771
 AliAnaPhoton.cxx:1772
 AliAnaPhoton.cxx:1773
 AliAnaPhoton.cxx:1774
 AliAnaPhoton.cxx:1775
 AliAnaPhoton.cxx:1776
 AliAnaPhoton.cxx:1777
 AliAnaPhoton.cxx:1778
 AliAnaPhoton.cxx:1779
 AliAnaPhoton.cxx:1780
 AliAnaPhoton.cxx:1781
 AliAnaPhoton.cxx:1782
 AliAnaPhoton.cxx:1783
 AliAnaPhoton.cxx:1784
 AliAnaPhoton.cxx:1785
 AliAnaPhoton.cxx:1786
 AliAnaPhoton.cxx:1787
 AliAnaPhoton.cxx:1788
 AliAnaPhoton.cxx:1789
 AliAnaPhoton.cxx:1790
 AliAnaPhoton.cxx:1791
 AliAnaPhoton.cxx:1792
 AliAnaPhoton.cxx:1793
 AliAnaPhoton.cxx:1794
 AliAnaPhoton.cxx:1795
 AliAnaPhoton.cxx:1796
 AliAnaPhoton.cxx:1797
 AliAnaPhoton.cxx:1798
 AliAnaPhoton.cxx:1799
 AliAnaPhoton.cxx:1800
 AliAnaPhoton.cxx:1801
 AliAnaPhoton.cxx:1802
 AliAnaPhoton.cxx:1803
 AliAnaPhoton.cxx:1804
 AliAnaPhoton.cxx:1805
 AliAnaPhoton.cxx:1806
 AliAnaPhoton.cxx:1807
 AliAnaPhoton.cxx:1808
 AliAnaPhoton.cxx:1809
 AliAnaPhoton.cxx:1810
 AliAnaPhoton.cxx:1811
 AliAnaPhoton.cxx:1812
 AliAnaPhoton.cxx:1813
 AliAnaPhoton.cxx:1814
 AliAnaPhoton.cxx:1815
 AliAnaPhoton.cxx:1816
 AliAnaPhoton.cxx:1817
 AliAnaPhoton.cxx:1818
 AliAnaPhoton.cxx:1819
 AliAnaPhoton.cxx:1820
 AliAnaPhoton.cxx:1821
 AliAnaPhoton.cxx:1822
 AliAnaPhoton.cxx:1823
 AliAnaPhoton.cxx:1824
 AliAnaPhoton.cxx:1825
 AliAnaPhoton.cxx:1826
 AliAnaPhoton.cxx:1827
 AliAnaPhoton.cxx:1828
 AliAnaPhoton.cxx:1829
 AliAnaPhoton.cxx:1830
 AliAnaPhoton.cxx:1831
 AliAnaPhoton.cxx:1832
 AliAnaPhoton.cxx:1833
 AliAnaPhoton.cxx:1834
 AliAnaPhoton.cxx:1835
 AliAnaPhoton.cxx:1836
 AliAnaPhoton.cxx:1837
 AliAnaPhoton.cxx:1838
 AliAnaPhoton.cxx:1839
 AliAnaPhoton.cxx:1840
 AliAnaPhoton.cxx:1841
 AliAnaPhoton.cxx:1842
 AliAnaPhoton.cxx:1843
 AliAnaPhoton.cxx:1844
 AliAnaPhoton.cxx:1845
 AliAnaPhoton.cxx:1846
 AliAnaPhoton.cxx:1847
 AliAnaPhoton.cxx:1848
 AliAnaPhoton.cxx:1849
 AliAnaPhoton.cxx:1850
 AliAnaPhoton.cxx:1851
 AliAnaPhoton.cxx:1852
 AliAnaPhoton.cxx:1853
 AliAnaPhoton.cxx:1854
 AliAnaPhoton.cxx:1855
 AliAnaPhoton.cxx:1856
 AliAnaPhoton.cxx:1857
 AliAnaPhoton.cxx:1858
 AliAnaPhoton.cxx:1859
 AliAnaPhoton.cxx:1860
 AliAnaPhoton.cxx:1861
 AliAnaPhoton.cxx:1862
 AliAnaPhoton.cxx:1863
 AliAnaPhoton.cxx:1864
 AliAnaPhoton.cxx:1865
 AliAnaPhoton.cxx:1866
 AliAnaPhoton.cxx:1867
 AliAnaPhoton.cxx:1868
 AliAnaPhoton.cxx:1869
 AliAnaPhoton.cxx:1870
 AliAnaPhoton.cxx:1871
 AliAnaPhoton.cxx:1872
 AliAnaPhoton.cxx:1873
 AliAnaPhoton.cxx:1874
 AliAnaPhoton.cxx:1875
 AliAnaPhoton.cxx:1876
 AliAnaPhoton.cxx:1877
 AliAnaPhoton.cxx:1878
 AliAnaPhoton.cxx:1879
 AliAnaPhoton.cxx:1880
 AliAnaPhoton.cxx:1881
 AliAnaPhoton.cxx:1882
 AliAnaPhoton.cxx:1883
 AliAnaPhoton.cxx:1884
 AliAnaPhoton.cxx:1885
 AliAnaPhoton.cxx:1886
 AliAnaPhoton.cxx:1887
 AliAnaPhoton.cxx:1888
 AliAnaPhoton.cxx:1889
 AliAnaPhoton.cxx:1890
 AliAnaPhoton.cxx:1891
 AliAnaPhoton.cxx:1892
 AliAnaPhoton.cxx:1893
 AliAnaPhoton.cxx:1894
 AliAnaPhoton.cxx:1895
 AliAnaPhoton.cxx:1896
 AliAnaPhoton.cxx:1897
 AliAnaPhoton.cxx:1898
 AliAnaPhoton.cxx:1899
 AliAnaPhoton.cxx:1900
 AliAnaPhoton.cxx:1901
 AliAnaPhoton.cxx:1902
 AliAnaPhoton.cxx:1903
 AliAnaPhoton.cxx:1904
 AliAnaPhoton.cxx:1905
 AliAnaPhoton.cxx:1906
 AliAnaPhoton.cxx:1907
 AliAnaPhoton.cxx:1908
 AliAnaPhoton.cxx:1909
 AliAnaPhoton.cxx:1910
 AliAnaPhoton.cxx:1911
 AliAnaPhoton.cxx:1912
 AliAnaPhoton.cxx:1913
 AliAnaPhoton.cxx:1914
 AliAnaPhoton.cxx:1915
 AliAnaPhoton.cxx:1916
 AliAnaPhoton.cxx:1917
 AliAnaPhoton.cxx:1918
 AliAnaPhoton.cxx:1919
 AliAnaPhoton.cxx:1920
 AliAnaPhoton.cxx:1921
 AliAnaPhoton.cxx:1922
 AliAnaPhoton.cxx:1923
 AliAnaPhoton.cxx:1924
 AliAnaPhoton.cxx:1925
 AliAnaPhoton.cxx:1926
 AliAnaPhoton.cxx:1927
 AliAnaPhoton.cxx:1928
 AliAnaPhoton.cxx:1929
 AliAnaPhoton.cxx:1930
 AliAnaPhoton.cxx:1931
 AliAnaPhoton.cxx:1932
 AliAnaPhoton.cxx:1933
 AliAnaPhoton.cxx:1934
 AliAnaPhoton.cxx:1935
 AliAnaPhoton.cxx:1936
 AliAnaPhoton.cxx:1937
 AliAnaPhoton.cxx:1938
 AliAnaPhoton.cxx:1939
 AliAnaPhoton.cxx:1940
 AliAnaPhoton.cxx:1941
 AliAnaPhoton.cxx:1942
 AliAnaPhoton.cxx:1943
 AliAnaPhoton.cxx:1944
 AliAnaPhoton.cxx:1945
 AliAnaPhoton.cxx:1946
 AliAnaPhoton.cxx:1947
 AliAnaPhoton.cxx:1948
 AliAnaPhoton.cxx:1949
 AliAnaPhoton.cxx:1950
 AliAnaPhoton.cxx:1951
 AliAnaPhoton.cxx:1952
 AliAnaPhoton.cxx:1953
 AliAnaPhoton.cxx:1954
 AliAnaPhoton.cxx:1955
 AliAnaPhoton.cxx:1956
 AliAnaPhoton.cxx:1957
 AliAnaPhoton.cxx:1958
 AliAnaPhoton.cxx:1959
 AliAnaPhoton.cxx:1960
 AliAnaPhoton.cxx:1961
 AliAnaPhoton.cxx:1962
 AliAnaPhoton.cxx:1963
 AliAnaPhoton.cxx:1964
 AliAnaPhoton.cxx:1965
 AliAnaPhoton.cxx:1966
 AliAnaPhoton.cxx:1967
 AliAnaPhoton.cxx:1968
 AliAnaPhoton.cxx:1969
 AliAnaPhoton.cxx:1970
 AliAnaPhoton.cxx:1971
 AliAnaPhoton.cxx:1972
 AliAnaPhoton.cxx:1973
 AliAnaPhoton.cxx:1974
 AliAnaPhoton.cxx:1975
 AliAnaPhoton.cxx:1976
 AliAnaPhoton.cxx:1977
 AliAnaPhoton.cxx:1978
 AliAnaPhoton.cxx:1979
 AliAnaPhoton.cxx:1980
 AliAnaPhoton.cxx:1981
 AliAnaPhoton.cxx:1982
 AliAnaPhoton.cxx:1983
 AliAnaPhoton.cxx:1984
 AliAnaPhoton.cxx:1985
 AliAnaPhoton.cxx:1986
 AliAnaPhoton.cxx:1987
 AliAnaPhoton.cxx:1988
 AliAnaPhoton.cxx:1989
 AliAnaPhoton.cxx:1990
 AliAnaPhoton.cxx:1991
 AliAnaPhoton.cxx:1992
 AliAnaPhoton.cxx:1993
 AliAnaPhoton.cxx:1994
 AliAnaPhoton.cxx:1995
 AliAnaPhoton.cxx:1996
 AliAnaPhoton.cxx:1997
 AliAnaPhoton.cxx:1998
 AliAnaPhoton.cxx:1999
 AliAnaPhoton.cxx:2000
 AliAnaPhoton.cxx:2001
 AliAnaPhoton.cxx:2002
 AliAnaPhoton.cxx:2003
 AliAnaPhoton.cxx:2004
 AliAnaPhoton.cxx:2005
 AliAnaPhoton.cxx:2006
 AliAnaPhoton.cxx:2007
 AliAnaPhoton.cxx:2008
 AliAnaPhoton.cxx:2009
 AliAnaPhoton.cxx:2010
 AliAnaPhoton.cxx:2011
 AliAnaPhoton.cxx:2012
 AliAnaPhoton.cxx:2013
 AliAnaPhoton.cxx:2014
 AliAnaPhoton.cxx:2015
 AliAnaPhoton.cxx:2016
 AliAnaPhoton.cxx:2017
 AliAnaPhoton.cxx:2018
 AliAnaPhoton.cxx:2019
 AliAnaPhoton.cxx:2020
 AliAnaPhoton.cxx:2021
 AliAnaPhoton.cxx:2022
 AliAnaPhoton.cxx:2023
 AliAnaPhoton.cxx:2024
 AliAnaPhoton.cxx:2025
 AliAnaPhoton.cxx:2026
 AliAnaPhoton.cxx:2027
 AliAnaPhoton.cxx:2028
 AliAnaPhoton.cxx:2029
 AliAnaPhoton.cxx:2030
 AliAnaPhoton.cxx:2031
 AliAnaPhoton.cxx:2032
 AliAnaPhoton.cxx:2033
 AliAnaPhoton.cxx:2034
 AliAnaPhoton.cxx:2035
 AliAnaPhoton.cxx:2036
 AliAnaPhoton.cxx:2037
 AliAnaPhoton.cxx:2038
 AliAnaPhoton.cxx:2039
 AliAnaPhoton.cxx:2040
 AliAnaPhoton.cxx:2041
 AliAnaPhoton.cxx:2042
 AliAnaPhoton.cxx:2043
 AliAnaPhoton.cxx:2044
 AliAnaPhoton.cxx:2045
 AliAnaPhoton.cxx:2046
 AliAnaPhoton.cxx:2047
 AliAnaPhoton.cxx:2048
 AliAnaPhoton.cxx:2049
 AliAnaPhoton.cxx:2050
 AliAnaPhoton.cxx:2051
 AliAnaPhoton.cxx:2052
 AliAnaPhoton.cxx:2053
 AliAnaPhoton.cxx:2054
 AliAnaPhoton.cxx:2055
 AliAnaPhoton.cxx:2056
 AliAnaPhoton.cxx:2057
 AliAnaPhoton.cxx:2058
 AliAnaPhoton.cxx:2059
 AliAnaPhoton.cxx:2060
 AliAnaPhoton.cxx:2061
 AliAnaPhoton.cxx:2062
 AliAnaPhoton.cxx:2063
 AliAnaPhoton.cxx:2064
 AliAnaPhoton.cxx:2065
 AliAnaPhoton.cxx:2066
 AliAnaPhoton.cxx:2067
 AliAnaPhoton.cxx:2068
 AliAnaPhoton.cxx:2069
 AliAnaPhoton.cxx:2070
 AliAnaPhoton.cxx:2071
 AliAnaPhoton.cxx:2072
 AliAnaPhoton.cxx:2073
 AliAnaPhoton.cxx:2074
 AliAnaPhoton.cxx:2075
 AliAnaPhoton.cxx:2076
 AliAnaPhoton.cxx:2077
 AliAnaPhoton.cxx:2078
 AliAnaPhoton.cxx:2079
 AliAnaPhoton.cxx:2080
 AliAnaPhoton.cxx:2081
 AliAnaPhoton.cxx:2082
 AliAnaPhoton.cxx:2083
 AliAnaPhoton.cxx:2084
 AliAnaPhoton.cxx:2085
 AliAnaPhoton.cxx:2086
 AliAnaPhoton.cxx:2087
 AliAnaPhoton.cxx:2088
 AliAnaPhoton.cxx:2089
 AliAnaPhoton.cxx:2090
 AliAnaPhoton.cxx:2091
 AliAnaPhoton.cxx:2092
 AliAnaPhoton.cxx:2093
 AliAnaPhoton.cxx:2094
 AliAnaPhoton.cxx:2095
 AliAnaPhoton.cxx:2096
 AliAnaPhoton.cxx:2097
 AliAnaPhoton.cxx:2098
 AliAnaPhoton.cxx:2099
 AliAnaPhoton.cxx:2100
 AliAnaPhoton.cxx:2101
 AliAnaPhoton.cxx:2102
 AliAnaPhoton.cxx:2103
 AliAnaPhoton.cxx:2104
 AliAnaPhoton.cxx:2105
 AliAnaPhoton.cxx:2106
 AliAnaPhoton.cxx:2107
 AliAnaPhoton.cxx:2108
 AliAnaPhoton.cxx:2109
 AliAnaPhoton.cxx:2110
 AliAnaPhoton.cxx:2111
 AliAnaPhoton.cxx:2112
 AliAnaPhoton.cxx:2113
 AliAnaPhoton.cxx:2114
 AliAnaPhoton.cxx:2115
 AliAnaPhoton.cxx:2116
 AliAnaPhoton.cxx:2117
 AliAnaPhoton.cxx:2118
 AliAnaPhoton.cxx:2119
 AliAnaPhoton.cxx:2120
 AliAnaPhoton.cxx:2121
 AliAnaPhoton.cxx:2122
 AliAnaPhoton.cxx:2123
 AliAnaPhoton.cxx:2124
 AliAnaPhoton.cxx:2125
 AliAnaPhoton.cxx:2126
 AliAnaPhoton.cxx:2127
 AliAnaPhoton.cxx:2128
 AliAnaPhoton.cxx:2129
 AliAnaPhoton.cxx:2130
 AliAnaPhoton.cxx:2131
 AliAnaPhoton.cxx:2132
 AliAnaPhoton.cxx:2133
 AliAnaPhoton.cxx:2134
 AliAnaPhoton.cxx:2135
 AliAnaPhoton.cxx:2136
 AliAnaPhoton.cxx:2137
 AliAnaPhoton.cxx:2138
 AliAnaPhoton.cxx:2139
 AliAnaPhoton.cxx:2140
 AliAnaPhoton.cxx:2141
 AliAnaPhoton.cxx:2142
 AliAnaPhoton.cxx:2143
 AliAnaPhoton.cxx:2144
 AliAnaPhoton.cxx:2145
 AliAnaPhoton.cxx:2146
 AliAnaPhoton.cxx:2147
 AliAnaPhoton.cxx:2148
 AliAnaPhoton.cxx:2149
 AliAnaPhoton.cxx:2150
 AliAnaPhoton.cxx:2151
 AliAnaPhoton.cxx:2152
 AliAnaPhoton.cxx:2153
 AliAnaPhoton.cxx:2154
 AliAnaPhoton.cxx:2155
 AliAnaPhoton.cxx:2156
 AliAnaPhoton.cxx:2157
 AliAnaPhoton.cxx:2158
 AliAnaPhoton.cxx:2159
 AliAnaPhoton.cxx:2160
 AliAnaPhoton.cxx:2161
 AliAnaPhoton.cxx:2162
 AliAnaPhoton.cxx:2163
 AliAnaPhoton.cxx:2164
 AliAnaPhoton.cxx:2165
 AliAnaPhoton.cxx:2166
 AliAnaPhoton.cxx:2167
 AliAnaPhoton.cxx:2168
 AliAnaPhoton.cxx:2169
 AliAnaPhoton.cxx:2170
 AliAnaPhoton.cxx:2171
 AliAnaPhoton.cxx:2172
 AliAnaPhoton.cxx:2173
 AliAnaPhoton.cxx:2174
 AliAnaPhoton.cxx:2175
 AliAnaPhoton.cxx:2176
 AliAnaPhoton.cxx:2177
 AliAnaPhoton.cxx:2178
 AliAnaPhoton.cxx:2179
 AliAnaPhoton.cxx:2180
 AliAnaPhoton.cxx:2181
 AliAnaPhoton.cxx:2182
 AliAnaPhoton.cxx:2183
 AliAnaPhoton.cxx:2184
 AliAnaPhoton.cxx:2185
 AliAnaPhoton.cxx:2186
 AliAnaPhoton.cxx:2187
 AliAnaPhoton.cxx:2188
 AliAnaPhoton.cxx:2189
 AliAnaPhoton.cxx:2190
 AliAnaPhoton.cxx:2191
 AliAnaPhoton.cxx:2192
 AliAnaPhoton.cxx:2193
 AliAnaPhoton.cxx:2194
 AliAnaPhoton.cxx:2195
 AliAnaPhoton.cxx:2196
 AliAnaPhoton.cxx:2197
 AliAnaPhoton.cxx:2198
 AliAnaPhoton.cxx:2199
 AliAnaPhoton.cxx:2200
 AliAnaPhoton.cxx:2201
 AliAnaPhoton.cxx:2202
 AliAnaPhoton.cxx:2203
 AliAnaPhoton.cxx:2204
 AliAnaPhoton.cxx:2205
 AliAnaPhoton.cxx:2206
 AliAnaPhoton.cxx:2207
 AliAnaPhoton.cxx:2208
 AliAnaPhoton.cxx:2209
 AliAnaPhoton.cxx:2210
 AliAnaPhoton.cxx:2211
 AliAnaPhoton.cxx:2212
 AliAnaPhoton.cxx:2213
 AliAnaPhoton.cxx:2214
 AliAnaPhoton.cxx:2215
 AliAnaPhoton.cxx:2216
 AliAnaPhoton.cxx:2217
 AliAnaPhoton.cxx:2218
 AliAnaPhoton.cxx:2219
 AliAnaPhoton.cxx:2220
 AliAnaPhoton.cxx:2221
 AliAnaPhoton.cxx:2222
 AliAnaPhoton.cxx:2223
 AliAnaPhoton.cxx:2224
 AliAnaPhoton.cxx:2225
 AliAnaPhoton.cxx:2226
 AliAnaPhoton.cxx:2227
 AliAnaPhoton.cxx:2228
 AliAnaPhoton.cxx:2229
 AliAnaPhoton.cxx:2230
 AliAnaPhoton.cxx:2231
 AliAnaPhoton.cxx:2232
 AliAnaPhoton.cxx:2233
 AliAnaPhoton.cxx:2234
 AliAnaPhoton.cxx:2235
 AliAnaPhoton.cxx:2236
 AliAnaPhoton.cxx:2237
 AliAnaPhoton.cxx:2238
 AliAnaPhoton.cxx:2239
 AliAnaPhoton.cxx:2240
 AliAnaPhoton.cxx:2241
 AliAnaPhoton.cxx:2242
 AliAnaPhoton.cxx:2243
 AliAnaPhoton.cxx:2244
 AliAnaPhoton.cxx:2245
 AliAnaPhoton.cxx:2246
 AliAnaPhoton.cxx:2247
 AliAnaPhoton.cxx:2248
 AliAnaPhoton.cxx:2249
 AliAnaPhoton.cxx:2250
 AliAnaPhoton.cxx:2251
 AliAnaPhoton.cxx:2252
 AliAnaPhoton.cxx:2253
 AliAnaPhoton.cxx:2254
 AliAnaPhoton.cxx:2255
 AliAnaPhoton.cxx:2256
 AliAnaPhoton.cxx:2257
 AliAnaPhoton.cxx:2258
 AliAnaPhoton.cxx:2259
 AliAnaPhoton.cxx:2260
 AliAnaPhoton.cxx:2261
 AliAnaPhoton.cxx:2262
 AliAnaPhoton.cxx:2263
 AliAnaPhoton.cxx:2264
 AliAnaPhoton.cxx:2265
 AliAnaPhoton.cxx:2266
 AliAnaPhoton.cxx:2267
 AliAnaPhoton.cxx:2268
 AliAnaPhoton.cxx:2269
 AliAnaPhoton.cxx:2270
 AliAnaPhoton.cxx:2271
 AliAnaPhoton.cxx:2272
 AliAnaPhoton.cxx:2273
 AliAnaPhoton.cxx:2274
 AliAnaPhoton.cxx:2275
 AliAnaPhoton.cxx:2276
 AliAnaPhoton.cxx:2277
 AliAnaPhoton.cxx:2278
 AliAnaPhoton.cxx:2279
 AliAnaPhoton.cxx:2280
 AliAnaPhoton.cxx:2281
 AliAnaPhoton.cxx:2282
 AliAnaPhoton.cxx:2283
 AliAnaPhoton.cxx:2284
 AliAnaPhoton.cxx:2285
 AliAnaPhoton.cxx:2286
 AliAnaPhoton.cxx:2287
 AliAnaPhoton.cxx:2288
 AliAnaPhoton.cxx:2289
 AliAnaPhoton.cxx:2290
 AliAnaPhoton.cxx:2291
 AliAnaPhoton.cxx:2292
 AliAnaPhoton.cxx:2293
 AliAnaPhoton.cxx:2294
 AliAnaPhoton.cxx:2295
 AliAnaPhoton.cxx:2296
 AliAnaPhoton.cxx:2297
 AliAnaPhoton.cxx:2298
 AliAnaPhoton.cxx:2299
 AliAnaPhoton.cxx:2300
 AliAnaPhoton.cxx:2301
 AliAnaPhoton.cxx:2302
 AliAnaPhoton.cxx:2303
 AliAnaPhoton.cxx:2304
 AliAnaPhoton.cxx:2305
 AliAnaPhoton.cxx:2306
 AliAnaPhoton.cxx:2307
 AliAnaPhoton.cxx:2308
 AliAnaPhoton.cxx:2309
 AliAnaPhoton.cxx:2310
 AliAnaPhoton.cxx:2311
 AliAnaPhoton.cxx:2312
 AliAnaPhoton.cxx:2313
 AliAnaPhoton.cxx:2314
 AliAnaPhoton.cxx:2315
 AliAnaPhoton.cxx:2316
 AliAnaPhoton.cxx:2317
 AliAnaPhoton.cxx:2318
 AliAnaPhoton.cxx:2319
 AliAnaPhoton.cxx:2320
 AliAnaPhoton.cxx:2321
 AliAnaPhoton.cxx:2322
 AliAnaPhoton.cxx:2323
 AliAnaPhoton.cxx:2324
 AliAnaPhoton.cxx:2325
 AliAnaPhoton.cxx:2326
 AliAnaPhoton.cxx:2327
 AliAnaPhoton.cxx:2328
 AliAnaPhoton.cxx:2329
 AliAnaPhoton.cxx:2330
 AliAnaPhoton.cxx:2331
 AliAnaPhoton.cxx:2332
 AliAnaPhoton.cxx:2333
 AliAnaPhoton.cxx:2334
 AliAnaPhoton.cxx:2335
 AliAnaPhoton.cxx:2336
 AliAnaPhoton.cxx:2337
 AliAnaPhoton.cxx:2338
 AliAnaPhoton.cxx:2339
 AliAnaPhoton.cxx:2340
 AliAnaPhoton.cxx:2341
 AliAnaPhoton.cxx:2342
 AliAnaPhoton.cxx:2343
 AliAnaPhoton.cxx:2344
 AliAnaPhoton.cxx:2345
 AliAnaPhoton.cxx:2346
 AliAnaPhoton.cxx:2347
 AliAnaPhoton.cxx:2348
 AliAnaPhoton.cxx:2349
 AliAnaPhoton.cxx:2350
 AliAnaPhoton.cxx:2351
 AliAnaPhoton.cxx:2352
 AliAnaPhoton.cxx:2353
 AliAnaPhoton.cxx:2354
 AliAnaPhoton.cxx:2355
 AliAnaPhoton.cxx:2356
 AliAnaPhoton.cxx:2357
 AliAnaPhoton.cxx:2358
 AliAnaPhoton.cxx:2359
 AliAnaPhoton.cxx:2360
 AliAnaPhoton.cxx:2361
 AliAnaPhoton.cxx:2362
 AliAnaPhoton.cxx:2363
 AliAnaPhoton.cxx:2364
 AliAnaPhoton.cxx:2365
 AliAnaPhoton.cxx:2366
 AliAnaPhoton.cxx:2367
 AliAnaPhoton.cxx:2368
 AliAnaPhoton.cxx:2369
 AliAnaPhoton.cxx:2370
 AliAnaPhoton.cxx:2371
 AliAnaPhoton.cxx:2372
 AliAnaPhoton.cxx:2373
 AliAnaPhoton.cxx:2374
 AliAnaPhoton.cxx:2375
 AliAnaPhoton.cxx:2376
 AliAnaPhoton.cxx:2377
 AliAnaPhoton.cxx:2378
 AliAnaPhoton.cxx:2379
 AliAnaPhoton.cxx:2380
 AliAnaPhoton.cxx:2381
 AliAnaPhoton.cxx:2382
 AliAnaPhoton.cxx:2383
 AliAnaPhoton.cxx:2384
 AliAnaPhoton.cxx:2385
 AliAnaPhoton.cxx:2386
 AliAnaPhoton.cxx:2387
 AliAnaPhoton.cxx:2388
 AliAnaPhoton.cxx:2389
 AliAnaPhoton.cxx:2390
 AliAnaPhoton.cxx:2391
 AliAnaPhoton.cxx:2392
 AliAnaPhoton.cxx:2393
 AliAnaPhoton.cxx:2394
 AliAnaPhoton.cxx:2395
 AliAnaPhoton.cxx:2396
 AliAnaPhoton.cxx:2397
 AliAnaPhoton.cxx:2398
 AliAnaPhoton.cxx:2399
 AliAnaPhoton.cxx:2400
 AliAnaPhoton.cxx:2401
 AliAnaPhoton.cxx:2402
 AliAnaPhoton.cxx:2403
 AliAnaPhoton.cxx:2404
 AliAnaPhoton.cxx:2405
 AliAnaPhoton.cxx:2406
 AliAnaPhoton.cxx:2407
 AliAnaPhoton.cxx:2408
 AliAnaPhoton.cxx:2409
 AliAnaPhoton.cxx:2410
 AliAnaPhoton.cxx:2411
 AliAnaPhoton.cxx:2412
 AliAnaPhoton.cxx:2413
 AliAnaPhoton.cxx:2414
 AliAnaPhoton.cxx:2415
 AliAnaPhoton.cxx:2416
 AliAnaPhoton.cxx:2417
 AliAnaPhoton.cxx:2418
 AliAnaPhoton.cxx:2419
 AliAnaPhoton.cxx:2420
 AliAnaPhoton.cxx:2421
 AliAnaPhoton.cxx:2422
 AliAnaPhoton.cxx:2423
 AliAnaPhoton.cxx:2424
 AliAnaPhoton.cxx:2425
 AliAnaPhoton.cxx:2426
 AliAnaPhoton.cxx:2427
 AliAnaPhoton.cxx:2428
 AliAnaPhoton.cxx:2429
 AliAnaPhoton.cxx:2430
 AliAnaPhoton.cxx:2431
 AliAnaPhoton.cxx:2432
 AliAnaPhoton.cxx:2433
 AliAnaPhoton.cxx:2434
 AliAnaPhoton.cxx:2435
 AliAnaPhoton.cxx:2436
 AliAnaPhoton.cxx:2437
 AliAnaPhoton.cxx:2438
 AliAnaPhoton.cxx:2439
 AliAnaPhoton.cxx:2440
 AliAnaPhoton.cxx:2441
 AliAnaPhoton.cxx:2442
 AliAnaPhoton.cxx:2443
 AliAnaPhoton.cxx:2444
 AliAnaPhoton.cxx:2445
 AliAnaPhoton.cxx:2446
 AliAnaPhoton.cxx:2447
 AliAnaPhoton.cxx:2448
 AliAnaPhoton.cxx:2449
 AliAnaPhoton.cxx:2450
 AliAnaPhoton.cxx:2451
 AliAnaPhoton.cxx:2452
 AliAnaPhoton.cxx:2453
 AliAnaPhoton.cxx:2454
 AliAnaPhoton.cxx:2455
 AliAnaPhoton.cxx:2456
 AliAnaPhoton.cxx:2457
 AliAnaPhoton.cxx:2458
 AliAnaPhoton.cxx:2459
 AliAnaPhoton.cxx:2460
 AliAnaPhoton.cxx:2461
 AliAnaPhoton.cxx:2462
 AliAnaPhoton.cxx:2463
 AliAnaPhoton.cxx:2464
 AliAnaPhoton.cxx:2465
 AliAnaPhoton.cxx:2466
 AliAnaPhoton.cxx:2467
 AliAnaPhoton.cxx:2468
 AliAnaPhoton.cxx:2469
 AliAnaPhoton.cxx:2470
 AliAnaPhoton.cxx:2471
 AliAnaPhoton.cxx:2472
 AliAnaPhoton.cxx:2473
 AliAnaPhoton.cxx:2474
 AliAnaPhoton.cxx:2475
 AliAnaPhoton.cxx:2476
 AliAnaPhoton.cxx:2477
 AliAnaPhoton.cxx:2478
 AliAnaPhoton.cxx:2479
 AliAnaPhoton.cxx:2480
 AliAnaPhoton.cxx:2481
 AliAnaPhoton.cxx:2482
 AliAnaPhoton.cxx:2483
 AliAnaPhoton.cxx:2484
 AliAnaPhoton.cxx:2485
 AliAnaPhoton.cxx:2486
 AliAnaPhoton.cxx:2487
 AliAnaPhoton.cxx:2488
 AliAnaPhoton.cxx:2489
 AliAnaPhoton.cxx:2490
 AliAnaPhoton.cxx:2491
 AliAnaPhoton.cxx:2492
 AliAnaPhoton.cxx:2493
 AliAnaPhoton.cxx:2494
 AliAnaPhoton.cxx:2495
 AliAnaPhoton.cxx:2496
 AliAnaPhoton.cxx:2497
 AliAnaPhoton.cxx:2498
 AliAnaPhoton.cxx:2499
 AliAnaPhoton.cxx:2500
 AliAnaPhoton.cxx:2501
 AliAnaPhoton.cxx:2502
 AliAnaPhoton.cxx:2503
 AliAnaPhoton.cxx:2504
 AliAnaPhoton.cxx:2505
 AliAnaPhoton.cxx:2506
 AliAnaPhoton.cxx:2507
 AliAnaPhoton.cxx:2508
 AliAnaPhoton.cxx:2509
 AliAnaPhoton.cxx:2510
 AliAnaPhoton.cxx:2511
 AliAnaPhoton.cxx:2512
 AliAnaPhoton.cxx:2513
 AliAnaPhoton.cxx:2514
 AliAnaPhoton.cxx:2515
 AliAnaPhoton.cxx:2516
 AliAnaPhoton.cxx:2517
 AliAnaPhoton.cxx:2518
 AliAnaPhoton.cxx:2519
 AliAnaPhoton.cxx:2520
 AliAnaPhoton.cxx:2521
 AliAnaPhoton.cxx:2522
 AliAnaPhoton.cxx:2523
 AliAnaPhoton.cxx:2524
 AliAnaPhoton.cxx:2525
 AliAnaPhoton.cxx:2526
 AliAnaPhoton.cxx:2527
 AliAnaPhoton.cxx:2528
 AliAnaPhoton.cxx:2529
 AliAnaPhoton.cxx:2530
 AliAnaPhoton.cxx:2531
 AliAnaPhoton.cxx:2532
 AliAnaPhoton.cxx:2533
 AliAnaPhoton.cxx:2534
 AliAnaPhoton.cxx:2535
 AliAnaPhoton.cxx:2536
 AliAnaPhoton.cxx:2537
 AliAnaPhoton.cxx:2538
 AliAnaPhoton.cxx:2539
 AliAnaPhoton.cxx:2540
 AliAnaPhoton.cxx:2541
 AliAnaPhoton.cxx:2542
 AliAnaPhoton.cxx:2543
 AliAnaPhoton.cxx:2544
 AliAnaPhoton.cxx:2545
 AliAnaPhoton.cxx:2546
 AliAnaPhoton.cxx:2547
 AliAnaPhoton.cxx:2548
 AliAnaPhoton.cxx:2549
 AliAnaPhoton.cxx:2550
 AliAnaPhoton.cxx:2551
 AliAnaPhoton.cxx:2552
 AliAnaPhoton.cxx:2553
 AliAnaPhoton.cxx:2554
 AliAnaPhoton.cxx:2555
 AliAnaPhoton.cxx:2556
 AliAnaPhoton.cxx:2557
 AliAnaPhoton.cxx:2558
 AliAnaPhoton.cxx:2559
 AliAnaPhoton.cxx:2560
 AliAnaPhoton.cxx:2561
 AliAnaPhoton.cxx:2562
 AliAnaPhoton.cxx:2563
 AliAnaPhoton.cxx:2564
 AliAnaPhoton.cxx:2565
 AliAnaPhoton.cxx:2566
 AliAnaPhoton.cxx:2567
 AliAnaPhoton.cxx:2568
 AliAnaPhoton.cxx:2569
 AliAnaPhoton.cxx:2570
 AliAnaPhoton.cxx:2571
 AliAnaPhoton.cxx:2572
 AliAnaPhoton.cxx:2573
 AliAnaPhoton.cxx:2574
 AliAnaPhoton.cxx:2575
 AliAnaPhoton.cxx:2576
 AliAnaPhoton.cxx:2577
 AliAnaPhoton.cxx:2578
 AliAnaPhoton.cxx:2579
 AliAnaPhoton.cxx:2580
 AliAnaPhoton.cxx:2581
 AliAnaPhoton.cxx:2582
 AliAnaPhoton.cxx:2583
 AliAnaPhoton.cxx:2584
 AliAnaPhoton.cxx:2585
 AliAnaPhoton.cxx:2586
 AliAnaPhoton.cxx:2587
 AliAnaPhoton.cxx:2588
 AliAnaPhoton.cxx:2589
 AliAnaPhoton.cxx:2590
 AliAnaPhoton.cxx:2591
 AliAnaPhoton.cxx:2592
 AliAnaPhoton.cxx:2593
 AliAnaPhoton.cxx:2594
 AliAnaPhoton.cxx:2595
 AliAnaPhoton.cxx:2596
 AliAnaPhoton.cxx:2597
 AliAnaPhoton.cxx:2598
 AliAnaPhoton.cxx:2599
 AliAnaPhoton.cxx:2600
 AliAnaPhoton.cxx:2601
 AliAnaPhoton.cxx:2602
 AliAnaPhoton.cxx:2603
 AliAnaPhoton.cxx:2604
 AliAnaPhoton.cxx:2605
 AliAnaPhoton.cxx:2606
 AliAnaPhoton.cxx:2607
 AliAnaPhoton.cxx:2608
 AliAnaPhoton.cxx:2609
 AliAnaPhoton.cxx:2610
 AliAnaPhoton.cxx:2611
 AliAnaPhoton.cxx:2612
 AliAnaPhoton.cxx:2613
 AliAnaPhoton.cxx:2614
 AliAnaPhoton.cxx:2615
 AliAnaPhoton.cxx:2616
 AliAnaPhoton.cxx:2617
 AliAnaPhoton.cxx:2618
 AliAnaPhoton.cxx:2619
 AliAnaPhoton.cxx:2620
 AliAnaPhoton.cxx:2621
 AliAnaPhoton.cxx:2622
 AliAnaPhoton.cxx:2623
 AliAnaPhoton.cxx:2624
 AliAnaPhoton.cxx:2625
 AliAnaPhoton.cxx:2626
 AliAnaPhoton.cxx:2627
 AliAnaPhoton.cxx:2628
 AliAnaPhoton.cxx:2629
 AliAnaPhoton.cxx:2630
 AliAnaPhoton.cxx:2631
 AliAnaPhoton.cxx:2632
 AliAnaPhoton.cxx:2633
 AliAnaPhoton.cxx:2634
 AliAnaPhoton.cxx:2635
 AliAnaPhoton.cxx:2636
 AliAnaPhoton.cxx:2637
 AliAnaPhoton.cxx:2638
 AliAnaPhoton.cxx:2639
 AliAnaPhoton.cxx:2640
 AliAnaPhoton.cxx:2641
 AliAnaPhoton.cxx:2642
 AliAnaPhoton.cxx:2643
 AliAnaPhoton.cxx:2644
 AliAnaPhoton.cxx:2645
 AliAnaPhoton.cxx:2646
 AliAnaPhoton.cxx:2647
 AliAnaPhoton.cxx:2648
 AliAnaPhoton.cxx:2649
 AliAnaPhoton.cxx:2650
 AliAnaPhoton.cxx:2651
 AliAnaPhoton.cxx:2652
 AliAnaPhoton.cxx:2653
 AliAnaPhoton.cxx:2654
 AliAnaPhoton.cxx:2655
 AliAnaPhoton.cxx:2656
 AliAnaPhoton.cxx:2657
 AliAnaPhoton.cxx:2658
 AliAnaPhoton.cxx:2659
 AliAnaPhoton.cxx:2660
 AliAnaPhoton.cxx:2661
 AliAnaPhoton.cxx:2662
 AliAnaPhoton.cxx:2663
 AliAnaPhoton.cxx:2664
 AliAnaPhoton.cxx:2665
 AliAnaPhoton.cxx:2666
 AliAnaPhoton.cxx:2667
 AliAnaPhoton.cxx:2668
 AliAnaPhoton.cxx:2669
 AliAnaPhoton.cxx:2670
 AliAnaPhoton.cxx:2671
 AliAnaPhoton.cxx:2672
 AliAnaPhoton.cxx:2673
 AliAnaPhoton.cxx:2674
 AliAnaPhoton.cxx:2675
 AliAnaPhoton.cxx:2676
 AliAnaPhoton.cxx:2677
 AliAnaPhoton.cxx:2678
 AliAnaPhoton.cxx:2679
 AliAnaPhoton.cxx:2680
 AliAnaPhoton.cxx:2681
 AliAnaPhoton.cxx:2682
 AliAnaPhoton.cxx:2683
 AliAnaPhoton.cxx:2684
 AliAnaPhoton.cxx:2685
 AliAnaPhoton.cxx:2686
 AliAnaPhoton.cxx:2687
 AliAnaPhoton.cxx:2688
 AliAnaPhoton.cxx:2689
 AliAnaPhoton.cxx:2690
 AliAnaPhoton.cxx:2691
 AliAnaPhoton.cxx:2692
 AliAnaPhoton.cxx:2693
 AliAnaPhoton.cxx:2694
 AliAnaPhoton.cxx:2695
 AliAnaPhoton.cxx:2696