ROOT logo
#ifndef AliAnalysisTaskPi0v2_cxx
#define AliAnalysisTaskPi0v2_cxx

#include "AliAnalysisTaskSE.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "THnSparse.h"
#include "AliLog.h"
#include "AliConversionSelection.h"
#include "AliConvEventCuts.h"
#include "AliConversionMesonCuts.h"
#include "AliV0ReaderV1.h"
#include "AliEventplane.h"
#include "TVector2.h"

#include "TProfile.h"
using namespace std;

class AliAnalysisTaskPi0v2 : public AliAnalysisTaskSE{

	public:

		enum EEventPlaneMethod{
			kTPC=0,
			kTPCEtaGap=1,
			kV0A=2,
			kV0C=3,
			knEPMethod=4
		};

		enum EEventPlane{
			kEPTPC=0,
			kEPTPCEtaA,
			kEPTPCEtaC,
			kEPV0A,
			kEPV0C,
			knEP
		};

		enum EPDGCode{
			kPi0=111,
			kEta=221
		};

		static const Int_t knBinsPhi=6;
		static const Int_t knCentMax=10;
		static const Int_t knFlatPeriod=2;

		AliAnalysisTaskPi0v2(const char *name="pi0v2",Int_t harmonic=2);
		virtual ~AliAnalysisTaskPi0v2();

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

		void SetCentralityBins(Double_t *bins,Int_t nbins);
		void SetMeson(EPDGCode meson){fMesonPDGCode=meson;}

		void SetNBinsPhi(Int_t nbins){fNBinsPhi=nbins;}
		void SetV0Reader(AliV0ReaderV1 *v0Reader){fV0Reader=v0Reader;}
		void SetInvMassRange(Double_t range[2]){fInvMassRange[0]=range[0];fInvMassRange[1]=range[1];};
		void SetEtaGap(Double_t gapsize){fEtaGap=gapsize;};

		void SetCuts(AliConversionSelection **conversionselection,Int_t numberOfCuts);
		void SetFillQA(Bool_t fill){fFillQA=fill;}

		void SetEPSelectionMask(Int_t mask[knEPMethod]){for(Int_t ii=0;ii<knEPMethod;ii++)fEPSelectionMask[ii]=mask[ii];};

		void SetFlatteningCoeff(EEventPlane ep,Int_t period,Int_t nCent,Double_t *cc2,Double_t *cs2,Double_t *cc4,Double_t *cs4);

		Int_t GetPeriodIndex(TString period);
		Int_t GetHarmonic(){return fHarmonic;};

	private:

		AliAnalysisTaskPi0v2(const AliAnalysisTaskPi0v2&);// private::prevent use of copy constructor
		AliAnalysisTaskPi0v2& operator=(const AliAnalysisTaskPi0v2&); // private::prevent use of assignment operator

		Bool_t InitEvent();

		void ProcessGammas(Int_t iCut,EEventPlaneMethod iEP);
		void ProcessPi0s(Int_t iCut,EEventPlaneMethod iEP);
		void ProcessQA();

		Double_t GetPhiwrtRP(Double_t dPhi);
		Double_t GetPhotonPhiwrtRP(AliAODConversionPhoton *gamma,EEventPlaneMethod iEP,Bool_t bDoFlattening=kTRUE);
		Double_t GetPi0PhiwrtRP(AliAODConversionMother *pi0,EEventPlaneMethod iEP,Bool_t bDoFlattening=kTRUE);
		Double_t GetChargedPhiwrtRP(AliVTrack *charged,EEventPlaneMethod iEP,Bool_t bDoFlattening=kTRUE);
		void GetPhotondNdPhi(Int_t *dNdPhi,Int_t iEP,Int_t iCut=0);
		void GetChargeddNdPhi(Int_t *dNdPhi,Int_t &ntot,Int_t iEP);
		Int_t GetPhiBin(Double_t phiwrt);
		Int_t GetPhotonPhiBin(AliAODConversionPhoton *gamma,Int_t iEP);
		Double_t GetMCPhotonPhiwrtRP(TParticle *gamma,EEventPlaneMethod iEP,Bool_t bDoFlattening=kTRUE);
		TVector2 GetEPContribution(AliAODConversionPhoton *gamma);
		Double_t GetEventPlaneAngle(EEventPlaneMethod EPmethod,Double_t eta=0,AliAODConversionPhoton *gamma0=NULL,AliAODConversionPhoton *gamma1=NULL,Bool_t bDoFlattening=kTRUE);
		Double_t GetTPCSubEPEta(EEventPlane ep);
		Double_t GetCorrectedTPCEPAngle(AliAODConversionPhoton *gamma0=NULL,AliAODConversionPhoton *gamma1=NULL,Bool_t bDoFlattening=kTRUE);
		Bool_t SetCentrality();
		void ProcessEventPlane();
		Int_t GetRadialBin(Double_t radius);
		Int_t GetRunIndex(Int_t run);
		Double_t ApplyFlattening(Double_t phi,EEventPlane ep);
		Bool_t GetTPCEventPlane();

		void GetV0EP(AliVEvent * event,Double_t &rpv0a,Double_t &rpv0c);
		void LoadVZEROCalibration(Int_t run);
		void LoadTPCCalibration(Int_t run);
		
		Double_t GetWeight(TObject* track1);
		Double_t GetPhiWeight(TObject* track1);
		TH1F* SelectPhiDist(AliVTrack *track);

		Double_t GetPsiInRange(Double_t phi);

		TObjArray* GetEventPlaneTracks(Int_t &maxID);
		TVector2 GetContributionEP(AliVTrack *track);
		Int_t GetAODEPTrackFilterBit();

		// Constants
		enum Ebinsgamma{
			kGammaPt=0,
			kGammadPhi,
			kGammaCent,
			kGammaEPM,
			knbinsGamma
		};

		enum Ebinspi0{
			kPi0Pt=0,
			kPi0Mass,
			kPi0dPhi,
			kPi0Cent,
			kPi0EPM,
			knbinsPi0
		};

		enum EEventSelection{
			kEventIn=1,
			kEventSelV0Reader,
			kEventCentrality,
			kEventRun,
			kEventNoTPCEP,
			kEventProcessEvent,
			kEventSelected
		};


		static const 				Int_t knbinsGammaMult=3; 
		static const 				Int_t kGCnYBinsSpectra = 80;
		static const 				Double_t kGCfirstYBinSpectra;
		static const 				Double_t kGClastYBinSpectra;

		// Class variables and pointer
		AliV0ReaderV1 				*fV0Reader;									// V0Reader
		Int_t 						fNCuts;										// Number of Photon Cuts for v2 analysis
		AliConversionSelection 		**fConversionSelection;						//[fNCuts] Selection of Particles for given Cut
		TClonesArray 				*fConversionGammas;							//! Reconstructed Photons;
		Int_t 						fNCentralityBins;							// Number of Centrality Bins
		Double_t 					fCentralityBins[knCentMax];					// CentralityBins for Analysis
		Float_t 					fCentrality;								//! Event Centrality
		Int_t 						fCentralityBin;								//! Event Centrality Bin
		Int_t 						fNBinsPhi;									// Number of Phi wrt RP bins
		AliEventplane 				*fEP; 										//! Event Plane Pointer
		Bool_t 						fUseTPCOnlyTracks;							// Use TPC Only Tracks for EP
		Double_t 					fEtaMax;									// Eta Max for analysis;
		Double_t 					fEtaGap;									// Eta Gap
		Double_t 					fRPTPCEtaA;									//! TPCEtaA event plane
		Double_t 					fRPTPCEtaC;									//! TPCEtaC event plane
		Double_t 					fRPV0A;										//! V0A event plane
		Double_t 					fRPV0C;										//! V0C event plane
		Double_t 					fRPTPC;										//! TPC event plane
		Double_t 					fRPTPCEtaABF;								//! TPCEtaA event plane before flattening
		Double_t 					fRPTPCEtaCBF;								//! TPCEtaC event plane before flattening
		Double_t 					fRPV0ABF;									//! V0A event plane before flattening
		Double_t 					fRPV0CBF;									//! V0C event plane before flattening
		Double_t 					fRPTPCBF;									//! TPC event plane before flattening
		AliConvEventCuts 			*fEventCuts;							//! Cuts used by the V0Reader
		AliConversionPhotonCuts 	*fConversionCuts;							//! Cuts used by the V0Reader
		TRandom3 					*fRandomizer;								//! Randomizer for Event Plane Randomisation
		TList 						*fOutputList;								//! List for Output (Histograms etc.)
		EPDGCode 					fMesonPDGCode;								// PDG Code of the processed Meson (for MC truth)
		Double_t 					fInvMassRange[2];							// Inv Mass Range
		Double_t 					fDeltaPsiRP;								//! Difference between subEventPlane angles
		Int_t 						fRunNumber;									//! current run number
		Int_t 						fRunIndex;									//! current internal run index
		Int_t 						fNEPMethods;								// number of EP methods
		Bool_t 						fFillQA;									// Fill QA Histograms
		Int_t 						fHarmonic;									// Harmonic to be analyzed (v2,v3,..)
		Double_t 					fPsiMax;									// Range for Psi
		TString  					fPeriod;									//! "LHC11h","LHC10h"
		Bool_t 						fIsAOD;										//! Is AOD? else ESD
		TH1F 						*fPhiDist[4];								//! array of Phi distributions used to calculate phi weights
		THnSparse 					*fSparseDist; 								//! THn for eta-charge phi-weighting
		TH1F 						*fHruns;									//! information about runwise statistics of phi-weights
		Bool_t 						fDoEPFlattening;							// Do flattening
		Int_t 						fEPSelectionMask[knEPMethod]; 				// Which EP methods shall be applied
		Double_t 					fFlatc2[knFlatPeriod][knEP][knCentMax];
		Double_t 					fFlats2[knFlatPeriod][knEP][knCentMax];
		Double_t 					fFlatc4[knFlatPeriod][knEP][knCentMax];
		Double_t 					fFlats4[knFlatPeriod][knEP][knCentMax];
		Int_t 						fPeriodIndex; 								//!

		// Histograms
		TH1F 						*hNEvents; 									//!
		TH1F 						*hEventSelection; 							//!

		// RP
		TH2F 						*hRPTPC;									//!
		TH2F 						*hRPV0A;									//!
		TH2F 						*hRPV0C;									//!
		TH2F 						*hRPTPCAC;									//!
		TH2F 						*hRPV0ATPC;									//!
		TH2F 						*hRPV0CTPC;									//!
		TH2F 						*hRPV0AC;									//!
		TH2F 						*hCos2TPC;									//!
		TH2F 						*hCos2V0ATPC;								//!
		TH2F 						*hCos2V0CTPC;								//!
		TH2F 						*hCos2V0AC;									//!
		TH2F 						*hRPTPCEtaA;								//!
		TH2F 						*hRPTPCEtaC;								//!
		TH2F 						*hRPTPCEtaAC;								//!
		TH2F 						*hCos2TPCEta;								//!
		TH2F 						*hCos2V0ATPCEtaA;							//!
		TH2F 						*hCos2V0ATPCEtaC;							//!
		TH2F 						*hCos2V0CTPCEtaA;							//!
		TH2F 						*hCos2V0CTPCEtaC;							//!
		TH2F 						*hCos2SumWeights;							//!
		TH2F 						*hEtaTPCEP; 								//!

		// Gamma
		TH2F 						*hGammaMultCent;  							//!
		TH2F 						**hGammaPhi;								//!
		TH2F 						*hMultChargedvsNGamma;						//!
		TH2F 						*hMultChargedvsVZERO;						//!
		TH2F 						*hMultChargedvsSPD;							//!

		THnSparseF 					*hGammadNdPhi;								//!
		THnSparseF 					*hGammaMultdPhiTRUE;						//!
		THnSparseF 					*hGammaMultdPhiRECOTRUE;					//!
		THnSparseF 					*hGammaMultTRUE;							//!
		THnSparseF 					*hGammaMultRECOTRUE;						//!
		THnSparseF 					**hGammaMultdPhi;							//!
		THnSparseF 					**hGammaMult;								//!

		THnSparseF 					**hGamma;  									//!
		THnSparseF 					*hGammaFull;								//!
		THnSparseF	 				*hCharged;									//!

		// Pi0
		THnSparseF 					**hPi0;  									//!
		THnSparseF 					**hPi0BG;									//!

		//V0 Calibration

		static const 				Int_t nCentrBinV0 = 9;						// # cenrality bins
		TProfile 					*fMultV0;									//! object containing VZERO calibration information
		Float_t 					fV0Cpol,fV0Apol;							//! loaded by OADB
		Float_t 					fMeanQ[nCentrBinV0][2][2];					//! and recentering
		Float_t 					fWidthQ[nCentrBinV0][2][2];					//! ...

		//Event Plane
		//THnSparse 					*hEPVertex;
		THnSparse 					*hEPQA; //!

		ClassDef(AliAnalysisTaskPi0v2, 7); // example of analysis
};

#endif

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