ROOT logo
#ifndef AliAnalysisConversionQA_cxx
#define AliAnalysisConversionQA_cxx

#include "AliAnalysisTaskSE.h"
#include "AliConversionPhotonBase.h"
#include "TH1.h"
#include "TH2.h"
#include "TTreeStream.h"
#include "AliLog.h"
#include <vector>
#include "AliV0ReaderV1.h"
#include "AliConversionPhotonCuts.h"
#include "TList.h"
#include "AliStack.h"
#include "TClonesArray.h"


using namespace std;


class AliAnalysisTaskConversionQA : public AliAnalysisTaskSE{

	public:
	
		AliAnalysisTaskConversionQA();
		AliAnalysisTaskConversionQA(const char *name);
		virtual ~AliAnalysisTaskConversionQA();

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

		void SetV0Reader(AliV0ReaderV1 *v0Reader){fV0Reader=v0Reader;}
		void SetConversionCuts(AliConversionPhotonCuts* conversionCuts,Bool_t IsHeavyIon ){
			fConversionCuts=conversionCuts;
			fIsHeavyIon = IsHeavyIon;
		}
		void SetEventCuts(AliConvEventCuts* conversionCuts,Bool_t IsHeavyIon ){
			fEventCuts=conversionCuts;
			fIsHeavyIon = IsHeavyIon;
		}

		void FillType(Bool_t fillTree, Bool_t fillHistorams){
			ffillTree = fillTree;
			ffillHistograms = fillHistorams;
		}
		void SetIsMC(Bool_t isMC){fIsMC = isMC;}
	
	private:
			
		AliAnalysisTaskConversionQA(const AliAnalysisTaskConversionQA&); // Prevent copy-construction
		AliAnalysisTaskConversionQA &operator=(const AliAnalysisTaskConversionQA&); // Prevent assignment

		void ProcessQATree(AliAODConversionPhoton *gamma);
		void ProcessQA(AliAODConversionPhoton *gamma);
		void RelabelAODPhotonCandidates(Bool_t mode);
		void ProcessTrueQAESD(AliAODConversionPhoton *TruePhotonCandidate, AliESDtrack *elec, AliESDtrack *posi);
		void ProcessTrueQAAOD(AliAODConversionPhoton *TruePhotonCandidate, AliAODTrack *elec, AliAODTrack *posi);
		UInt_t IsTruePhotonESD(AliAODConversionPhoton *TruePhotonCandidate);
		UInt_t IsTruePhotonAOD(AliAODConversionPhoton *TruePhotonCandidate);
		void CountTracks();
		void SetLogBinningXTH2(TH2* histoRebin);
			
		AliV0ReaderV1 			*fV0Reader;    					//
		TClonesArray 			*fConversionGammas;				//
		AliConversionPhotonCuts 	*fConversionCuts; 				// Cuts used by the V0Reader
		AliConvEventCuts 		*fEventCuts;	 				// Cuts used by the V0Reader
		AliVEvent 				*fInputEvent;					//
		Int_t 					fNumberOfESDTracks;				//
		AliMCEvent 				*fMCEvent;						//
		AliStack 				*fMCStack;						//
		TTree	 				*fTreeQA;						//
		Bool_t 					fIsHeavyIon;					//
		Bool_t 					ffillTree;						//
		Bool_t 					ffillHistograms;				//
		TList 					*fOutputList;					//
		TList 					*fTreeList;						//
		TList 					*fESDList;						//
		TH1F 					*hVertexZ;						//
		TH1I 					*hNGoodESDTracks;				//
		TH1I 					*hNV0Tracks;					//
		TH1I 					*hNContributorsVertex;			//
		TH2F 					*hITSClusterPhi;				//
		TH1F 					*hGammaPt;						//
		TH1F 					*hGammaPhi;						//
		TH1F 					*hGammaPhi_Pos;					//
		TH1F 					*hGammaPhi_Neg;					//
		TH1F 					*hGammaEta;						//
		TH1F 					*hGammaChi2perNDF;				//
		TH1F 					*hGammaPsiPair;					//
		TH2F 					*hGammaArmenteros;				//
		TH1F 					*hGammaCosinePointingAngle;		//
		TH1F 					*hGammaInvMass;					//
		TH2F 					*hElecPt;						//
		TH2F 					*hElecEta;						//
		TH2F 					*hElecPhi;						//
		TH1F 					*hElecNfindableClsTPC;			//
		TH1F 					*hPosiNfindableClsTPC;			//
		TH1F 					*hElecClsTPC;					//
		TH1F 					*hPosiClsTPC;					//
		TH2F 					*hElectrondEdxP;				//
		TH2F						*hElectronITSdEdxP;				//
		TH2F	 					*hElectronTOFP;					//
		TH2F 					*hElectronNSigmadEdxP;			//
		TH2F 					*hElectronNSigmadEdxEta;		//
		TH2F 					*hElectronNSigmaPiondEdxP;		//
		TH2F 					*hElectronNSigmaITSP;			//
		TH2F 					*hElectronNSigmaTOFP;			//
		TH2F 					*hPositrondEdxP;				//
		TH2F 					*hPositronITSdEdxP;				//
		TH2F 					*hPositronTOFP;					//
		TH2F 					*hPositronNSigmadEdxP;			//
		TH2F 					*hPositronNSigmadEdxEta;		//
		TH2F 					*hPositronNSigmaPiondEdxP;		//
		TH2F 					*hPositronNSigmaITSP;			//
		TH2F  					*hPositronNSigmaTOFP;			//
		//    TH2F 						*hElecAsymP;					//
		//    TH2F 						*hGammaXY;						//
		//    TH2F 						*hGammaZR;   					//
		//    TList 					*fTrueList;						//
		//    TH2F 						*hTrueResolutionR;				//
		//    TH2F 						*hTrueResolutionZ;				//
		//    TH2F 						*hTrueResolutionPhi;			//
		//    TH1F 						*hTrueGammaPt;					//
		//    TH1F 						*hTrueGammaPhi;					//
		//    TH1F 						*hTrueGammaEta;					//
		//    TH1F 						*hTrueGammaMass;				//
		//    TH1F 						*hTrueGammaChi2perNDF;			//
		//    TH1F 						*hTrueGammaPsiPair;				//
		//    TH1F 						*hTrueGammaQt;					//
		//    TH1F 						*hTrueGammaCosinePointingAngle;	//
		//    TH2F 						*hTrueGammaXY;					//
		//    TH2F 						*hTrueGammaZR;					//
		//    TH2F 						*hTrueElecPt;					//
		//    TH2F 						*hTrueElecEta;					//
		//    TH2F 						*hTrueElecPhi;					//
		//    TH1F 						*hTrueElecNfindableClsTPC;		//
		//    TH1F 						*hTruePosiNfindableClsTPC;		//
		//    TH2F 						*hTrueElecAsymP;				//
		Float_t 					fGammaPt;						//
		Float_t 					fGammaTheta;					//
		Float_t 					fGammaChi2NDF;					//
		TVectorF 				fGammaPhotonProp;				//
		TVectorF 				fGammaConvCoord;				//
		TVectorF 				fDaughterProp;					//
		UInt_t 					fKind;							//
		Bool_t 					fIsMC;							//
		Int_t 					fnGammaCandidates;				//
		Int_t 					*fMCStackPos;     				//[fnGammaCandidates]
		Int_t 					*fMCStackNeg;     				//[fnGammaCandidates]
		
		ClassDef(AliAnalysisTaskConversionQA, 5);
};

#endif

 AliAnalysisTaskConversionQA.h:1
 AliAnalysisTaskConversionQA.h:2
 AliAnalysisTaskConversionQA.h:3
 AliAnalysisTaskConversionQA.h:4
 AliAnalysisTaskConversionQA.h:5
 AliAnalysisTaskConversionQA.h:6
 AliAnalysisTaskConversionQA.h:7
 AliAnalysisTaskConversionQA.h:8
 AliAnalysisTaskConversionQA.h:9
 AliAnalysisTaskConversionQA.h:10
 AliAnalysisTaskConversionQA.h:11
 AliAnalysisTaskConversionQA.h:12
 AliAnalysisTaskConversionQA.h:13
 AliAnalysisTaskConversionQA.h:14
 AliAnalysisTaskConversionQA.h:15
 AliAnalysisTaskConversionQA.h:16
 AliAnalysisTaskConversionQA.h:17
 AliAnalysisTaskConversionQA.h:18
 AliAnalysisTaskConversionQA.h:19
 AliAnalysisTaskConversionQA.h:20
 AliAnalysisTaskConversionQA.h:21
 AliAnalysisTaskConversionQA.h:22
 AliAnalysisTaskConversionQA.h:23
 AliAnalysisTaskConversionQA.h:24
 AliAnalysisTaskConversionQA.h:25
 AliAnalysisTaskConversionQA.h:26
 AliAnalysisTaskConversionQA.h:27
 AliAnalysisTaskConversionQA.h:28
 AliAnalysisTaskConversionQA.h:29
 AliAnalysisTaskConversionQA.h:30
 AliAnalysisTaskConversionQA.h:31
 AliAnalysisTaskConversionQA.h:32
 AliAnalysisTaskConversionQA.h:33
 AliAnalysisTaskConversionQA.h:34
 AliAnalysisTaskConversionQA.h:35
 AliAnalysisTaskConversionQA.h:36
 AliAnalysisTaskConversionQA.h:37
 AliAnalysisTaskConversionQA.h:38
 AliAnalysisTaskConversionQA.h:39
 AliAnalysisTaskConversionQA.h:40
 AliAnalysisTaskConversionQA.h:41
 AliAnalysisTaskConversionQA.h:42
 AliAnalysisTaskConversionQA.h:43
 AliAnalysisTaskConversionQA.h:44
 AliAnalysisTaskConversionQA.h:45
 AliAnalysisTaskConversionQA.h:46
 AliAnalysisTaskConversionQA.h:47
 AliAnalysisTaskConversionQA.h:48
 AliAnalysisTaskConversionQA.h:49
 AliAnalysisTaskConversionQA.h:50
 AliAnalysisTaskConversionQA.h:51
 AliAnalysisTaskConversionQA.h:52
 AliAnalysisTaskConversionQA.h:53
 AliAnalysisTaskConversionQA.h:54
 AliAnalysisTaskConversionQA.h:55
 AliAnalysisTaskConversionQA.h:56
 AliAnalysisTaskConversionQA.h:57
 AliAnalysisTaskConversionQA.h:58
 AliAnalysisTaskConversionQA.h:59
 AliAnalysisTaskConversionQA.h:60
 AliAnalysisTaskConversionQA.h:61
 AliAnalysisTaskConversionQA.h:62
 AliAnalysisTaskConversionQA.h:63
 AliAnalysisTaskConversionQA.h:64
 AliAnalysisTaskConversionQA.h:65
 AliAnalysisTaskConversionQA.h:66
 AliAnalysisTaskConversionQA.h:67
 AliAnalysisTaskConversionQA.h:68
 AliAnalysisTaskConversionQA.h:69
 AliAnalysisTaskConversionQA.h:70
 AliAnalysisTaskConversionQA.h:71
 AliAnalysisTaskConversionQA.h:72
 AliAnalysisTaskConversionQA.h:73
 AliAnalysisTaskConversionQA.h:74
 AliAnalysisTaskConversionQA.h:75
 AliAnalysisTaskConversionQA.h:76
 AliAnalysisTaskConversionQA.h:77
 AliAnalysisTaskConversionQA.h:78
 AliAnalysisTaskConversionQA.h:79
 AliAnalysisTaskConversionQA.h:80
 AliAnalysisTaskConversionQA.h:81
 AliAnalysisTaskConversionQA.h:82
 AliAnalysisTaskConversionQA.h:83
 AliAnalysisTaskConversionQA.h:84
 AliAnalysisTaskConversionQA.h:85
 AliAnalysisTaskConversionQA.h:86
 AliAnalysisTaskConversionQA.h:87
 AliAnalysisTaskConversionQA.h:88
 AliAnalysisTaskConversionQA.h:89
 AliAnalysisTaskConversionQA.h:90
 AliAnalysisTaskConversionQA.h:91
 AliAnalysisTaskConversionQA.h:92
 AliAnalysisTaskConversionQA.h:93
 AliAnalysisTaskConversionQA.h:94
 AliAnalysisTaskConversionQA.h:95
 AliAnalysisTaskConversionQA.h:96
 AliAnalysisTaskConversionQA.h:97
 AliAnalysisTaskConversionQA.h:98
 AliAnalysisTaskConversionQA.h:99
 AliAnalysisTaskConversionQA.h:100
 AliAnalysisTaskConversionQA.h:101
 AliAnalysisTaskConversionQA.h:102
 AliAnalysisTaskConversionQA.h:103
 AliAnalysisTaskConversionQA.h:104
 AliAnalysisTaskConversionQA.h:105
 AliAnalysisTaskConversionQA.h:106
 AliAnalysisTaskConversionQA.h:107
 AliAnalysisTaskConversionQA.h:108
 AliAnalysisTaskConversionQA.h:109
 AliAnalysisTaskConversionQA.h:110
 AliAnalysisTaskConversionQA.h:111
 AliAnalysisTaskConversionQA.h:112
 AliAnalysisTaskConversionQA.h:113
 AliAnalysisTaskConversionQA.h:114
 AliAnalysisTaskConversionQA.h:115
 AliAnalysisTaskConversionQA.h:116
 AliAnalysisTaskConversionQA.h:117
 AliAnalysisTaskConversionQA.h:118
 AliAnalysisTaskConversionQA.h:119
 AliAnalysisTaskConversionQA.h:120
 AliAnalysisTaskConversionQA.h:121
 AliAnalysisTaskConversionQA.h:122
 AliAnalysisTaskConversionQA.h:123
 AliAnalysisTaskConversionQA.h:124
 AliAnalysisTaskConversionQA.h:125
 AliAnalysisTaskConversionQA.h:126
 AliAnalysisTaskConversionQA.h:127
 AliAnalysisTaskConversionQA.h:128
 AliAnalysisTaskConversionQA.h:129
 AliAnalysisTaskConversionQA.h:130
 AliAnalysisTaskConversionQA.h:131
 AliAnalysisTaskConversionQA.h:132
 AliAnalysisTaskConversionQA.h:133
 AliAnalysisTaskConversionQA.h:134
 AliAnalysisTaskConversionQA.h:135
 AliAnalysisTaskConversionQA.h:136
 AliAnalysisTaskConversionQA.h:137
 AliAnalysisTaskConversionQA.h:138
 AliAnalysisTaskConversionQA.h:139
 AliAnalysisTaskConversionQA.h:140
 AliAnalysisTaskConversionQA.h:141
 AliAnalysisTaskConversionQA.h:142
 AliAnalysisTaskConversionQA.h:143
 AliAnalysisTaskConversionQA.h:144
 AliAnalysisTaskConversionQA.h:145
 AliAnalysisTaskConversionQA.h:146
 AliAnalysisTaskConversionQA.h:147
 AliAnalysisTaskConversionQA.h:148
 AliAnalysisTaskConversionQA.h:149
 AliAnalysisTaskConversionQA.h:150
 AliAnalysisTaskConversionQA.h:151
 AliAnalysisTaskConversionQA.h:152
 AliAnalysisTaskConversionQA.h:153
 AliAnalysisTaskConversionQA.h:154
 AliAnalysisTaskConversionQA.h:155
 AliAnalysisTaskConversionQA.h:156
 AliAnalysisTaskConversionQA.h:157