ROOT logo
#ifndef ALIANAPI0EBE_H
#define ALIANAPI0EBE_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice     */

//_________________________________________________________________________
//
// Class for the analysis of high pT pi0 event by event
// Pi0/Eta identified by one of the following:
//  -Invariant mass of 2 cluster in calorimeter
//  -Shower shape analysis in calorimeter
//  -Invariant mass of one cluster in calorimeter and one photon reconstructed in TPC (in near future)
//
//-- Author: Gustavo Conesa (INFN-LNF)  &  Raphaelle Ichou (SUBATECH)
//_________________________________________________________________________


// --- ROOT system ---
class TList ;
class TObjString;

// --- ANALYSIS system ---
#include "AliAnaCaloTrackCorrBaseClass.h"

class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass {

 public: 
  AliAnaPi0EbE() ; // default ctor
  virtual ~AliAnaPi0EbE() { ; } //virtual dtor
	  
  TObjString *   GetAnalysisCuts();
  
  TList      *   GetCreateOutputObjects();
  
  Int_t          GetMCIndex(Int_t aodTag);
  
  void           Init();
  
  void           InitParameters();

  void           MakeAnalysisFillAOD()  ;
   
  void           MakeAnalysisFillHistograms() ; 
  
  void           Print(const Option_t * opt) const;
  
  // Main
  
  void           FillEMCALBCHistograms(Float_t energy, Float_t eta, Float_t phi, Float_t time);
  
  void           FillPileUpHistograms(Float_t pt, Float_t time, AliVCluster * c) ;
  
  void           FillRejectedClusterHistograms(Int_t mctag, Int_t nMaxima);
  
  void           FillSelectedClusterHistograms(AliVCluster* cluster, Float_t pt,
                                               Int_t nLocMax,        Int_t tag,
                                               Float_t asy = 0);
    
  void           FillWeightHistograms(AliVCluster *clus);
    
  void           HasPairSameMCMother(Int_t label1 , Int_t label2,
                                     Int_t tag1   , Int_t tag2,
                                     Int_t & label, Int_t & tag);
  
  void           MakeInvMassInCalorimeter() ;
  
  void           MakeInvMassInCalorimeterAndCTS() ;
  
  void           MakeShowerShapeIdentification() ;
          
  //Setters Getters
  
  //Analysis types
  enum anaTypes  {kIMCalo, kSSCalo, kIMCaloTracks};  
  anaTypes       GetAnalysisType()                     const { return fAnaType                 ; }
  void           SetAnalysisType(anaTypes ana)               { fAnaType = ana                  ; }
  
  TString        GetInputAODGammaConvName()            const { return fInputAODGammaConvName   ; }
  void           SetInputAODGammaConvName(TString name)      { fInputAODGammaConvName = name   ; }	
  
  //Only for pi0 SS identification case
  
  void           SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) {
                  fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3                                ; }
  
  void           SetNLMCut(Int_t min, Int_t max)             { fNLMCutMin = min; 
                                                               fNLMCutMax = max                ; }
  Int_t          GetNLMCutMin()                        const { return fNLMCutMin               ; }
  Int_t          GetNLMCutMax()                        const { return fNLMCutMax               ; }	
  
  void           SetNLMMinEnergy(Int_t i, Float_t min)       { if (i < 3 && i >=0 ) fNLMECutMin[i]  = min   ; }
  Float_t        GetNLMMinEnergy(Int_t i) const              { if( i < 3 && i >=0 ) return fNLMECutMin[i]   ;  else return 0 ; }

  void           SetTimeCut(Double_t min, Double_t max)      { fTimeCutMin = min;
                                                               fTimeCutMax = max               ; }
  Double_t       GetTimeCutMin()                       const { return fTimeCutMin              ; }
  Double_t       GetTimeCutMax()                       const { return fTimeCutMax              ; }
 
  Bool_t         IsTrackMatchRejectionOn()             const { return fRejectTrackMatch        ; }
  void           SwitchOnTrackMatchRejection()               { fRejectTrackMatch      = kTRUE  ; }
  void           SwitchOffTrackMatchRejection()              { fRejectTrackMatch      = kFALSE ; }
    
  void           SwitchOnFillWeightHistograms()              { fFillWeightHistograms  = kTRUE  ; }
  void           SwitchOffFillWeightHistograms()             { fFillWeightHistograms  = kFALSE ; }  
  
  void           SwitchOnTMHistoFill()                       { fFillTMHisto           = kTRUE  ; }
  void           SwitchOffTMHistoFill()                      { fFillTMHisto           = kFALSE ; }

  void           SwitchOnSelectedClusterHistoFill()          { fFillSelectClHisto     = kTRUE  ; }
  void           SwitchOffSelectedClusterHistoFill()         { fFillSelectClHisto     = kFALSE ; }
  
  void           SwitchOnOnlySimpleSSHistoFill()             { fFillOnlySimpleSSHisto = kTRUE  ; }
  void           SwitchOffOnlySimpleHistoFill()              { fFillOnlySimpleSSHisto = kFALSE ; }

  void           SwitchOnFillEMCALBCHistograms()             { fFillEMCALBCHistograms = kTRUE  ; }
  void           SwitchOffFillEMCALBCHistograms()            { fFillEMCALBCHistograms = kFALSE ; }
  
  void           SwitchOnSplitClusterDistToBad()             { fCheckSplitDistToBad   = kTRUE  ; }
  void           SwitchOffSplitClusterDistToBad()            { fCheckSplitDistToBad   = kFALSE ; }
  
  void           SwitchOnAllNLMHistoFill()                   { fFillAllNLMHistograms   = kTRUE ; }
  void           SwitchOffAllNLMHistoFill()                  { fFillAllNLMHistograms   = kFALSE; }

  void           SwitchOnSelectIsolatedDecay()               { fSelectIsolatedDecay    = kTRUE ; }
  void           SwitchOffSelectIsolatedDecay()              { fSelectIsolatedDecay    = kFALSE; }

  void           SwitchOnSelectPairInIsolationCone()         { fSelectPairInIsoCone    = kTRUE ; }
  void           SwitchOffSelectPairInIsolationCone()        { fSelectPairInIsoCone    = kFALSE; }

  void           SetR(Float_t r)                             { fR = r                          ; }
  void           SetIsolationCandidateMinPt(Float_t min)     { fIsoCandMinPt = min             ; }

  
  //For histograms
  enum mcTypes   { kmcPi0      = 0, kmcEta      = 1, kmcPhoton           = 2,
                   kmcPi0Decay = 3, kmcEtaDecay = 4, kmcOtherDecay       = 5,
                   kmcElectron = 6, kmcHadron   = 7                          } ;
  
  static const Int_t fgkNmcTypes = 8;
  
 private:
  
  anaTypes       fAnaType;                 // Select analysis type
    
  //Only for pi0 SS identification case, kSSCalo
  Float_t        fMinDist ;                // Minimal distance to bad channel to accept cluster
  Float_t        fMinDist2;                // Cuts on Minimal distance to study acceptance evaluation
  Float_t        fMinDist3;                // One more cut on distance used for acceptance-efficiency study
  Int_t          fNLMCutMin  ;             // Remove clusters/cells with number of local maxima smaller than this value
  Int_t          fNLMCutMax  ;             // Remove clusters/cells with number of local maxima larger than this value
  Float_t        fNLMECutMin[3] ;          // Minimum energy of the cluster, depending on nlm.
  Double_t       fTimeCutMin  ;            // Remove clusters/cells with time smaller than this value, in ns
  Double_t       fTimeCutMax  ;            // Remove clusters/cells with time larger than this value, in ns
  Bool_t         fRejectTrackMatch ;       // Remove clusters which have an associated TPC track
  Bool_t         fSelectIsolatedDecay;     // Select pairs where at least one is declared isolated (run first AliAnaParticleIsolation)
  Bool_t         fCheckSplitDistToBad;     // Check the distance to bad channel and to EMCal borders of split clusters

  Bool_t         fSelectPairInIsoCone;     // Select pair in IsoCone
  Float_t        fR;                       // isolation cone
  Float_t        fIsoCandMinPt;            // isolation candidate min pT
  
  Bool_t         fFillWeightHistograms ;   // Fill weigth histograms
  Bool_t         fFillTMHisto;             // Fill track matching plots
  Bool_t         fFillSelectClHisto;       // Fill selected cluster histograms
  Bool_t         fFillOnlySimpleSSHisto;   // Fill selected cluster histograms, selected SS histograms
  Bool_t         fFillEMCALBCHistograms;   // Fill eta-phi BC dependent histograms
  Bool_t         fFillAllNLMHistograms;    // Fill all NLM dependent histograms

  //Only for combination of calorimeter and conversion photons, kIMCaloTracks
  TString        fInputAODGammaConvName;   //  Name of AOD branch with conversion photons
  
  TLorentzVector fMomentum;                //! cluster/pi0 momentum
  TLorentzVector fMomentum1;               //! cluster/photon momentum
  TLorentzVector fMomentum2;               //! cluster/photon momentum
  TLorentzVector fMomentum12;              //! cluster/pi0 momentum, sum 1+2
  TLorentzVector fPrimaryMom;              //! primary momentum
  TLorentzVector fGrandMotherMom;          //! primary momentum

  //Histograms
  
  TH1F         * fhPt  ;                   //! Number of identified  pi0/eta vs pT
  TH1F         * fhE   ;                   //! Number of identified  pi0/eta vs E
  TH2F         * fhPtEta  ;                //! Pt vs eta of identified  pi0/eta
  TH2F         * fhPtPhi  ;                //! Pt vs phi of identified  pi0/eta
  TH2F         * fhEtaPhi  ;               //! eta vs phi of identified  pi0/eta
  TH2F         * fhEtaPhiEMCALBC0  ;       //! Pseudorapidity vs Phi of clusters 
  TH2F         * fhEtaPhiEMCALBC1  ;       //! Pseudorapidity vs Phi of clusters 
  TH2F         * fhEtaPhiEMCALBCN  ;       //! Pseudorapidity vs Phi of clusters 

  TH2F         * fhEtaPhiTriggerEMCALBC[11]  ;    //! Pseudorapidity vs Phi of pi0 for E > 2
  TH2F         * fhTimeTriggerEMCALBC  [11]  ;    //! Time distribution of pi0, when trigger is in a given BC
  TH2F         * fhTimeTriggerEMCALBCPileUpSPD[11] ; //! Time distribution of pi0, when trigger is in a given BC, tagged as pile-up SPD
  TH2F         * fhEtaPhiTriggerEMCALBCUM[11]  ;  //! Pseudorapidity vs Phi of pi0 for E > 2, not matched to trigger
  TH2F         * fhTimeTriggerEMCALBCUM[11]  ;    //! Time distribution of pi0, when trigger is in a given BC, not matched to trigger

  TH2F         * fhTimeTriggerEMCALBC0UMReMatchOpenTime   ; //! Time distribution of pi0s in event, when trigger is not found, rematched open time trigger
  TH2F         * fhTimeTriggerEMCALBC0UMReMatchCheckNeigh ; //! Time distribution of pi0s in event, when trigger is not found, rematched with neigbour patchs
  TH2F         * fhTimeTriggerEMCALBC0UMReMatchBoth       ; //! Time distribution of pi0s in event, when trigger is not found, rematched open both

  TH2F         * fhPtCentrality ;          //! centrality  vs pi0/eta pT
  TH2F         * fhPtEventPlane ;          //! event plane vs pi0/eta pT
  TH2F         * fhMCPtCentrality[fgkNmcTypes]; //! centrality  vs pi0/eta pT  coming from X

  TH1F         * fhPtReject  ;             //! Number of rejected as  pi0/eta vs pT
  TH1F         * fhEReject   ;             //! Number of rejected as  pi0/eta vs E
  TH2F         * fhPtEtaReject  ;          //! pT vs eta of rejected as  pi0/eta
  TH2F         * fhPtPhiReject  ;          //! pT vs phi of rejected as  pi0/eta
  TH2F         * fhEtaPhiReject  ;         //! eta vs phi of rejected as  pi0/eta 
  
  TH2F         * fhMass  ;                 //! pair mass vs E, for all pairs
  TH2F         * fhMassPt  ;               //! pair mass vs pT, for all pairs
  TH2F         * fhMassSplitPt  ;          //! pair mass vs pT (split), for all pairs
  TH2F         * fhSelectedMass  ;         //! pair mass vs E, for selected pairs
  TH2F         * fhSelectedMassPt  ;       //! pair mass vs pT, for selected pairs
  TH2F         * fhSelectedMassSplitPt  ;  //! pair mass vs pT (split), for selected pairs
  
  TH2F         * fhMassPtIsoRCut  ;        //! pair mass vs pT, for all pairs when opening angle not larger than iso cone radius

  TH2F         * fhMassPtLocMax[3] ;             //! pair mass vs pT, for all pairs, for each NLM case
  TH2F         * fhSelectedMassPtLocMax[3] ;     //! pair mass vs pT, for selected pairs, for each NLM case
  TH2F         * fhSelectedMassPtLocMaxSM[3][22];//! pair mass vs pT, for selected pairs, for each NLM case, for each SM
  TH2F         * fhMCSelectedMassPtLocMax[fgkNmcTypes][3] ;//! pair mass vs pT, for selected pairs, vs originating particle

  TH2F         * fhSelectedLambda0PtLocMaxSM[3][22];//! pair mass vs pT, for selected pairs, for each NLM case, for each SM

  TH2F         * fhMassNoOverlap  ;                 //! pair mass vs E, for all pairs, no overlap
  TH2F         * fhMassPtNoOverlap  ;               //! pair mass vs pT, for all pairs, no overlap
  TH2F         * fhMassSplitPtNoOverlap  ;          //! pair mass vs pT (split), for all pairs, no overlap
  TH2F         * fhSelectedMassNoOverlap  ;         //! pair mass vs E, for selected pairs, no overlap
  TH2F         * fhSelectedMassPtNoOverlap  ;       //! pair mass vs pT, for selected pairs, no overlap
  TH2F         * fhSelectedMassSplitPtNoOverlap  ;  //! pair mass vs pT (split), for selected pairs, no overlap

  TH2F         * fhMCPi0PtRecoPtPrim;                  //! pt reco vs pt prim for pi0 mother
  TH2F         * fhMCEtaPtRecoPtPrim;                  //! pt reco vs pt prim for eta mother
  TH2F         * fhMCPi0PtRecoPtPrimNoOverlap;         //! pt reco vs pt prim for pi0 mother
  TH2F         * fhMCEtaPtRecoPtPrimNoOverlap;         //! pt reco vs pt prim for eta mother

  TH2F         * fhMCPi0SplitPtRecoPtPrim;             //! pt split reco vs pt prim for pi0 mother
  TH2F         * fhMCEtaSplitPtRecoPtPrim;             //! pt split reco vs pt prim for eta mother
  TH2F         * fhMCPi0SplitPtRecoPtPrimNoOverlap;    //! pt split reco vs pt prim for pi0 mother
  TH2F         * fhMCEtaSplitPtRecoPtPrimNoOverlap;    //! pt split reco vs pt prim for eta mother

  TH2F         * fhMCPi0SelectedPtRecoPtPrim;          //! pt reco vs pt prim for pi0 mother
  TH2F         * fhMCEtaSelectedPtRecoPtPrim;          //! pt reco vs pt prim for eta mother
  TH2F         * fhMCPi0SelectedPtRecoPtPrimNoOverlap; //! pt reco vs pt prim for pi0 mother
  TH2F         * fhMCEtaSelectedPtRecoPtPrimNoOverlap; //! pt reco vs pt prim for eta mother
  
  TH2F         * fhMCPi0SelectedSplitPtRecoPtPrim;          //! pt split reco vs pt prim for pi0 mother
  TH2F         * fhMCEtaSelectedSplitPtRecoPtPrim;          //! pt split reco vs pt prim for eta mother
  TH2F         * fhMCPi0SelectedSplitPtRecoPtPrimNoOverlap; //! pt split reco vs pt prim for pi0 mother
  TH2F         * fhMCEtaSelectedSplitPtRecoPtPrimNoOverlap; //! pt split reco vs pt prim for eta mother
  
  TH2F         * fhMCPi0PtRecoPtPrimLocMax[3];              //! pt reco vs pt prim for pi0 mother, vs NLM
  TH2F         * fhMCEtaPtRecoPtPrimLocMax[3];              //! pt reco vs pt prim for eta mother, vs NLM
  TH2F         * fhMCPi0SplitPtRecoPtPrimLocMax[3];         //! pt split reco vs pt prim for pi0 mother, vs NLM
  TH2F         * fhMCEtaSplitPtRecoPtPrimLocMax[3];         //! pt split reco vs pt prim for eta mother, vs NLM
 
  TH2F         * fhMCPi0SelectedPtRecoPtPrimLocMax[3];      //! pt reco vs pt prim for pi0 mother, vs NLM
  TH2F         * fhMCEtaSelectedPtRecoPtPrimLocMax[3];      //! pt reco vs pt prim for eta mother, vs NLM
  TH2F         * fhMCPi0SelectedSplitPtRecoPtPrimLocMax[3]; //! pt split reco vs pt prim for pi0 mother, vs NLM
  TH2F         * fhMCEtaSelectedSplitPtRecoPtPrimLocMax[3]; //! pt split reco vs pt prim for eta mother, vs NLM

  TH2F         * fhAsymmetry ;             //! cluster pT vs asymmetry of 2 splitted clusters
  TH2F         * fhSelectedAsymmetry  ;    //! cluster pT vs asymmetry of 2 splitted clusters, for selected pairs
  TH1F         * fhSplitE  ;               //! split sub-cluster pair energy sum
  TH1F         * fhSplitPt  ;              //! split sub-cluster pair pT sum
  TH2F         * fhSplitPtEta  ;           //! split sub-cluster pair pT sum vs eta
  TH2F         * fhSplitPtPhi  ;           //! split sub-cluster pair pT sum vs phi
  TH2F         * fhNLocMaxSplitPt  ;       //! split sub-cluster pair pT sum, as a function of n maxima
  
  TH1F         * fhPtDecay  ;              //! Number of identified  pi0/eta decay photons vs pT
  
  TH2F         * fhPtDispersion ;           //! pT vs disp of selected cluster
  TH2F         * fhPtLambda0 ;              //! pT vs lambda0 of selected cluster
  TH2F         * fhPtLambda0NoSplitCut ;    //! pT vs lambda0 of cluster before the split selection.
  TH2F         * fhPtLambda1 ;              //! pT vs lambda1 of selected cluster
  TH2F         * fhPtLambda0NoTRD ;         //! pT vs lambda0 of selected cluster, not behind TRD 
  TH2F         * fhPtLambda0FracMaxCellCut ;//! pT vs lambda0 of selected cluster, fraction of cluster energy in max cell cut 
  TH2F         * fhPtFracMaxCell ;          //! pT vs frac max cell of selected cluster 
  TH2F         * fhPtFracMaxCellNoTRD ;     //! pT vs frac max cell of selected cluster, not behind TRD  
  TH2F         * fhPtNCells;                //! pT vs N cells in selected cluster
  TH2F         * fhPtTime;                  //! pT vs Time of selected cluster 
  TH2F         * fhEPairDiffTime;           //! E pair vs Pair of clusters time difference vs E
  
  TH2F         * fhPtDispEta ;              //! shower dispersion in eta direction
  TH2F         * fhPtDispPhi ;              //! shower dispersion in phi direction
  TH2F         * fhLambda0DispEta[7] ;      //! shower shape correlation l0 vs disp eta
  TH2F         * fhLambda0DispPhi[7] ;      //! shower shape correlation l0 vs disp phi
  TH2F         * fhPtSumEta ;               //! shower dispersion in eta direction
  TH2F         * fhPtSumPhi ;               //! shower dispersion in phi direction
  TH2F         * fhPtSumEtaPhi ;            //! shower dispersion in eta and phi direction
  TH2F         * fhPtDispEtaPhiDiff ;       //! shower dispersion eta - phi
  TH2F         * fhPtSphericity ;           //! shower sphericity in eta vs phi
  TH2F         * fhDispEtaDispPhi[7] ;      //! shower dispersion in eta direction vs phi direction for 5 E bins [0-2],[2-4],[4-6],[6-10],[> 10]
  TH2F         * fhAsymmetryLambda0[7] ;    //! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
  TH2F         * fhAsymmetryDispEta[7] ;    //! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
  TH2F         * fhAsymmetryDispPhi[7] ;    //! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins

  //MC histograms
  
  TH1F         * fhMCPtDecay            [fgkNmcTypes]; //! pT from MC particle
  TH1F         * fhMCPtDecayLostPairPi0;               //! pT for tagged clustres when MC Pi0 Decay, when companion is lost
  TH1F         * fhMCPtDecayLostPairEta;               //! pT for tagged clustres when MC Eta Decay, when companion is lost
  TH2F         * fhMCPtLambda0          [fgkNmcTypes]; //! pT vs lambda0 of pi0 pairs but really from MC particle
  TH2F         * fhMCPtLambda1          [fgkNmcTypes]; //! pT vs lambda1 of pi0 pairs but really from MC particle
  TH2F         * fhMCPtDispersion       [fgkNmcTypes]; //! pT vs dispersion of pi0 pairs but really from MC particle
  TH2F         * fhMCPtLambda0NoTRD     [fgkNmcTypes]; //! pT vs lambda0 of pi0 pairs but really from MC particle, not behind TRD
  TH2F         * fhMCPtLambda0FracMaxCellCut[fgkNmcTypes]; //! pT vs lambda0 of pi0 pairs but really from MC particle, fraction of cluster energy in max cell cut
  TH2F         * fhMCPtFracMaxCell      [fgkNmcTypes]; //! pT vs fraction of max cell
  TH2F         * fhMCPtDispEta          [fgkNmcTypes]; //! shower dispersion in eta direction
  TH2F         * fhMCPtDispPhi          [fgkNmcTypes]; //! shower dispersion in phi direction
  TH2F         * fhMCLambda0DispEta  [7][fgkNmcTypes]; //! shower shape correlation l0 vs disp eta
  TH2F         * fhMCLambda0DispPhi  [7][fgkNmcTypes]; //! shower shape correlation l0 vs disp phi
  TH2F         * fhMCPtSumEtaPhi        [fgkNmcTypes]; //! shower dispersion in eta vs phi direction
  TH2F         * fhMCPtDispEtaPhiDiff   [fgkNmcTypes]; //! shower dispersion in eta -phi direction
  TH2F         * fhMCPtSphericity       [fgkNmcTypes]; //! shower sphericity, eta vs phi
  TH2F         * fhMCDispEtaDispPhi  [7][fgkNmcTypes]; //! shower dispersion in eta direction vs phi direction for 5 E bins [0-2],[2-4],[4-6],[6-10],[> 10]
  TH2F         * fhMCPtAsymmetry        [fgkNmcTypes]; //! E asymmetry of 2 splitted clusters vs cluster pT
  TH2F         * fhMCAsymmetryLambda0[7][fgkNmcTypes]; //! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
  TH2F         * fhMCAsymmetryDispEta[7][fgkNmcTypes]; //! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
  TH2F         * fhMCAsymmetryDispPhi[7][fgkNmcTypes]; //! E asymmetry of 2 splitted clusters vs lam0 for 5 E bins
  
  TH1F         * fhMCE                  [fgkNmcTypes]; //! Number of identified as pi0 vs E coming from X
  TH1F         * fhMCPt                 [fgkNmcTypes]; //! Number of identified as pi0 vs Pt coming from X
  TH2F         * fhMCPtPhi              [fgkNmcTypes]; //! pt vs phi of identified as pi0, coming from X
  TH2F         * fhMCPtEta              [fgkNmcTypes]; //! pt vs eta of identified as pi0, coming from X
  TH1F         * fhMCEReject            [fgkNmcTypes]; //! Number of rejected as pi0 vs E coming from X
  TH1F         * fhMCPtReject           [fgkNmcTypes]; //! Number of rejected as pi0 vs Pt coming from X

  TH1F         * fhMCSplitE             [fgkNmcTypes]; //! Number of identified as pi0 vs sum E  split coming from X
  TH1F         * fhMCSplitPt            [fgkNmcTypes]; //! Number of identified as pi0 vs sum Pt split coming from X
  TH2F         * fhMCSplitPtPhi         [fgkNmcTypes]; //! pt vs phi of identified as pi0, coming from X
  TH2F         * fhMCSplitPtEta         [fgkNmcTypes]; //! pt vs eta of identified as pi0, coming from X
  TH2F         * fhMCNLocMaxSplitPt     [fgkNmcTypes]; //! Number of identified as pi0 vs sum Pt split coming from X, for different NLM
  
  TH2F         * fhMCMassPt             [fgkNmcTypes]; //! pair pT vs Mass coming from X
  TH2F         * fhMCMassSplitPt        [fgkNmcTypes]; //! pair pT (split) vs Mass coming from X
  TH2F         * fhMCSelectedMassPt     [fgkNmcTypes]; //! selected pair pT vs Mass coming from X
  TH2F         * fhMCSelectedMassSplitPt[fgkNmcTypes]; //! selected pair pT (split) vs Mass coming from X

  TH2F         * fhMCMassPtNoOverlap             [fgkNmcTypes]; //! pair pT vs Mass coming from X, no random particles overlap
  TH2F         * fhMCMassSplitPtNoOverlap        [fgkNmcTypes]; //! pair pT (split) vs Mass coming from X, no random particles overlap
  TH2F         * fhMCSelectedMassPtNoOverlap     [fgkNmcTypes]; //! selected pair pT vs Mass coming from X, no random particles overlap
  TH2F         * fhMCSelectedMassSplitPtNoOverlap[fgkNmcTypes]; //! selected pair pT (split) vs Mass coming from X, no random particles overlap
  
  TH2F         * fhMCPi0PtGenRecoFraction;    //! SS id, clusters id as pi0 (eta), coming from 2 photon, pi0 primary, pt vs E prim pi0 / E reco
  TH2F         * fhMCEtaPtGenRecoFraction;    //! SS id, clusters id as pi0 (eta), coming from 2 photon, eta primary, pt vs E prim eta / E reco  
  TH1F         * fhMCPi0DecayPt;              //! SS id, clusters id as pi0 (eta), coming from 1 photon, pi0 decay primary, pt
  TH2F         * fhMCPi0DecayPtFraction;      //! SS id, clusters id as pi0 (eta), coming from 1 photon, pi0 decay primary, pt vs pt decay / pt mother
  TH1F         * fhMCEtaDecayPt;              //! SS id, clusters id as pi0 (eta), coming from 1 photon, eta decay primary, pt
  TH2F         * fhMCEtaDecayPtFraction;      //! SS id, clusters id as pi0 (eta), coming from 1 photon, eta decay primary, pt vs pt decay / pt mother  
  TH1F         * fhMCOtherDecayPt;            //! SS id, clusters id as pi0 (eta), coming from 1 photon, other decay primary, pt

  TH2F         * fhMassPairMCPi0;             //! pair mass, origin is same pi0
  TH2F         * fhMassPairMCEta;             //! pair mass, origin is same eta
  TH2F         * fhAnglePairMCPi0;            //! pair opening angle, origin is same pi0
  TH2F         * fhAnglePairMCEta;            //! pair opening angle, origin is same eta
  
  TH2F         * fhMCPi0PtOrigin ;            //! Mass of reoconstructed pi0 pairs  in calorimeter vs mother
  TH2F         * fhMCEtaPtOrigin ;            //! Mass of reoconstructed pi0 pairs  in calorimeter vs mother
  TH2F         * fhMCPi0ProdVertex;           //! Spectrum of selected pi0 vs production vertex
  TH2F         * fhMCEtaProdVertex;           //! Spectrum of selected eta vs production vertex
  
  // Weight studies
  
  TH2F         * fhECellClusterRatio;         //! e cell / e cluster vs e cluster for selected photons
  TH2F         * fhECellClusterLogRatio;      //! log (e cell / e cluster)  vs e cluster for selected photons
  TH2F         * fhEMaxCellClusterRatio;      //! e max cell / e cluster vs e cluster for selected photons
  TH2F         * fhEMaxCellClusterLogRatio;   //! log (e max cell / e cluster) vs e cluster for selected photons
  TH2F         * fhLambda0ForW0[14];          //! L0 for 7 defined w0= 3, 3.5 ... 6 for selected photons
  //TH2F         * fhLambda1ForW0[7];         //! L1 for 7 defined w0= 3, 3.5 ... 6 for selected photons
  
  // Track Matching
  TH2F         * fhTrackMatchedDEta     ;     //! Eta distance between track and cluster vs cluster E
  TH2F         * fhTrackMatchedDPhi     ;     //! Phi distance between track and cluster vs cluster E
  TH2F         * fhTrackMatchedDEtaDPhi ;     //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
  TH2F         * fhTrackMatchedDEtaPos  ;     //! Eta distance between track and cluster vs cluster E
  TH2F         * fhTrackMatchedDPhiPos  ;     //! Phi distance between track and cluster vs cluster E
  TH2F         * fhTrackMatchedDEtaDPhiPos ;  //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
  TH2F         * fhTrackMatchedDEtaNeg  ;     //! Eta distance between track and cluster vs cluster E
  TH2F         * fhTrackMatchedDPhiNeg  ;     //! Phi distance between track and cluster vs cluster E
  TH2F         * fhTrackMatchedDEtaDPhiNeg ;  //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
  
  TH2F         * fhTrackMatchedMCParticlePt;  //! Trace origin of matched particle, energy
  TH2F         * fhTrackMatchedMCParticleDEta;//! Trace origin of matched particle, eta residual
  TH2F         * fhTrackMatchedMCParticleDPhi;//! Trace origin of matched particle, phi residual
  TH2F         * fhdEdx  ;                    //! matched track dEdx vs cluster E
  TH2F         * fhEOverP;                    //! matched track E cluster over P track vs cluster E
  TH2F         * fhEOverPNoTRD;               //! matched track E cluster over P track vs cluster E, not behind TRD

  // Local maxima
  TH2F         * fhNLocMaxPt;                 //! number of maxima in selected clusters
  TH2F         * fhNLocMaxPtSM[22] ;          //! number of maxima in selected clusters, per super module
  TH2F         * fhMCNLocMaxPt[fgkNmcTypes];            //! number of maxima in selected clusters, vs originating particle
  TH2F         * fhPtLambda0LocMax[3] ;       //! pT vs lambda0 of selected cluster, 1,2,>2 local maxima in cluster
  TH2F         * fhMCPtLambda0LocMax[fgkNmcTypes][3] ;  //! pT vs lambda0 of selected cluster, 1,2,>2 local maxima in cluster, vs originating particle
  TH2F         * fhPtLambda1LocMax[3] ;       //! pT vs lambda1 of selected cluster, 1,2,>2 local maxima in cluster
  TH2F         * fhPtDispersionLocMax[3] ;    //! pT vs lambda1 of selected cluster, 1,2,>2 local maxima in cluster
  TH2F         * fhPtDispEtaLocMax[3] ;       //! pT vs eta dispersion of selected cluster, 1,2,>2 local maxima in cluster
  TH2F         * fhPtDispPhiLocMax[3] ;       //! pT vs phi dispersion of selected cluster, 1,2,>2 local maxima in cluster
  TH2F         * fhPtSumEtaPhiLocMax[3] ;     //! pT vs dispersion in eta and phi direction
  TH2F         * fhPtDispEtaPhiDiffLocMax[3]; //! pT vs dispersion eta - phi
  TH2F         * fhPtSphericityLocMax[3] ;    //! pT vs sphericity in eta vs phi
  TH2F         * fhPtAsymmetryLocMax[3] ;     //! E asymmetry of 2 splitted clusters vs cluster E for different NLM

  TH2F         * fhMassPairLocMax[8];         //! pair mass, origin is same pi0, combine clusters depending on number of maxima
  
  TH2F         * fhNLocMaxPtReject;           //! number of maxima in selected clusters
  TH2F         * fhMCNLocMaxPtReject[fgkNmcTypes];      //! number of maxima in selected clusters
  
  // Pile-up
  TH1F         * fhPtPileUp[7];                   //! pT distribution of selected pi0/eta
  TH2F         * fhPtCellTimePileUp[7];           //! pT vs Time inside cluster, before any selection, not max cell
  TH2F         * fhPtTimeDiffPileUp[7];           //! pT vs Time difference inside cluster, before any selection
  TH2F         * fhTimePtNoCut;                   //! time of cluster vs pT, no cut
  TH2F         * fhTimePtSPD;                     //! time of cluster vs pT, IsSPDPileUp
  TH2F         * fhTimePtSPDMulti;                //! time of cluster vs pT, IsSPDPileUpMulti
  TH2F         * fhTimeNPileUpVertSPD;            //! time of cluster vs n pile-up vertices from SPD
  TH2F         * fhTimeNPileUpVertTrack;          //! time of cluster vs n pile-up vertices from Tracks
  TH2F         * fhTimeNPileUpVertContributors;   //! time of cluster vs n pile-up vertex from SPD contributors
  TH2F         * fhTimePileUpMainVertexZDistance; //! time of cluster vs difference of z main vertex and pile-up vertex 
  TH2F         * fhTimePileUpMainVertexZDiamond;  //! time of cluster vs difference of z diamond and pile-up vertex 
  
  TH2F         * fhPtNPileUpSPDVtx;	              //! cluster pt vs number of spd pile-up vertices
  TH2F         * fhPtNPileUpTrkVtx;               //! cluster pt vs number of track pile-up vertices
  TH2F         * fhPtNPileUpSPDVtxTimeCut;	      //! cluster pt vs number of spd pile-up vertices, time cut +-25 ns
  TH2F         * fhPtNPileUpTrkVtxTimeCut;        //! cluster pt vs number of track pile-up vertices, time cut +- 25 ns 		
  TH2F         * fhPtNPileUpSPDVtxTimeCut2;	      //! cluster pt vs number of spd pile-up vertices, time cut +-75 ns
  TH2F         * fhPtNPileUpTrkVtxTimeCut2;       //! cluster pt vs number of track pile-up vertices, time cut +- 75 ns
  
  AliAnaPi0EbE(              const AliAnaPi0EbE & pi0ebe) ; // cpy ctor
  AliAnaPi0EbE & operator = (const AliAnaPi0EbE & pi0ebe) ; // cpy assignment
  
  ClassDef(AliAnaPi0EbE,42)
} ;


#endif //ALIANAPI0EBE_H



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