ROOT logo
#ifndef ALIANLYSISTASKGAMMACALO_cxx
#define ALIANLYSISTASKGAMMACALO_cxx

#include "AliAnalysisTaskSE.h"
#include "AliESDtrack.h"
#include "AliV0ReaderV1.h"
#include "AliKFConversionPhoton.h"
#include "AliGammaConversionAODBGHandler.h"
#include "AliConversionAODBGHandlerRP.h"
#include "AliCaloPhotonCuts.h"
#include "AliConvEventCuts.h"
#include "AliConversionPhotonCuts.h"
#include "AliConversionMesonCuts.h"
#include "AliAnalysisManager.h"
#include "TProfile2D.h"
#include "TH3.h"
#include "TH3F.h"

class AliAnalysisTaskGammaCalo : public AliAnalysisTaskSE {
	public:

		AliAnalysisTaskGammaCalo();
		AliAnalysisTaskGammaCalo(const char *name);
		virtual ~AliAnalysisTaskGammaCalo();

		virtual void   UserCreateOutputObjects();
		virtual Bool_t Notify();
		virtual void   UserExec(Option_t *);
		virtual void   Terminate(const Option_t*);
		void InitBack();

		void SetIsHeavyIon(Int_t flag){
			fIsHeavyIon = flag;    
		}

		// base functions for selecting photon and meson candidates in reconstructed data
		void ProcessClusters();
		void CalculatePi0Candidates();
		
		// MC functions
		void SetIsMC(Bool_t isMC){fIsMC=isMC;}
		void ProcessMCParticles();
		void ProcessAODMCParticles();
		void ProcessTrueClusterCandidates( AliAODConversionPhoton* TruePhotonCandidate);
		void ProcessTrueClusterCandidatesAOD( AliAODConversionPhoton* TruePhotonCandidate);
		void ProcessTrueMesonCandidates( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
		void ProcessTrueMesonCandidatesAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
		
		// switches for additional analysis streams or outputs
		void SetDoMesonAnalysis(Bool_t flag){fDoMesonAnalysis = flag;}
		void SetDoMesonQA(Int_t flag){fDoMesonQA = flag;}
		void SetDoClusterQA(Int_t flag){fDoClusterQA = flag;}
		
	    // Setting the cut lists for the conversion photons
		void SetEventCutList(Int_t nCuts, TList *CutArray){
			fnCuts = nCuts;
			fEventCutArray = CutArray;
		}

	    // Setting the cut lists for the calo photons
		void SetCaloCutList(Int_t nCuts, TList *CutArray){
			fnCuts = nCuts;
			fClusterCutArray = CutArray;
		}
		
		// Setting the cut lists for the meson
		void SetMesonCutList(Int_t nCuts, TList *CutArray){
			fnCuts = nCuts;
			fMesonCutArray = CutArray;
		}

		// BG HandlerSettings
		void CalculateBackground();
		void CalculateBackgroundRP();
		void RotateParticle(AliAODConversionPhoton *gamma);
		void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP);
		void FillPhotonBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode);
		void FillPhotonPlusConversionBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode);
		void UpdateEventByEventData();
		
		// Additional functions for convenience
		void SetLogBinningXTH2(TH2* histoRebin);
		Int_t GetSourceClassification(Int_t daughter, Int_t pdgCode);
		
	protected:
		AliV0ReaderV1 						*fV0Reader;							// basic photon Selection Task
		AliGammaConversionAODBGHandler 		**fBGHandler;						// BG handler for Conversion 
		AliVEvent 							*fInputEvent;						// current event
		AliMCEvent 							*fMCEvent;							// corresponding MC event
		AliStack 							*fMCStack;							// stack belonging to MC event
		TList 								**fCutFolder;						// Array of lists for containers belonging to cut
		TList 								**fESDList;							// Array of lists with histograms with reconstructed properties   
		TList 								**fBackList;						// Array of lists with BG THnSparseF
		TList 								**fMotherList;						// Array of lists with Signal THnSparseF
		TList 								**fTrueList;						// Array of lists with histograms with MC validated reconstructed properties
		TList 								**fMCList;							// Array of lists with histograms with pure MC information
		TList 								**fHeaderNameList;					// Array of lists with header names for MC header selection
		TList 								*fOutputContainer;					// Output container
		TList 								*fClusterCandidates; 				//! current list of cluster candidates
		TList 								*fEventCutArray;					// List with Event Cuts
		AliConvEventCuts 					*fEventCuts;						// EventCutObject
		TList 								*fClusterCutArray;					// List with Cluster Cuts
		AliCaloPhotonCuts 					*fCaloPhotonCuts;					// CaloPhotonCutObject
		TList 								*fMesonCutArray;					// List with Meson Cuts
		AliConversionMesonCuts 				*fMesonCuts;						// MesonCutObject
		
		//histograms for mesons reconstructed quantities
		TH2F 								**fHistoMotherInvMassPt;			//! array of histogram with signal + BG for same event photon pairs, inv Mass, pt
		TH2F 								**fHistoMotherInvMass3ClusterPt;	//! array of histogram with signal + BG for same event 3 cluster pairs, inv Mass, pt	
		THnSparseF 							**fSparseMotherInvMassPtZM;			//! array of THnSparseF with signal + BG for same event photon pairs, inv Mass, pt
		TH2F 								**fHistoMotherBackInvMassPt;		//! array of histogram with BG for mixed event photon pairs, inv Mass, pt
		THnSparseF 							**fSparseMotherBackInvMassPtZM;		//! array of THnSparseF with BG for same event photon pairs, inv Mass, pt
		TH2F 								**fHistoMotherInvMassEalpha;		//! array of histograms with alpha cut of 0.1 for inv mass vs pt
		TH2F 								**fHistoMotherPi0PtY;				//! array of histograms with invariant mass cut of 0.05 && pi0cand->M() < 0.17, pt, Y
		TH2F 								**fHistoMotherEtaPtY;				//! array of histograms with invariant mass cut of 0.45 && pi0cand->M() < 0.65, pt, Y
		TH2F 								**fHistoMotherPi0PtAlpha;			//! array of histograms with invariant mass cut of 0.05 && pi0cand->M() < 0.17, pt, alpha
		TH2F 								**fHistoMotherEtaPtAlpha;			//! array of histograms with invariant mass cut of 0.45 && pi0cand->M() < 0.65, pt, alpha
		TH2F 								**fHistoMotherPi0PtOpenAngle;		//! array of histograms with invariant mass cut of 0.05 && pi0cand->M() < 0.17, pt, openAngle
		TH2F 								**fHistoMotherEtaPtOpenAngle;		//! array of histograms with invariant mass cut of 0.45 && pi0cand->M() < 0.65, pt, openAngle
		TH2F								**fHistoMotherInvMassECalib;		//! array of histogram with signal + BG for same event photon pairs, inv Mass, energy of cluster
		TH2F								**fHistoMotherInvMassECalibalpha;	//! array of histogram with signal + BG for same event photon pairs, inv Mass, energy of cluster, alpha cut 0.1

		// histograms for rec photon clusters
		TH1F								** fHistoClusGammaPt;				//! array of histos with cluster, pt
		TH1F								** fHistoClusOverlapHeadersGammaPt;	//! array of histos with cluster, pt overlapping with other headers
		//histograms for pure MC quantities
		TH1I 								**fHistoMCHeaders;					//! array of histos for header names
		TH1F 								**fHistoMCAllGammaPt;				//! array of histos with all gamma, pT
		TH1F 								**fHistoMCDecayGammaPi0Pt;			//! array of histos with decay gamma from pi0, pT
		TH1F 								**fHistoMCDecayGammaRhoPt;			//! array of histos with decay gamma from rho, pT
		TH1F 								**fHistoMCDecayGammaEtaPt;			//! array of histos with decay gamma from eta, pT
		TH1F 								**fHistoMCDecayGammaOmegaPt;		//! array of histos with decay gamma from omega, pT
		TH1F 								**fHistoMCDecayGammaEtapPt;			//! array of histos with decay gamma from eta', pT
		TH1F 								**fHistoMCDecayGammaPhiPt;			//! array of histos with decay gamma from phi, pT
		TH1F 								**fHistoMCDecayGammaSigmaPt;		//! array of histos with decay gamma from Sigma0, pT
		TH1F 								**fHistoMCPi0Pt;					//! array of histos with weighted pi0, pT
		TH1F 								**fHistoMCPi0WOWeightPt;			//! array of histos with unweighted pi0, pT
		TH1F 								**fHistoMCEtaPt;					//! array of histos with weighted eta, pT
		TH1F 								**fHistoMCEtaWOWeightPt;			//! array of histos with unweighted eta, pT
		TH1F 								**fHistoMCPi0InAccPt;				//! array of histos with weighted pi0 in acceptance, pT
		TH1F 								**fHistoMCEtaInAccPt;				//! array of histos with weighted eta in acceptance, pT
		TH2F 								**fHistoMCPi0PtY;					//! array of histos with weighted pi0, pT, Y
		TH2F 								**fHistoMCEtaPtY;					//! array of histos with weighted eta, pT, Y
		TH2F 								**fHistoMCPi0PtAlpha;				//! array of histos with weighted pi0, pT, alpha
		TH2F 								**fHistoMCEtaPtAlpha;				//! array of histos with weighted eta, pT, alpha
		TH1F 								**fHistoMCK0sPt;					//! array of histos with weighted K0s, pT
		TH1F 								**fHistoMCK0sWOWeightPt;			//! array of histos with unweighted K0s, pT
		TH2F 								**fHistoMCK0sPtY;					//! array of histos with weighted K0s, pT, Y
		TH2F 								**fHistoMCSecPi0PtvsSource;			//! array of histos with secondary pi0, pT, source
		TH1F	 							**fHistoMCSecPi0Source;				//! array of histos with secondary pi0, source
		TH1F 								**fHistoMCSecEtaPt;					//! array of histos with secondary eta, pT
		TH1F 								**fHistoMCSecEtaSource;				//! array of histos with secondary eta, source
		// MC validated reconstructed quantities mesons
		TH2F 								**fHistoTruePi0InvMassPt;					//! array of histos with validated mothers, invMass, pt
		TH2F 								**fHistoTrueEtaInvMassPt;					//! array of histos with validated mothers, invMass, pt
		TH2F 								**fHistoTruePi0CaloPhotonInvMassPt;			//! array of histos with validated mothers, photon leading, invMass, pt
		TH2F 								**fHistoTrueEtaCaloPhotonInvMassPt;			//! array of histos with validated mothers, photon leading, invMass, pt
		TH2F 								**fHistoTruePi0CaloConvertedPhotonInvMassPt;	//! array of histos with validated pi0, converted photon leading, invMass, pt
		TH2F 								**fHistoTrueEtaCaloConvertedPhotonInvMassPt;	//! array of histos with validated eta, converted photon leading, invMass, pt
		TH2F 								**fHistoTruePi0CaloMixedPhotonConvPhotonInvMassPt; //! array of histos with validated mothers, converted photon leading, invMass, pt
		TH2F 								**fHistoTrueEtaCaloMixedPhotonConvPhotonInvMassPt; //! array of histos with validated mothers, converted photon leading, invMass, pt
		TH2F 								**fHistoTruePi0CaloElectronInvMassPt;		//! array of histos with validated mothers, electron leading, invMass, pt
		TH2F 								**fHistoTrueEtaCaloElectronInvMassPt;		//! array of histos with validated mothers, electron leading, invMass, pt
		TH2F 								**fHistoTruePi0CaloMergedClusterInvMassPt;	//! array of histos with validated mothers, merged cluster invMass, pt
		TH2F 								**fHistoTrueEtaCaloMergedClusterInvMassPt;	//! array of histos with validated mothers, merged cluster invMass, pt
		TH2F 								**fHistoTruePi0CaloMergedClusterPartConvInvMassPt; //! array of histos with validated mothers, merged cluster part conv, invMass, pt
		TH2F 								**fHistoTrueEtaCaloMergedClusterPartConvInvMassPt; //! array of histos with validated mothers, merged cluster part conv, invMass, pt
		TH2F 								**fHistoTruePi0NonMergedElectronPhotonInvMassPt;	//! array of histos with validated mothers, merged cluster invMass, pt
		TH2F 								**fHistoTruePi0NonMergedElectronMergedPhotonInvMassPt;	//! array of histos with validated mothers, merged cluster invMass, pt
		TH2F								**fHistoTruePi0Category1; 						//! array of histos with validated pi0, pure real photons
		TH2F								**fHistoTrueEtaCategory1; 						//! array of histos with validated eta, pure real photons
		TH2F								**fHistoTruePi0Category2; 						//! array of histos with validated pi0, 1 real photon, 1 merged converted photon
		TH2F								**fHistoTrueEtaCategory2; 						//! array of histos with validated eta, 1 real photon, 1 merged converted photon
		TH2F								**fHistoTruePi0Category3; 						//! array of histos with validated pi0, 1 real photon, 1 electron from conversion unmerged
		TH2F								**fHistoTrueEtaCategory3; 						//! array of histos with validated eta, 1 real photon, 1 electron from conversion unmerged
		TH2F								**fHistoTruePi0Category4_6; 					//! array of histos with validated pi0, 2 electrons from same conversion
		TH2F								**fHistoTrueEtaCategory4_6; 					//! array of histos with validated eta, 2 electrons from same conversion
		TH2F								**fHistoTruePi0Category5; 						//! array of histos with validated pi0, 2 electrons from different conversions, 2 electrons (unseen)
		TH2F								**fHistoTrueEtaCategory5; 						//! array of histos with validated eta, 2 electrons from different conversions, 2 electrons (unseen)
		TH2F								**fHistoTruePi0Category7; 						//! array of histos with validated pi0, 1 electron from conversion, 2 electrons from other conversion merged, 1 electron (unseen)
		TH2F								**fHistoTrueEtaCategory7; 						//! array of histos with validated eta, 1 electron from conversion, 2 electrons from other conversion merged, 1 electron (unseen)
		TH2F								**fHistoTruePi0Category8; 						//! array of histos with validated pi0, 2 electron from conversion merged, 2 electrons from other conversion merged
		TH2F								**fHistoTrueEtaCategory8; 						//! array of histos with validated eta, 2 electron from conversion merged, 2 electrons from other conversion merged
		TH2F 								**fHistoTruePrimaryPi0InvMassPt;				//! array of histos with validated weighted primary mothers, invMass, pt
		TH2F 								**fHistoTruePrimaryEtaInvMassPt;				//! array of histos with validated weighted primary mothers, invMass, pt
		TH2F 								**fHistoTruePrimaryPi0W0WeightingInvMassPt;		//! array of histos with validated unweighted primary mothers, invMass, pt
		TH2F 								**fHistoTruePrimaryEtaW0WeightingInvMassPt;		//! array of histos with validated unweighted primary mothers, invMass, pt
		TProfile2D 							**fProfileTruePrimaryPi0WeightsInvMassPt;		//! array of profiles with weights for validated primary mothers, invMass, pt	
		TProfile2D 							**fProfileTruePrimaryEtaWeightsInvMassPt;		//! array of profiles with weights for validated primary mothers, invMass, pt	
		TH2F 								**fHistoTruePrimaryPi0MCPtResolPt;				//! array of histos with validated weighted primary pi0, MCpt, resol pt
		TH2F	 							**fHistoTruePrimaryEtaMCPtResolPt;				//! array of histos with validated weighted primary eta, MCpt, resol pt
		TH2F 								**fHistoTrueSecondaryPi0InvMassPt;				//! array of histos with validated secondary mothers, invMass, pt
		TH2F 								**fHistoTrueSecondaryPi0FromK0sInvMassPt;		//! array of histos with validated secondary mothers from K0s, invMass, pt
		TH1F 								**fHistoTrueK0sWithPi0DaughterMCPt;				//! array of histos with K0s with reconstructed pi0 as daughter, pt
		TH2F 								**fHistoTrueSecondaryPi0FromEtaInvMassPt;		//! array of histos with validated secondary mothers from eta, invMass, pt
		TH1F 								**fHistoTrueEtaWithPi0DaughterMCPt;				//! array of histos with eta with reconstructed pi0 as daughter, pt
		TH2F 								**fHistoTrueSecondaryPi0FromLambdaInvMassPt;	//! array of histos with validated secondary mothers from Lambda, invMass, pt
		TH1F 								**fHistoTrueLambdaWithPi0DaughterMCPt;			//! array of histos with lambda with reconstructed pi0 as daughter, pt
		TH2F 								**fHistoTrueBckGGInvMassPt;						//! array of histos with pure gamma gamma combinatorial BG, invMass, pt
		TH2F 								**fHistoTrueBckContInvMassPt;					//! array of histos with contamination BG, invMass, pt
		TH2F 								**fHistoTruePi0PtY;								//! array of histos with validated pi0, pt, Y
		TH2F 								**fHistoTrueEtaPtY;								//! array of histos with validated eta, pt, Y
		TH2F 								**fHistoTruePi0PtAlpha;							//! array of histos with validated pi0, pt, alpha
		TH2F 								**fHistoTrueEtaPtAlpha;							//! array of histos with validated eta, pt, alpha
		TH2F 								**fHistoTruePi0PtOpenAngle;						//! array of histos with validated pi0, pt, openAngle
		TH2F 								**fHistoTrueEtaPtOpenAngle;						//! array of histos with validated eta, pt, openAngle
		// MC validated reconstructed quantities photons
		TH2F 								**fHistoClusPhotonBGPt;							//! array of histos with cluster photon BG, pt, source
		TH2F 								**fHistoClusPhotonPlusConvBGPt;					//! array of histos with cluster photon plus conv BG, pt, source
		TH1F								**fHistoTrueClusGammaPt;						//! array of histos with validated cluster (electron or photon), pt
		TH1F								**fHistoTrueClusUnConvGammaPt;					//! array of histos with validated unconverted photon, pt
		TH1F								**fHistoTrueClusUnConvGammaMCPt;					//! array of histos with validated unconverted photon, pt
		TH1F								**fHistoTrueClusElectronPt;						//! array of histos with validated electron, pt
		TH1F								**fHistoTrueClusConvGammaPt;					//! array of histos with validated converted photon, pt
		TH1F								**fHistoTrueClusConvGammaMCPt;					//! array of histos with validated converted photon, pt
		TH1F								**fHistoTrueClusConvGammaFullyPt;				//! array of histos with validated converted photon, fully contained, pt
		TH1F								**fHistoTrueClusMergedGammaPt;					//! array of histos with validated merged photons, electrons, dalitz, pt
		TH1F								**fHistoTrueClusMergedPartConvGammaPt;			//! array of histos with validated merged partially converted photons, pt
		TH1F								**fHistoTrueClusDalitzPt;						//! array of histos with validated Dalitz decay, pt
		TH1F								**fHistoTrueClusDalitzMergedPt;					//! array of histos with validated Dalitz decay, more than one decay product in cluster, pt
		TH1F								**fHistoTrueClusPhotonFromElecMotherPt;			//! array of histos with validated photon from electron, pt
		TH1F								**fHistoTrueClusShowerPt;						//! array of histos with validated shower, pt
        TH1F                                **fHistoTrueClusSubLeadingPt;                   //! array of histos with pi0/eta/eta_prime in subleading contribution
        TH1I                                **fHistoTrueClusNParticles;                     //! array of histos with number of different particles (pi0/eta/eta_prime) contributing to cluster
		TH1F								**fHistoTrueClusEMNonLeadingPt;					//! array of histos with cluster with largest energy by hadron
		TH1F								**fHistoTrueNLabelsInClus;						//! array of histos with number of labels in cluster 
		TH1F								**fHistoTruePrimaryClusGammaPt;					//! array of histos with validated primary photon cluster, pt
		TH2F								**fHistoTruePrimaryClusGammaESDPtMCPt;			//! array of histos with validated primary photon cluster, rec Pt, MC pt
		TH1F								**fHistoTruePrimaryClusConvGammaPt;				//! array of histos with validated primary conv photon cluster, pt
		TH2F								**fHistoTruePrimaryClusConvGammaESDPtMCPt;		//! array of histos with validated primary conv photon cluster, rec Pt, MC pt
		TH1F 								**fHistoTrueSecondaryClusGammaPt;				//! array of histos with validated secondary cluster photon, pt  
		TH1F 								**fHistoTrueSecondaryClusConvGammaPt;			//! array of histos with validated secondary cluster photon, pt  
		TH1F 								**fHistoTrueSecondaryClusGammaFromXFromK0sPt;	//! array of histos with validated secondary cluster photon from K0s, pt  
		TH1F 								**fHistoTrueSecondaryClusConvGammaFromXFromK0sPt;//! array of histos with validated secondary cluster conversion photon from K0s, pt  
		TH1F 								**fHistoTrueSecondaryClusGammaFromXFromLambdaPt;//! array of histos with validated secondary cluster photon from Lambda, pt  
		TH1F 								**fHistoTrueSecondaryClusConvGammaFromXFromLambdaPt;//! array of histos with validated secondary cluster conversion photon from Lambda, pt  
		TH1F 								**fHistoTrueSecondaryClusGammaFromXFromEtasPt;	//! array of histos with validated secondary Cluster photon from Eta, pt  
		TH1F 								**fHistoTrueSecondaryClusConvGammaFromXFromEtasPt;//! array of histos with validated secondary cluster conversion photon from Eta, pt  

		// event histograms
		TH1I 								**fHistoNEvents;								//! array of histos with event information
		TH1I 								**fHistoNGoodESDTracks;							//! array of histos with number of good tracks (2010 Standard track cuts)
		TH1I 								**fHistoNGammaCandidates;						//! array of histos with number of gamma candidates per event
		TH2F 								**fHistoNGoodESDTracksVsNGammaCanditates;		//! array of histos with number of good tracks vs gamma candidates
		TH1I 								**fHistoNV0Tracks;								//! array of histos with V0 counts
		TProfile 							**fProfileEtaShift;								//! array of profiles with eta shift
		
		// additional variables
		Double_t 							fEventPlaneAngle; 					// EventPlaneAngle
		TRandom3 							fRandom;							// random 
		Int_t 								fnCuts;								// number of cuts to be analysed in parallel
		Int_t 								fiCut;								// current cut	
		Int_t	 							fIsHeavyIon;						// switch for pp = 0, PbPb = 1, pPb = 2
		Bool_t 								fDoMesonAnalysis;					// flag for meson analysis
		Int_t 								fDoMesonQA;							// flag for meson QA
		Int_t 								fDoClusterQA;						// flag for cluster QA
		Bool_t 								fIsFromMBHeader;					// flag for MC headers
		Bool_t								fIsOverlappingWithOtherHeader; 		// flag for particles in MC overlapping between headers
		Bool_t 								fIsMC;								// flag for MC information


	private:
		AliAnalysisTaskGammaCalo(const AliAnalysisTaskGammaCalo&); // Prevent copy-construction
		AliAnalysisTaskGammaCalo &operator=(const AliAnalysisTaskGammaCalo&); // Prevent assignment

		ClassDef(AliAnalysisTaskGammaCalo, 2);
};

#endif
 AliAnalysisTaskGammaCalo.h:1
 AliAnalysisTaskGammaCalo.h:2
 AliAnalysisTaskGammaCalo.h:3
 AliAnalysisTaskGammaCalo.h:4
 AliAnalysisTaskGammaCalo.h:5
 AliAnalysisTaskGammaCalo.h:6
 AliAnalysisTaskGammaCalo.h:7
 AliAnalysisTaskGammaCalo.h:8
 AliAnalysisTaskGammaCalo.h:9
 AliAnalysisTaskGammaCalo.h:10
 AliAnalysisTaskGammaCalo.h:11
 AliAnalysisTaskGammaCalo.h:12
 AliAnalysisTaskGammaCalo.h:13
 AliAnalysisTaskGammaCalo.h:14
 AliAnalysisTaskGammaCalo.h:15
 AliAnalysisTaskGammaCalo.h:16
 AliAnalysisTaskGammaCalo.h:17
 AliAnalysisTaskGammaCalo.h:18
 AliAnalysisTaskGammaCalo.h:19
 AliAnalysisTaskGammaCalo.h:20
 AliAnalysisTaskGammaCalo.h:21
 AliAnalysisTaskGammaCalo.h:22
 AliAnalysisTaskGammaCalo.h:23
 AliAnalysisTaskGammaCalo.h:24
 AliAnalysisTaskGammaCalo.h:25
 AliAnalysisTaskGammaCalo.h:26
 AliAnalysisTaskGammaCalo.h:27
 AliAnalysisTaskGammaCalo.h:28
 AliAnalysisTaskGammaCalo.h:29
 AliAnalysisTaskGammaCalo.h:30
 AliAnalysisTaskGammaCalo.h:31
 AliAnalysisTaskGammaCalo.h:32
 AliAnalysisTaskGammaCalo.h:33
 AliAnalysisTaskGammaCalo.h:34
 AliAnalysisTaskGammaCalo.h:35
 AliAnalysisTaskGammaCalo.h:36
 AliAnalysisTaskGammaCalo.h:37
 AliAnalysisTaskGammaCalo.h:38
 AliAnalysisTaskGammaCalo.h:39
 AliAnalysisTaskGammaCalo.h:40
 AliAnalysisTaskGammaCalo.h:41
 AliAnalysisTaskGammaCalo.h:42
 AliAnalysisTaskGammaCalo.h:43
 AliAnalysisTaskGammaCalo.h:44
 AliAnalysisTaskGammaCalo.h:45
 AliAnalysisTaskGammaCalo.h:46
 AliAnalysisTaskGammaCalo.h:47
 AliAnalysisTaskGammaCalo.h:48
 AliAnalysisTaskGammaCalo.h:49
 AliAnalysisTaskGammaCalo.h:50
 AliAnalysisTaskGammaCalo.h:51
 AliAnalysisTaskGammaCalo.h:52
 AliAnalysisTaskGammaCalo.h:53
 AliAnalysisTaskGammaCalo.h:54
 AliAnalysisTaskGammaCalo.h:55
 AliAnalysisTaskGammaCalo.h:56
 AliAnalysisTaskGammaCalo.h:57
 AliAnalysisTaskGammaCalo.h:58
 AliAnalysisTaskGammaCalo.h:59
 AliAnalysisTaskGammaCalo.h:60
 AliAnalysisTaskGammaCalo.h:61
 AliAnalysisTaskGammaCalo.h:62
 AliAnalysisTaskGammaCalo.h:63
 AliAnalysisTaskGammaCalo.h:64
 AliAnalysisTaskGammaCalo.h:65
 AliAnalysisTaskGammaCalo.h:66
 AliAnalysisTaskGammaCalo.h:67
 AliAnalysisTaskGammaCalo.h:68
 AliAnalysisTaskGammaCalo.h:69
 AliAnalysisTaskGammaCalo.h:70
 AliAnalysisTaskGammaCalo.h:71
 AliAnalysisTaskGammaCalo.h:72
 AliAnalysisTaskGammaCalo.h:73
 AliAnalysisTaskGammaCalo.h:74
 AliAnalysisTaskGammaCalo.h:75
 AliAnalysisTaskGammaCalo.h:76
 AliAnalysisTaskGammaCalo.h:77
 AliAnalysisTaskGammaCalo.h:78
 AliAnalysisTaskGammaCalo.h:79
 AliAnalysisTaskGammaCalo.h:80
 AliAnalysisTaskGammaCalo.h:81
 AliAnalysisTaskGammaCalo.h:82
 AliAnalysisTaskGammaCalo.h:83
 AliAnalysisTaskGammaCalo.h:84
 AliAnalysisTaskGammaCalo.h:85
 AliAnalysisTaskGammaCalo.h:86
 AliAnalysisTaskGammaCalo.h:87
 AliAnalysisTaskGammaCalo.h:88
 AliAnalysisTaskGammaCalo.h:89
 AliAnalysisTaskGammaCalo.h:90
 AliAnalysisTaskGammaCalo.h:91
 AliAnalysisTaskGammaCalo.h:92
 AliAnalysisTaskGammaCalo.h:93
 AliAnalysisTaskGammaCalo.h:94
 AliAnalysisTaskGammaCalo.h:95
 AliAnalysisTaskGammaCalo.h:96
 AliAnalysisTaskGammaCalo.h:97
 AliAnalysisTaskGammaCalo.h:98
 AliAnalysisTaskGammaCalo.h:99
 AliAnalysisTaskGammaCalo.h:100
 AliAnalysisTaskGammaCalo.h:101
 AliAnalysisTaskGammaCalo.h:102
 AliAnalysisTaskGammaCalo.h:103
 AliAnalysisTaskGammaCalo.h:104
 AliAnalysisTaskGammaCalo.h:105
 AliAnalysisTaskGammaCalo.h:106
 AliAnalysisTaskGammaCalo.h:107
 AliAnalysisTaskGammaCalo.h:108
 AliAnalysisTaskGammaCalo.h:109
 AliAnalysisTaskGammaCalo.h:110
 AliAnalysisTaskGammaCalo.h:111
 AliAnalysisTaskGammaCalo.h:112
 AliAnalysisTaskGammaCalo.h:113
 AliAnalysisTaskGammaCalo.h:114
 AliAnalysisTaskGammaCalo.h:115
 AliAnalysisTaskGammaCalo.h:116
 AliAnalysisTaskGammaCalo.h:117
 AliAnalysisTaskGammaCalo.h:118
 AliAnalysisTaskGammaCalo.h:119
 AliAnalysisTaskGammaCalo.h:120
 AliAnalysisTaskGammaCalo.h:121
 AliAnalysisTaskGammaCalo.h:122
 AliAnalysisTaskGammaCalo.h:123
 AliAnalysisTaskGammaCalo.h:124
 AliAnalysisTaskGammaCalo.h:125
 AliAnalysisTaskGammaCalo.h:126
 AliAnalysisTaskGammaCalo.h:127
 AliAnalysisTaskGammaCalo.h:128
 AliAnalysisTaskGammaCalo.h:129
 AliAnalysisTaskGammaCalo.h:130
 AliAnalysisTaskGammaCalo.h:131
 AliAnalysisTaskGammaCalo.h:132
 AliAnalysisTaskGammaCalo.h:133
 AliAnalysisTaskGammaCalo.h:134
 AliAnalysisTaskGammaCalo.h:135
 AliAnalysisTaskGammaCalo.h:136
 AliAnalysisTaskGammaCalo.h:137
 AliAnalysisTaskGammaCalo.h:138
 AliAnalysisTaskGammaCalo.h:139
 AliAnalysisTaskGammaCalo.h:140
 AliAnalysisTaskGammaCalo.h:141
 AliAnalysisTaskGammaCalo.h:142
 AliAnalysisTaskGammaCalo.h:143
 AliAnalysisTaskGammaCalo.h:144
 AliAnalysisTaskGammaCalo.h:145
 AliAnalysisTaskGammaCalo.h:146
 AliAnalysisTaskGammaCalo.h:147
 AliAnalysisTaskGammaCalo.h:148
 AliAnalysisTaskGammaCalo.h:149
 AliAnalysisTaskGammaCalo.h:150
 AliAnalysisTaskGammaCalo.h:151
 AliAnalysisTaskGammaCalo.h:152
 AliAnalysisTaskGammaCalo.h:153
 AliAnalysisTaskGammaCalo.h:154
 AliAnalysisTaskGammaCalo.h:155
 AliAnalysisTaskGammaCalo.h:156
 AliAnalysisTaskGammaCalo.h:157
 AliAnalysisTaskGammaCalo.h:158
 AliAnalysisTaskGammaCalo.h:159
 AliAnalysisTaskGammaCalo.h:160
 AliAnalysisTaskGammaCalo.h:161
 AliAnalysisTaskGammaCalo.h:162
 AliAnalysisTaskGammaCalo.h:163
 AliAnalysisTaskGammaCalo.h:164
 AliAnalysisTaskGammaCalo.h:165
 AliAnalysisTaskGammaCalo.h:166
 AliAnalysisTaskGammaCalo.h:167
 AliAnalysisTaskGammaCalo.h:168
 AliAnalysisTaskGammaCalo.h:169
 AliAnalysisTaskGammaCalo.h:170
 AliAnalysisTaskGammaCalo.h:171
 AliAnalysisTaskGammaCalo.h:172
 AliAnalysisTaskGammaCalo.h:173
 AliAnalysisTaskGammaCalo.h:174
 AliAnalysisTaskGammaCalo.h:175
 AliAnalysisTaskGammaCalo.h:176
 AliAnalysisTaskGammaCalo.h:177
 AliAnalysisTaskGammaCalo.h:178
 AliAnalysisTaskGammaCalo.h:179
 AliAnalysisTaskGammaCalo.h:180
 AliAnalysisTaskGammaCalo.h:181
 AliAnalysisTaskGammaCalo.h:182
 AliAnalysisTaskGammaCalo.h:183
 AliAnalysisTaskGammaCalo.h:184
 AliAnalysisTaskGammaCalo.h:185
 AliAnalysisTaskGammaCalo.h:186
 AliAnalysisTaskGammaCalo.h:187
 AliAnalysisTaskGammaCalo.h:188
 AliAnalysisTaskGammaCalo.h:189
 AliAnalysisTaskGammaCalo.h:190
 AliAnalysisTaskGammaCalo.h:191
 AliAnalysisTaskGammaCalo.h:192
 AliAnalysisTaskGammaCalo.h:193
 AliAnalysisTaskGammaCalo.h:194
 AliAnalysisTaskGammaCalo.h:195
 AliAnalysisTaskGammaCalo.h:196
 AliAnalysisTaskGammaCalo.h:197
 AliAnalysisTaskGammaCalo.h:198
 AliAnalysisTaskGammaCalo.h:199
 AliAnalysisTaskGammaCalo.h:200
 AliAnalysisTaskGammaCalo.h:201
 AliAnalysisTaskGammaCalo.h:202
 AliAnalysisTaskGammaCalo.h:203
 AliAnalysisTaskGammaCalo.h:204
 AliAnalysisTaskGammaCalo.h:205
 AliAnalysisTaskGammaCalo.h:206
 AliAnalysisTaskGammaCalo.h:207
 AliAnalysisTaskGammaCalo.h:208
 AliAnalysisTaskGammaCalo.h:209
 AliAnalysisTaskGammaCalo.h:210
 AliAnalysisTaskGammaCalo.h:211
 AliAnalysisTaskGammaCalo.h:212
 AliAnalysisTaskGammaCalo.h:213
 AliAnalysisTaskGammaCalo.h:214
 AliAnalysisTaskGammaCalo.h:215
 AliAnalysisTaskGammaCalo.h:216
 AliAnalysisTaskGammaCalo.h:217
 AliAnalysisTaskGammaCalo.h:218
 AliAnalysisTaskGammaCalo.h:219
 AliAnalysisTaskGammaCalo.h:220
 AliAnalysisTaskGammaCalo.h:221
 AliAnalysisTaskGammaCalo.h:222
 AliAnalysisTaskGammaCalo.h:223
 AliAnalysisTaskGammaCalo.h:224
 AliAnalysisTaskGammaCalo.h:225
 AliAnalysisTaskGammaCalo.h:226
 AliAnalysisTaskGammaCalo.h:227
 AliAnalysisTaskGammaCalo.h:228
 AliAnalysisTaskGammaCalo.h:229
 AliAnalysisTaskGammaCalo.h:230
 AliAnalysisTaskGammaCalo.h:231
 AliAnalysisTaskGammaCalo.h:232
 AliAnalysisTaskGammaCalo.h:233
 AliAnalysisTaskGammaCalo.h:234
 AliAnalysisTaskGammaCalo.h:235
 AliAnalysisTaskGammaCalo.h:236
 AliAnalysisTaskGammaCalo.h:237
 AliAnalysisTaskGammaCalo.h:238
 AliAnalysisTaskGammaCalo.h:239
 AliAnalysisTaskGammaCalo.h:240
 AliAnalysisTaskGammaCalo.h:241
 AliAnalysisTaskGammaCalo.h:242
 AliAnalysisTaskGammaCalo.h:243
 AliAnalysisTaskGammaCalo.h:244
 AliAnalysisTaskGammaCalo.h:245
 AliAnalysisTaskGammaCalo.h:246
 AliAnalysisTaskGammaCalo.h:247
 AliAnalysisTaskGammaCalo.h:248
 AliAnalysisTaskGammaCalo.h:249
 AliAnalysisTaskGammaCalo.h:250
 AliAnalysisTaskGammaCalo.h:251
 AliAnalysisTaskGammaCalo.h:252
 AliAnalysisTaskGammaCalo.h:253
 AliAnalysisTaskGammaCalo.h:254
 AliAnalysisTaskGammaCalo.h:255
 AliAnalysisTaskGammaCalo.h:256
 AliAnalysisTaskGammaCalo.h:257
 AliAnalysisTaskGammaCalo.h:258
 AliAnalysisTaskGammaCalo.h:259
 AliAnalysisTaskGammaCalo.h:260
 AliAnalysisTaskGammaCalo.h:261
 AliAnalysisTaskGammaCalo.h:262
 AliAnalysisTaskGammaCalo.h:263
 AliAnalysisTaskGammaCalo.h:264
 AliAnalysisTaskGammaCalo.h:265
 AliAnalysisTaskGammaCalo.h:266
 AliAnalysisTaskGammaCalo.h:267
 AliAnalysisTaskGammaCalo.h:268
 AliAnalysisTaskGammaCalo.h:269