ROOT logo
#ifndef AliAnalysisTaskEMCALIsoPhoton_h
#define AliAnalysisTaskEMCALIsoPhoton_h

// $Id$

class TH1F;
class TH2F;
class TH3F;
class THnSparse;
class TList;
class TObjArray;
class AliEMCALGeometry;
class AliOADBContainer;
class AliESDCaloCells;
class AliESDEvent;
class AliESDtrack;
class AliESDtrackCuts;
class AliAODEvent;
class AliAODCaloCells;
class AliVCluster;
class AliMCEvent;
class AliStack;
class TParticle;
class AliAODMCParticle;
class TGeoHMatrix;

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
 public:
  AliAnalysisTaskEMCALIsoPhoton();
  AliAnalysisTaskEMCALIsoPhoton(const char *name);
  virtual ~AliAnalysisTaskEMCALIsoPhoton() {}

  void                   UserCreateOutputObjects();
  void                   UserExec(Option_t *option);
  void                   Terminate(Option_t *);

  void                   GetCeIso(TVector3 vec, Int_t maxid, Float_t &iso, Float_t &phiband, Float_t &core, Double_t EtCl);
  Double_t               GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax);
  Double_t               GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const; 
  void                   GetTrIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core);
  Double_t               GetTrackMatchedPt(Int_t matchIndex);
  void                   FillClusHists();
  void                   FillMcHists();
  void                   FillQA();
  Float_t                GetClusSource(const AliVCluster *cluster);
  void                   FollowGamma();
  void                   GetDaughtersInfo(int firstd, int lastd, int selfid, const char *indputindent);
  Float_t                GetMcPtSumInCone(Float_t etaclus, Float_t phiclus, Float_t R);
  void                   LoopOnCells();
  bool                   IsExotic(AliVCluster *c);
  void                   SetExotCut(Double_t c)                 { fExoticCut          = c;       }
  void                   SetGeoName(const char *n)              { fGeoName            = n;       }
  void                   SetIsoConeR(Double_t r)                { fIsoConeR           = r;       }
  void                   SetPeriod(const char *n)               { fPeriod             = n;       }
  void                   SetTriggerBit(const char *tb)          { fTrigBit            = tb;      }
  void                   SetPrimTrackCuts(AliESDtrackCuts *c)   { fPrTrCuts           = c;       }
  void                   SetComplTrackCuts(AliESDtrackCuts *c)  { fCompTrCuts         = c;       }
  void                   SetTrainMode(Bool_t t)                 { fIsTrain            = t;       }
  void                   SetMcMode(Bool_t mc)                   { fIsMc               = mc;      }
  void                   SetDebugOn(Bool_t d)                   { fDebug              = d;       }
  void                   SetPathStringSelect(char *p)           { fPathStrOpt         = p;       }
  void                   SetEtCut(Double_t ec)                  { fECut               = ec;      }
  void                   SetImportGeometryFromFile(Bool_t  im, 
                                           TString pa = "")     { fImportGeometryFromFile = im ; 
                                                                  fImportGeometryFilePath = pa ; }    
  void                  SetTrackFilterBit(ULong_t bit)          { fFilterBit = bit;  }
  void                  SetHybridOn()                           { fSelHybrid = kTRUE; }
  void                  SetFillQA()                             { fFillQA = kTRUE; }
  void                  SelectCPVFromTrack(Bool_t b)            { fCpvFromTrack = b; }
  void                  SetEtPtHistoBinning(Int_t n, 
					    Double_t lowx, 
					    Double_t highx)     { fNBinsPt = n; fPtBinLowEdge = lowx; fPtBinHighEdge = highx; }
  void                  SetRemoveMatchClus(Bool_t b)            { fRemMatchClus       = b;       }
  void                  SetMinIsoClusE(Double_t emin)           { fMinIsoClusE        = emin;    }
  void                  SetTrCoreRemoval(Bool_t b)              { fTrCoreRem          = b;       }
  void                  SetClusTDiff(Double_t diff)             { fClusTDiff          = diff;    }
  void                  SetPileUpRejSPD()                       { fPileUpRejSPD       = kTRUE;   }
  void                  SetDistanceToBadCh(Double_t d)          { fDistToBadChan      = d;       }
 protected:
  TObjArray             *fESDClusters;           //!pointer to EMCal clusters
  TObjArray             *fAODClusters;           //!pointer to EMCal clusters
  TObjArray             *fSelPrimTracks;         //!pointer to ESD primary tracks
  TClonesArray          *fTracks;                //!track input array
  TClonesArray          *fAODMCParticles;        //!MC particles array for AOD analysis
  AliESDCaloCells       *fESDCells;              //!pointer to EMCal cells, esd
  AliAODCaloCells       *fAODCells;              //!pointer to EMCal cells, aod  
  AliESDtrackCuts       *fPrTrCuts;              //pointer to hold the prim track cuts
  AliESDtrackCuts       *fCompTrCuts;            //pointer to hold complementary track cuts (a la Gustavo)
  AliEMCALGeometry      *fGeom;                  // geometry utils
  TString                fGeoName;               // geometry name (def = EMCAL_FIRSTYEARV1)
  AliOADBContainer      *fOADBContainer;         //!OADB container used to load misalignment matrices
  TVector3               fVecPv;                 // vector to hold the event's primary vertex
  TString                fPeriod;                // string to the LHC period
  TString                fTrigBit;               // string to the trigger bit name
  Bool_t                 fIsTrain;               // variable to set train mode
  Bool_t                 fIsMc;                  // variable to set mc mode
  Bool_t                 fDebug;                 // variable to set on/off debugging printouts
  TString                fPathStrOpt;            // variable to set the name of files to be analyzed (MC only)
  Double_t               fExoticCut;             // variable to set the cut on exotic clusters
  Double_t               fIsoConeR;              // variable to set the isolation cone radius
  Int_t                  fNDimensions;           // variable to set the number of dimensions of n-sparse
  Double_t               fECut;                  // variable to set the minimum E of a cluster
  Int_t                  fTrackMult;             // global variable with the event multiplicity        
  TString                fMcIdFamily;            // string that holds the ids of all particles originated from the prompt photon
  Int_t                  fNClusForDirPho;        // number of clusters from prompt photon per event
  Float_t                fDirPhoPt;              // prompt photon pt (assumes only one per event)
  Float_t                fHigherPtCone;          // higher pt inside the cone around the candidate
  Bool_t                 fImportGeometryFromFile;  // Import geometry settings in geometry.root file
  TString                fImportGeometryFilePath;  // path fo geometry.root file
  Double_t               fMaxPtTrack;            //track with highest pt in event
  Double_t               fMaxEClus;              //cluster with highest energy in event
  Int_t                  fNCells50;              // variable to keep the number of cells with E>50 MeV
  ULong_t                fFilterBit;             // Track selection bit, for AODs 
  Bool_t                 fSelHybrid;             // bool to select hybrid tracks
  Bool_t                 fFillQA;                // bool to fill the QA plots
  TString                fClusIdFromTracks;      // string to hold the list of cluster ids given by tracks
  Bool_t                 fCpvFromTrack;          // set the track-matching method to track->GetEMCALcluster()
  Int_t                  fNBinsPt;               // set the number of bins in axis of histograms filled with pt (or Et)
  Double_t               fPtBinLowEdge;          // low edge of the first pt (Et) bin
  Double_t               fPtBinHighEdge;         // high edge of the first pt (Et) bin
  Bool_t                 fRemMatchClus;          // flag to remove completely a cluster matched from the isolation
  Double_t               fMinIsoClusE;           // minimum energy for a cluster to be counted in the iso cone
  Int_t                  fNCuts;                 // number of cuts (QA purposes)
  Bool_t                 fTrCoreRem;             // flag to set the removal of the core in track isolation (true removes it, default)
  Double_t               fClusTDiff;             // variable to hold the time diff between the candidate cluster and the isolation clusters
  Bool_t                 fPileUpRejSPD;          // flag to set pile-up rejection via SPD (multiple vertices)
  Double_t               fDistToBadChan;         // distance to bad channel
  TString                fInConeInvMass;         // string to hold the array of inv. mass values of the candidate with isolation clusters
  TString                fInConePairClEt;        // string to hold the array of Et of paired clusters in the pi0 mass (isolation clusters pairs only)
  
 private:
  AliESDEvent *fESD;      //! ESD object
  AliAODEvent *fAOD;      //! AOD object
  AliVEvent   *fVEvent;   //! AliVEvent
  AliMCEvent  *fMCEvent;  //! MC event object
  AliStack    *fStack;    //!MC particles stack object
  TGeoHMatrix *fGeomMatrix[12];//! Geometry misalignment matrices for EMCal
  TList       *fOutputList; //! Output list
  //histograms for events with 1+ track pt>1
  TH1F        *fEvtSel;                    //!evt selection counter: 0=all trg, 1=pv cut 
  TH1F        *fNClusEt10;                 //!number of clusters w/ Et>10 in the event
  TH1F        *fClusArrayNames;            //!cluster array name for each analysed event (CaloClusters, EmcCaloClusters or Other)
  TH1F        *fRecoPV;                    //!histogram to record if an event has a prim. vert.
  TH1F        *fPVtxZ;                     //!primary vertex Z before cut
  TH1F        *fTrMultDist;                //!track multiplicity distribution
  TH2F        *fClusEtCPVSBGISO;           //!iso-all vs. clusters Et after CPV and 0.1<M02<0.3
  TH2F        *fClusEtCPVBGISO;            //!iso-all vs. clusters Et after CPV and 0.5<M02<2.0
  TH3F        *fMCDirPhotonPtEtaPhi;       //!direct produced photon pt, eta, phi
  TH3F        *fMCIsoDirPhotonPtEtaPhi;    //!direct produced photon pt, eta, phi, isolated @ mc level
  TH2F        *fMCDirPhotonPtEtIso;        //!direct produced photon pt and isolation pt @ mc level
  TH1F        *fDecayPhotonPtMC;           //!decay photon pt
  TH2F        *fCellAbsIdVsAmpl;           //!cell abs id vs cell amplitude (energy)
  TH2F        *fNClusHighClusE;            //!total number of clusters vs. highest clus energy in the event
  TH2F        *fHigherPtConeM02;           //!M02 vs. the higher pt of a track inside the cone
  TH2F        *fClusEtMcPt;                //!cluster et x mc-pt
  TH2F        *fClusMcDetaDphi;            //!delta-eta x delta-phi(reco-mc)
  TH2F        *fNClusPerPho;               //!delta-eta x delta-phi(reco-mc)
  TH2F        *fMcPtInConeBG;              //!sum of mc-pt of "primary" particles inside de cone, as a function of NET-ISO in BG template
  TH2F        *fMcPtInConeSBG;             //!sum of mc-pt of "primary" particles inside de cone, as a function of NET-ISO in SBG range
  TH2F        *fMcPtInConeBGnoUE;          //!sum of mc-pt of "primary" particles inside de cone, as a function of ISO in BG template no UE sub
  TH2F        *fMcPtInConeSBGnoUE;         //!sum of mc-pt of "primary" particles inside de cone, as a function of ISO in SBG range no UE sub
  TH2F        *fMcPtInConeTrBGnoUE;        //!sum of mc-pt of "primary" particles inside de cone, as a function of trk only ISO in BG template no UE sub
  TH2F        *fMcPtInConeTrSBGnoUE;       //!sum of mc-pt of "primary" particles inside de cone, as a function of trk only ISO in SBG range no UE sub
  TH2F        *fMcPtInConeMcPhoPt;         //!sum of mc-pt of "primary" particles inside de cone, as a function of prompt photon mc-pt
  TH2F        *fAllIsoEtMcGamma;           //!all iso distribution vs. Et clus for clusters comming from a MC prompt photon
  TH2F        *fAllIsoNoUeEtMcGamma;       //!all iso distribution (without UE subtraction) vs. Et clus for clusters comming from a MC prompt photon
  TH3F        *fMCDirPhotonPtEtaPhiNoClus; //!pt x eta x phi for prompt photons that didn't produce clusters
  TH3F        *fEtCandIsoAndIsoWoPairEt;   //!Candidate Et vs. isolation with and w/o the Et of the paired cluster in the pi0 mass, only for 0.1<M02<0.3 clusters
  TH2F        *fInConePairedClusEtVsCandEt;//!Et of the paired cluster (0.11<m<0.165 GeV) vs. candidate Et
  THnSparse   *fHnOutput;                  //!Output matrix with 7 dimensions

  //QA histos
  TList       *fQAList;           //!output list holding QA histos
  TH1F        *fNTracks;          //!number of tracks from Array->GetEntries()
  TH1F        *fEmcNCells;        //!number of emcal cells in the event
  TH1F        *fEmcNClus;         //!# of emcal clusters
  TH1F        *fEmcNClusCut;      //!# of clusters in an event with at least 1 clus with E > fECut ("triggered event")
  TH1F        *fNTracksECut;      //!number of tracks from Array->GetEntries() in "triggered event"
  TH1F        *fEmcNCellsCut;     //!number of emcal cells in a in "triggered event"
  TH1F        *fEmcClusETM1;      //!emcal track matched cluster energy (TracDx,z method)
  TH1F        *fEmcClusETM2;      //!emcal track matched cluster energy (track->GetEMCALcluster() method)
  TH1F        *fEmcClusNotExo;    //!cluster energy (exotics removed)
  TH2F        *fEmcClusEClusCuts; //!cluster E spectrum per cluster cut (none, exotic, exo+cpv1, exo+cpv1+time, exo+cpv1+time+m02)
  TH2F        *fEmcClusEPhi;      //!cluster E spectrum vs. phi
  TH2F        *fEmcClusEPhiCut;   //!cluster E spectrum vs. phi in "triggered event"
  TH2F        *fEmcClusEEta;      //!cluster E spectrum vs. eta
  TH2F        *fEmcClusEEtaCut;   //!cluster E spectrum vs. eta in "triggered event"
  TH2F        *fTrackPtPhi;       //!selected tracks pt vs. phi
  TH2F        *fTrackPtPhiCut;    //!selected tracks pt vs. phi in "triggered event"
  TH2F        *fTrackPtEta;       //!selected tracks pt vs. eta
  TH2F        *fTrackPtEtaCut;    //!selected tracks pt vs. eta in "triggered event"
  TH2F        *fMaxCellEPhi;      //!max cell energy vs. cell phi
  TH2F        *fDetaDphiFromTM;   //!dphi vs deta of track->GetEMCALcluster() clusters
  TH2F        *fEoverPvsE;        //!E/p for tracks with 80<TPCsignal<100 vs cluster E (check material)


  AliAnalysisTaskEMCALIsoPhoton(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
  AliAnalysisTaskEMCALIsoPhoton& operator=(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
  
  ClassDef(AliAnalysisTaskEMCALIsoPhoton, 1); // Class to analyse isolated photons
};
#endif
 AliAnalysisTaskEMCALIsoPhoton.h:1
 AliAnalysisTaskEMCALIsoPhoton.h:2
 AliAnalysisTaskEMCALIsoPhoton.h:3
 AliAnalysisTaskEMCALIsoPhoton.h:4
 AliAnalysisTaskEMCALIsoPhoton.h:5
 AliAnalysisTaskEMCALIsoPhoton.h:6
 AliAnalysisTaskEMCALIsoPhoton.h:7
 AliAnalysisTaskEMCALIsoPhoton.h:8
 AliAnalysisTaskEMCALIsoPhoton.h:9
 AliAnalysisTaskEMCALIsoPhoton.h:10
 AliAnalysisTaskEMCALIsoPhoton.h:11
 AliAnalysisTaskEMCALIsoPhoton.h:12
 AliAnalysisTaskEMCALIsoPhoton.h:13
 AliAnalysisTaskEMCALIsoPhoton.h:14
 AliAnalysisTaskEMCALIsoPhoton.h:15
 AliAnalysisTaskEMCALIsoPhoton.h:16
 AliAnalysisTaskEMCALIsoPhoton.h:17
 AliAnalysisTaskEMCALIsoPhoton.h:18
 AliAnalysisTaskEMCALIsoPhoton.h:19
 AliAnalysisTaskEMCALIsoPhoton.h:20
 AliAnalysisTaskEMCALIsoPhoton.h:21
 AliAnalysisTaskEMCALIsoPhoton.h:22
 AliAnalysisTaskEMCALIsoPhoton.h:23
 AliAnalysisTaskEMCALIsoPhoton.h:24
 AliAnalysisTaskEMCALIsoPhoton.h:25
 AliAnalysisTaskEMCALIsoPhoton.h:26
 AliAnalysisTaskEMCALIsoPhoton.h:27
 AliAnalysisTaskEMCALIsoPhoton.h:28
 AliAnalysisTaskEMCALIsoPhoton.h:29
 AliAnalysisTaskEMCALIsoPhoton.h:30
 AliAnalysisTaskEMCALIsoPhoton.h:31
 AliAnalysisTaskEMCALIsoPhoton.h:32
 AliAnalysisTaskEMCALIsoPhoton.h:33
 AliAnalysisTaskEMCALIsoPhoton.h:34
 AliAnalysisTaskEMCALIsoPhoton.h:35
 AliAnalysisTaskEMCALIsoPhoton.h:36
 AliAnalysisTaskEMCALIsoPhoton.h:37
 AliAnalysisTaskEMCALIsoPhoton.h:38
 AliAnalysisTaskEMCALIsoPhoton.h:39
 AliAnalysisTaskEMCALIsoPhoton.h:40
 AliAnalysisTaskEMCALIsoPhoton.h:41
 AliAnalysisTaskEMCALIsoPhoton.h:42
 AliAnalysisTaskEMCALIsoPhoton.h:43
 AliAnalysisTaskEMCALIsoPhoton.h:44
 AliAnalysisTaskEMCALIsoPhoton.h:45
 AliAnalysisTaskEMCALIsoPhoton.h:46
 AliAnalysisTaskEMCALIsoPhoton.h:47
 AliAnalysisTaskEMCALIsoPhoton.h:48
 AliAnalysisTaskEMCALIsoPhoton.h:49
 AliAnalysisTaskEMCALIsoPhoton.h:50
 AliAnalysisTaskEMCALIsoPhoton.h:51
 AliAnalysisTaskEMCALIsoPhoton.h:52
 AliAnalysisTaskEMCALIsoPhoton.h:53
 AliAnalysisTaskEMCALIsoPhoton.h:54
 AliAnalysisTaskEMCALIsoPhoton.h:55
 AliAnalysisTaskEMCALIsoPhoton.h:56
 AliAnalysisTaskEMCALIsoPhoton.h:57
 AliAnalysisTaskEMCALIsoPhoton.h:58
 AliAnalysisTaskEMCALIsoPhoton.h:59
 AliAnalysisTaskEMCALIsoPhoton.h:60
 AliAnalysisTaskEMCALIsoPhoton.h:61
 AliAnalysisTaskEMCALIsoPhoton.h:62
 AliAnalysisTaskEMCALIsoPhoton.h:63
 AliAnalysisTaskEMCALIsoPhoton.h:64
 AliAnalysisTaskEMCALIsoPhoton.h:65
 AliAnalysisTaskEMCALIsoPhoton.h:66
 AliAnalysisTaskEMCALIsoPhoton.h:67
 AliAnalysisTaskEMCALIsoPhoton.h:68
 AliAnalysisTaskEMCALIsoPhoton.h:69
 AliAnalysisTaskEMCALIsoPhoton.h:70
 AliAnalysisTaskEMCALIsoPhoton.h:71
 AliAnalysisTaskEMCALIsoPhoton.h:72
 AliAnalysisTaskEMCALIsoPhoton.h:73
 AliAnalysisTaskEMCALIsoPhoton.h:74
 AliAnalysisTaskEMCALIsoPhoton.h:75
 AliAnalysisTaskEMCALIsoPhoton.h:76
 AliAnalysisTaskEMCALIsoPhoton.h:77
 AliAnalysisTaskEMCALIsoPhoton.h:78
 AliAnalysisTaskEMCALIsoPhoton.h:79
 AliAnalysisTaskEMCALIsoPhoton.h:80
 AliAnalysisTaskEMCALIsoPhoton.h:81
 AliAnalysisTaskEMCALIsoPhoton.h:82
 AliAnalysisTaskEMCALIsoPhoton.h:83
 AliAnalysisTaskEMCALIsoPhoton.h:84
 AliAnalysisTaskEMCALIsoPhoton.h:85
 AliAnalysisTaskEMCALIsoPhoton.h:86
 AliAnalysisTaskEMCALIsoPhoton.h:87
 AliAnalysisTaskEMCALIsoPhoton.h:88
 AliAnalysisTaskEMCALIsoPhoton.h:89
 AliAnalysisTaskEMCALIsoPhoton.h:90
 AliAnalysisTaskEMCALIsoPhoton.h:91
 AliAnalysisTaskEMCALIsoPhoton.h:92
 AliAnalysisTaskEMCALIsoPhoton.h:93
 AliAnalysisTaskEMCALIsoPhoton.h:94
 AliAnalysisTaskEMCALIsoPhoton.h:95
 AliAnalysisTaskEMCALIsoPhoton.h:96
 AliAnalysisTaskEMCALIsoPhoton.h:97
 AliAnalysisTaskEMCALIsoPhoton.h:98
 AliAnalysisTaskEMCALIsoPhoton.h:99
 AliAnalysisTaskEMCALIsoPhoton.h:100
 AliAnalysisTaskEMCALIsoPhoton.h:101
 AliAnalysisTaskEMCALIsoPhoton.h:102
 AliAnalysisTaskEMCALIsoPhoton.h:103
 AliAnalysisTaskEMCALIsoPhoton.h:104
 AliAnalysisTaskEMCALIsoPhoton.h:105
 AliAnalysisTaskEMCALIsoPhoton.h:106
 AliAnalysisTaskEMCALIsoPhoton.h:107
 AliAnalysisTaskEMCALIsoPhoton.h:108
 AliAnalysisTaskEMCALIsoPhoton.h:109
 AliAnalysisTaskEMCALIsoPhoton.h:110
 AliAnalysisTaskEMCALIsoPhoton.h:111
 AliAnalysisTaskEMCALIsoPhoton.h:112
 AliAnalysisTaskEMCALIsoPhoton.h:113
 AliAnalysisTaskEMCALIsoPhoton.h:114
 AliAnalysisTaskEMCALIsoPhoton.h:115
 AliAnalysisTaskEMCALIsoPhoton.h:116
 AliAnalysisTaskEMCALIsoPhoton.h:117
 AliAnalysisTaskEMCALIsoPhoton.h:118
 AliAnalysisTaskEMCALIsoPhoton.h:119
 AliAnalysisTaskEMCALIsoPhoton.h:120
 AliAnalysisTaskEMCALIsoPhoton.h:121
 AliAnalysisTaskEMCALIsoPhoton.h:122
 AliAnalysisTaskEMCALIsoPhoton.h:123
 AliAnalysisTaskEMCALIsoPhoton.h:124
 AliAnalysisTaskEMCALIsoPhoton.h:125
 AliAnalysisTaskEMCALIsoPhoton.h:126
 AliAnalysisTaskEMCALIsoPhoton.h:127
 AliAnalysisTaskEMCALIsoPhoton.h:128
 AliAnalysisTaskEMCALIsoPhoton.h:129
 AliAnalysisTaskEMCALIsoPhoton.h:130
 AliAnalysisTaskEMCALIsoPhoton.h:131
 AliAnalysisTaskEMCALIsoPhoton.h:132
 AliAnalysisTaskEMCALIsoPhoton.h:133
 AliAnalysisTaskEMCALIsoPhoton.h:134
 AliAnalysisTaskEMCALIsoPhoton.h:135
 AliAnalysisTaskEMCALIsoPhoton.h:136
 AliAnalysisTaskEMCALIsoPhoton.h:137
 AliAnalysisTaskEMCALIsoPhoton.h:138
 AliAnalysisTaskEMCALIsoPhoton.h:139
 AliAnalysisTaskEMCALIsoPhoton.h:140
 AliAnalysisTaskEMCALIsoPhoton.h:141
 AliAnalysisTaskEMCALIsoPhoton.h:142
 AliAnalysisTaskEMCALIsoPhoton.h:143
 AliAnalysisTaskEMCALIsoPhoton.h:144
 AliAnalysisTaskEMCALIsoPhoton.h:145
 AliAnalysisTaskEMCALIsoPhoton.h:146
 AliAnalysisTaskEMCALIsoPhoton.h:147
 AliAnalysisTaskEMCALIsoPhoton.h:148
 AliAnalysisTaskEMCALIsoPhoton.h:149
 AliAnalysisTaskEMCALIsoPhoton.h:150
 AliAnalysisTaskEMCALIsoPhoton.h:151
 AliAnalysisTaskEMCALIsoPhoton.h:152
 AliAnalysisTaskEMCALIsoPhoton.h:153
 AliAnalysisTaskEMCALIsoPhoton.h:154
 AliAnalysisTaskEMCALIsoPhoton.h:155
 AliAnalysisTaskEMCALIsoPhoton.h:156
 AliAnalysisTaskEMCALIsoPhoton.h:157
 AliAnalysisTaskEMCALIsoPhoton.h:158
 AliAnalysisTaskEMCALIsoPhoton.h:159
 AliAnalysisTaskEMCALIsoPhoton.h:160
 AliAnalysisTaskEMCALIsoPhoton.h:161
 AliAnalysisTaskEMCALIsoPhoton.h:162
 AliAnalysisTaskEMCALIsoPhoton.h:163
 AliAnalysisTaskEMCALIsoPhoton.h:164
 AliAnalysisTaskEMCALIsoPhoton.h:165
 AliAnalysisTaskEMCALIsoPhoton.h:166
 AliAnalysisTaskEMCALIsoPhoton.h:167
 AliAnalysisTaskEMCALIsoPhoton.h:168
 AliAnalysisTaskEMCALIsoPhoton.h:169
 AliAnalysisTaskEMCALIsoPhoton.h:170
 AliAnalysisTaskEMCALIsoPhoton.h:171
 AliAnalysisTaskEMCALIsoPhoton.h:172
 AliAnalysisTaskEMCALIsoPhoton.h:173
 AliAnalysisTaskEMCALIsoPhoton.h:174
 AliAnalysisTaskEMCALIsoPhoton.h:175
 AliAnalysisTaskEMCALIsoPhoton.h:176
 AliAnalysisTaskEMCALIsoPhoton.h:177
 AliAnalysisTaskEMCALIsoPhoton.h:178
 AliAnalysisTaskEMCALIsoPhoton.h:179
 AliAnalysisTaskEMCALIsoPhoton.h:180
 AliAnalysisTaskEMCALIsoPhoton.h:181
 AliAnalysisTaskEMCALIsoPhoton.h:182
 AliAnalysisTaskEMCALIsoPhoton.h:183
 AliAnalysisTaskEMCALIsoPhoton.h:184
 AliAnalysisTaskEMCALIsoPhoton.h:185
 AliAnalysisTaskEMCALIsoPhoton.h:186
 AliAnalysisTaskEMCALIsoPhoton.h:187
 AliAnalysisTaskEMCALIsoPhoton.h:188
 AliAnalysisTaskEMCALIsoPhoton.h:189
 AliAnalysisTaskEMCALIsoPhoton.h:190
 AliAnalysisTaskEMCALIsoPhoton.h:191
 AliAnalysisTaskEMCALIsoPhoton.h:192
 AliAnalysisTaskEMCALIsoPhoton.h:193
 AliAnalysisTaskEMCALIsoPhoton.h:194
 AliAnalysisTaskEMCALIsoPhoton.h:195
 AliAnalysisTaskEMCALIsoPhoton.h:196
 AliAnalysisTaskEMCALIsoPhoton.h:197
 AliAnalysisTaskEMCALIsoPhoton.h:198
 AliAnalysisTaskEMCALIsoPhoton.h:199
 AliAnalysisTaskEMCALIsoPhoton.h:200
 AliAnalysisTaskEMCALIsoPhoton.h:201
 AliAnalysisTaskEMCALIsoPhoton.h:202
 AliAnalysisTaskEMCALIsoPhoton.h:203
 AliAnalysisTaskEMCALIsoPhoton.h:204