TENDER becomes Tender, removing .so
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskGammaConvCalo.h
1 #ifndef ALIANLYSISTASKGAMMACONVCALO_cxx
2 #define ALIANLYSISTASKGAMMACONVCALO_cxx
3
4 #include "AliAnalysisTaskSE.h"
5 #include "AliESDtrack.h"
6 #include "AliV0ReaderV1.h"
7 #include "AliKFConversionPhoton.h"
8 #include "AliGammaConversionAODBGHandler.h"
9 #include "AliConversionAODBGHandlerRP.h"
10 #include "AliCaloPhotonCuts.h"
11 #include "AliConvEventCuts.h"
12 #include "AliConversionPhotonCuts.h"
13 #include "AliConversionMesonCuts.h"
14 #include "AliAnalysisManager.h"
15 #include "TProfile2D.h"
16 #include "TH3.h"
17 #include "TH3F.h"
18
19 class AliAnalysisTaskGammaConvCalo : public AliAnalysisTaskSE {
20         public:
21
22                 AliAnalysisTaskGammaConvCalo();
23                 AliAnalysisTaskGammaConvCalo(const char *name);
24                 virtual ~AliAnalysisTaskGammaConvCalo();
25
26                 virtual void   UserCreateOutputObjects();
27                 virtual Bool_t Notify();
28                 virtual void   UserExec(Option_t *);
29                 virtual void   Terminate(const Option_t*);
30                 void InitBack();
31
32                 void SetIsHeavyIon(Int_t flag){
33                         fIsHeavyIon = flag;    
34                 }
35
36                 // base functions for selecting photon and meson candidates in reconstructed data
37                 void ProcessClusters();
38                 void ProcessPhotonCandidates();
39                 void CalculatePi0Candidates();
40                 
41                 // MC functions
42                 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
43                 void ProcessMCParticles();
44                 void ProcessAODMCParticles();
45                 void RelabelAODPhotonCandidates(Bool_t mode);
46                 void ProcessTruePhotonCandidates( AliAODConversionPhoton* TruePhotonCandidate);
47                 void ProcessTrueClusterCandidates( AliAODConversionPhoton* TruePhotonCandidate);
48                 void ProcessTrueClusterCandidatesAOD( AliAODConversionPhoton* TruePhotonCandidate);
49                 void ProcessTruePhotonCandidatesAOD( AliAODConversionPhoton* TruePhotonCandidate);
50                 void ProcessTrueMesonCandidates( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1, Bool_t matched);
51                 void ProcessTrueMesonCandidatesAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1, Bool_t matched);
52                 void ProcessConversionPhotonsForMissingTags();
53                 void ProcessConversionPhotonsForMissingTagsAOD();
54                 
55                 // switches for additional analysis streams or outputs
56                 void SetDoMesonAnalysis(Bool_t flag){fDoMesonAnalysis = flag;}
57                 void SetDoMesonQA(Int_t flag){fDoMesonQA = flag;}
58                 void SetDoPhotonQA(Int_t flag){fDoPhotonQA = flag;}
59                 void SetDoClusterQA(Int_t flag){fDoClusterQA = flag;}
60                 
61             // Setting the cut lists for the conversion photons
62                 void SetEventCutList(Int_t nCuts, TList *CutArray){
63                         fnCuts = nCuts;
64                         fEventCutArray = CutArray;
65                 }
66
67                 // Setting the cut lists for the conversion photons
68                 void SetConversionCutList(Int_t nCuts, TList *CutArray){
69                         fnCuts = nCuts;
70                         fCutArray = CutArray;
71                 }
72
73             // Setting the cut lists for the calo photons
74                 void SetCaloCutList(Int_t nCuts, TList *CutArray){
75                         fnCuts = nCuts;
76                         fClusterCutArray = CutArray;
77                 }
78                 
79                 // Setting the cut lists for the meson
80                 void SetMesonCutList(Int_t nCuts, TList *CutArray){
81                         fnCuts = nCuts;
82                         fMesonCutArray = CutArray;
83                 }
84
85                 // BG HandlerSettings
86                 void CalculateBackground();
87                 void CalculateBackgroundRP();
88                 void RotateParticle(AliAODConversionPhoton *gamma);
89                 void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP);
90                 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
91                 void FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
92                 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
93                 void UpdateEventByEventData();
94                 
95                 // Additional functions for convenience
96                 void SetLogBinningXTH2(TH2* histoRebin);
97                 Int_t GetSourceClassification(Int_t daughter, Int_t pdgCode);
98                 Bool_t CheckIfContainedInString(TString input, Int_t tobechecked);
99                 Bool_t CheckIfContainedInStringAndAppend(TString &input, Int_t tobechecked);
100         
101         protected:
102                 AliV0ReaderV1                                           *fV0Reader;                                                     // basic photon Selection Task
103                 AliGammaConversionAODBGHandler          **fBGHandler;                                           // BG handler for Conversion 
104                 AliConversionAODBGHandlerRP             **fBGHandlerRP;                                         // BG handler for Conversion (possibility to mix with respect to RP)
105                 AliGammaConversionAODBGHandler          **fBGClusHandler;                                       // BG handler for Cluster
106                 AliConversionAODBGHandlerRP             **fBGClusHandlerRP;                             // BG handler for Cluster (possibility to mix with respect to RP)
107                 AliVEvent                                                       *fInputEvent;                                           // current event
108                 AliMCEvent                                                      *fMCEvent;                                                      // corresponding MC event
109                 AliStack                                                        *fMCStack;                                                      // stack belonging to MC event
110 //              AliESDEvent                                                     *fEsdEv;                                                        //!pointer to input esd event
111 //              AliAODEvent                                                     *fAodEv;                                                        //!pointer to input aod event
112 //              TObjArray                                                       *fEsdClusters;                                          //!pointer to esd clusters
113 //              AliESDCaloCells                                         *fEsdCells;                                                     //!pointer to esd cells
114 //              TObjArray                                                       *fAodClusters;                                          //!pointer to aod clusters
115 //              AliAODCaloCells                                         *fAodCells;                                                     //!pointer to aod cells
116                 TList                                                           **fCutFolder;                                           // Array of lists for containers belonging to cut
117                 TList                                                           **fESDList;                                                     // Array of lists with histograms with reconstructed properties   
118                 TList                                                           **fBackList;                                            // Array of lists with BG THnSparseF
119                 TList                                                           **fMotherList;                                          // Array of lists with Signal THnSparseF
120                 TList                                                           **fPhotonDCAList;                                       // Array of lists with photon dca trees
121                 TList                                                           **fTrueList;                                            // Array of lists with histograms with MC validated reconstructed properties
122                 TList                                                           **fMCList;                                                      // Array of lists with histograms with pure MC information
123                 TList                                                           **fHeaderNameList;                                      // Array of lists with header names for MC header selection
124                 TList                                                           **fClusterOutputList;                           //!Array of lists of output histograms for cluster photons
125                 TList                                                           *fOutputContainer;                                      // Output container
126                 TClonesArray                                            *fReaderGammas;                                         // Array with conversion photons selected by V0Reader Cut
127                 TList                                                           *fGammaCandidates;                                      // current list of photon candidates
128                 TList                                                           *fClusterCandidates;                            //! current list of cluster candidates
129                 TList                                                           *fEventCutArray;                                        // List with Event Cuts
130                 AliConvEventCuts                                        *fEventCuts;                                            // EventCutObject
131                 TList                                                           *fCutArray;                                                     // List with Conversion Cuts
132                 AliConversionPhotonCuts                         *fConversionCuts;                                       // ConversionCutObject
133                 TList                                                           *fClusterCutArray;                                      // List with Cluster Cuts
134                 AliCaloPhotonCuts                                       *fCaloPhotonCuts;                                       // CaloPhotonCutObject
135                 TList                                                           *fMesonCutArray;                                        // List with Meson Cuts
136                 AliConversionMesonCuts                          *fMesonCuts;                                            // MesonCutObject
137                 
138                 //histograms for Conversions reconstructed quantities
139                 TH1F                                                            **fHistoConvGammaPt;                            //! histogram conversion photon pT
140                 TH1F                                                            **fHistoConvGammaR;                                     //! histogram conversion photon R
141                 TH1F                                                            **fHistoConvGammaEta;                           //! histogram conversion photon Eta
142                 TTree                                                           **fTreeConvGammaPtDcazCat;                      //! tree with dca for conversions
143                 Float_t                                                         fPtGamma;                                                       //! pt of conversion for tree
144                 Float_t                                                         fDCAzPhoton;                                            //! dcaz of conversion for tree
145                 Float_t                                                         fRConvPhoton;                                           //! R of conversion for tree
146                 Float_t                                                         fEtaPhoton;                                                     //! eta of conversion for tree
147                 UChar_t                                                         fCharCatPhoton;                                         //! category of conversion for tree
148                 UChar_t                                                         fCharPhotonMCInfo;                                      //! MC info of conversion for tree
149                                                                                         // 0: garbage,
150                                                                                         // 1: background
151                                                                                         // 2: secondary photon not from eta or k0s,
152                                                                                         // 3: secondary photon from eta, 
153                                                                                         // 4: secondary photon from k0s, 
154                                                                                         // 5: dalitz
155                                                                                         // 6: primary gamma
156                 //histograms for mesons reconstructed quantities
157                 TH2F                                                            **fHistoMotherInvMassPt;                        //! array of histogram with signal + BG for same event photon pairs, inv Mass, pt
158                 TH2F                                                            **fHistoMotherMatchedInvMassPt;         //! array of histogram with signal + BG for same event photon pairs, inv Mass, pt
159                 THnSparseF                                                      **fSparseMotherInvMassPtZM;                     //! array of THnSparseF with signal + BG for same event photon pairs, inv Mass, pt
160                 TH2F                                                            **fHistoMotherBackInvMassPt;            //! array of histogram with BG for mixed event photon pairs, inv Mass, pt
161                 THnSparseF                                                      **fSparseMotherBackInvMassPtZM;         //! array of THnSparseF with BG for same event photon pairs, inv Mass, pt
162                 TH2F                                                            **fHistoMotherInvMassEalpha;            //! array of histograms with alpha cut of 0.1 for inv mass vs pt
163                 TH2F                                                            **fHistoMotherPi0PtY;                           //! array of histograms with invariant mass cut of 0.05 && pi0cand->M() < 0.17, pt, Y
164                 TH2F                                                            **fHistoMotherEtaPtY;                           //! array of histograms with invariant mass cut of 0.45 && pi0cand->M() < 0.65, pt, Y
165                 TH2F                                                            **fHistoMotherPi0PtAlpha;                       //! array of histograms with invariant mass cut of 0.05 && pi0cand->M() < 0.17, pt, alpha
166                 TH2F                                                            **fHistoMotherEtaPtAlpha;                       //! array of histograms with invariant mass cut of 0.45 && pi0cand->M() < 0.65, pt, alpha
167                 TH2F                                                            **fHistoMotherPi0PtOpenAngle;           //! array of histograms with invariant mass cut of 0.05 && pi0cand->M() < 0.17, pt, openAngle
168                 TH2F                                                            **fHistoMotherEtaPtOpenAngle;           //! array of histograms with invariant mass cut of 0.45 && pi0cand->M() < 0.65, pt, openAngle
169         TH2F                                **fHistoMotherPi0ConvPhotonEtaPhi;  //! array of histograms with invariant mass cut of 0.05 && pi0cand->M() < 0.17 ,eta/phi of conversion photon
170         TH2F                                **fHistoMotherEtaConvPhotonEtaPhi;  //! array of histograms with invariant mass cut of 0.45 && pi0cand->M() < 0.65 ,eta/phi of conversion photon
171                 TH2F                                                            **fHistoMotherInvMassECalib;            //! array of histogram with signal + BG for same event photon pairs, inv Mass, energy of cluster
172                 TH2F                                                            **fHistoMotherInvMassECalibalpha;       //! array of histogram with signal + BG for same event photon pairs, inv Mass, energy of cluster, alpha cut 0.1
173
174                 // histograms for rec photons tagged by Calo
175                 TH2F                                                            **fHistoPhotonPairPtconv;                       //! array of histo for pairs vs. pt of converted photon
176                 TH2F                                                            **fHistoPhotonPairMixedEventPtconv;                     //! array of histo for pairs vs. pt of converted photon
177                 // histograms for rec photon clusters
178                 TH1F                                                            ** fHistoClusGammaPt;                           //! array of histos with cluster, pt
179                 TH1F                                                            ** fHistoClusOverlapHeadersGammaPt;     //! array of histos with cluster, pt overlapping with other headers
180                                                                                 
181                 //histograms for pure MC quantities
182                 TH1I                                                            **fHistoMCHeaders;                                      //! array of histos for header names
183                 TH1F                                                            **fHistoMCAllGammaPt;                           //! array of histos with all gamma, pT
184                 TH1F                                                            **fHistoMCAllGammaEMCALAccPt;           //! array of histos with all gamma in EMCAL acceptance, pT
185                 TH1F                                                            **fHistoMCDecayGammaPi0Pt;                      //! array of histos with decay gamma from pi0, pT
186                 TH1F                                                            **fHistoMCDecayGammaRhoPt;                      //! array of histos with decay gamma from rho, pT
187                 TH1F                                                            **fHistoMCDecayGammaEtaPt;                      //! array of histos with decay gamma from eta, pT
188                 TH1F                                                            **fHistoMCDecayGammaOmegaPt;            //! array of histos with decay gamma from omega, pT
189                 TH1F                                                            **fHistoMCDecayGammaEtapPt;                     //! array of histos with decay gamma from eta', pT
190                 TH1F                                                            **fHistoMCDecayGammaPhiPt;                      //! array of histos with decay gamma from phi, pT
191                 TH1F                                                            **fHistoMCDecayGammaSigmaPt;            //! array of histos with decay gamma from Sigma0, pT
192                 TH1F                                                            **fHistoMCConvGammaPt;                          //! array of histos with converted gamma, pT
193                 TH1F                                                            **fHistoMCConvGammaR;                           //! array of histos with converted gamma, R
194                 TH1F                                                            **fHistoMCConvGammaEta;                         //! array of histos with converted gamma, Eta
195                 TH1F                                                            **fHistoMCPi0Pt;                                        //! array of histos with weighted pi0, pT
196                 TH1F                                                            **fHistoMCPi0WOWeightPt;                        //! array of histos with unweighted pi0, pT
197                 TH1F                                                            **fHistoMCEtaPt;                                        //! array of histos with weighted eta, pT
198                 TH1F                                                            **fHistoMCEtaWOWeightPt;                        //! array of histos with unweighted eta, pT
199                 TH1F                                                            **fHistoMCPi0InAccPt;                           //! array of histos with weighted pi0 in acceptance, pT
200                 TH1F                                                            **fHistoMCEtaInAccPt;                           //! array of histos with weighted eta in acceptance, pT
201                 TH2F                                                            **fHistoMCPi0PtY;                                       //! array of histos with weighted pi0, pT, Y
202                 TH2F                                                            **fHistoMCEtaPtY;                                       //! array of histos with weighted eta, pT, Y
203                 TH2F                                                            **fHistoMCPi0PtAlpha;                                   //! array of histos with weighted pi0, pT, alpha
204                 TH2F                                                            **fHistoMCEtaPtAlpha;                                   //! array of histos with weighted eta, pT, alpha
205                 TH1F                                                            **fHistoMCK0sPt;                                        //! array of histos with weighted K0s, pT
206                 TH1F                                                            **fHistoMCK0sWOWeightPt;                        //! array of histos with unweighted K0s, pT
207                 TH2F                                                            **fHistoMCK0sPtY;                                       //! array of histos with weighted K0s, pT, Y
208                 TH2F                                                            **fHistoMCSecPi0PtvsSource;                     //! array of histos with secondary pi0, pT, source
209                 TH1F                                                            **fHistoMCSecPi0Source;                         //! array of histos with secondary pi0, source
210                 TH1F                                                            **fHistoMCSecEtaPt;                                     //! array of histos with secondary eta, pT
211                 TH1F                                                            **fHistoMCSecEtaSource;                         //! array of histos with secondary eta, source
212                 // MC validated reconstructed quantities mesons
213                 TH2F                                                            **fHistoTruePi0InvMassPt;                                               //! array of histos with validated pi0, invMass, pt
214                 TH2F                                                            **fHistoTrueEtaInvMassPt;                                               //! array of histos with validated eta, invMass, pt
215                 TH2F                                                            **fHistoTruePi0CaloPhotonInvMassPt;                             //! array of histos with validated pi0, photon leading, invMass, pt
216                 TH2F                                                            **fHistoTrueEtaCaloPhotonInvMassPt;                             //! array of histos with validated eta, photon leading, invMass, pt
217                 TH2F                                                            **fHistoTruePi0CaloConvertedPhotonInvMassPt;    //! array of histos with validated pi0, converted photon leading, invMass, pt
218                 TH2F                                                            **fHistoTruePi0CaloConvertedPhotonMatchedInvMassPt;     //! array of histos with validated pi0 matched with conv photon, converted photon leading, invMass, pt
219                 TH2F                                                            **fHistoTrueEtaCaloConvertedPhotonInvMassPt;    //! array of histos with validated eta, converted photon leading, invMass, pt
220                 TH2F                                                            **fHistoTrueEtaCaloConvertedPhotonMatchedInvMassPt;     //! array of histos with validated eta matched with conv photon, converted photon leading, invMass, pt
221                 TH2F                                                            **fHistoTruePi0CaloElectronInvMassPt;                   //! array of histos with validated mothers, electron leading, invMass, pt
222                 TH2F                                                            **fHistoTrueEtaCaloElectronInvMassPt;                   //! array of histos with validated mothers, electron leading, invMass, pt
223                 TH2F                                                            **fHistoTruePi0CaloMergedClusterInvMassPt;              //! array of histos with validated mothers, merged cluster invMass, pt
224                 TH2F                                                            **fHistoTrueEtaCaloMergedClusterInvMassPt;              //! array of histos with validated mothers, merged cluster invMass, pt
225                 TH2F                                                            **fHistoTrueMotherCaloEMNonLeadingInvMassPt;    //! array of histos with validated mothers, EM non leading, invMass, pt
226                 TH2F                                                            **fHistoTruePi0CaloMergedClusterPartConvInvMassPt; //! array of histos with validated mothers, merged cluster part conv, invMass, pt
227                 TH2F                                                            **fHistoTrueEtaCaloMergedClusterPartConvInvMassPt; //! array of histos with validated mothers, merged cluster part conv, invMass, pt
228                 TH2F                                                            **fHistoTruePrimaryPi0InvMassPt;                                //! array of histos with validated weighted primary mothers, invMass, pt
229                 TH2F                                                            **fHistoTruePrimaryEtaInvMassPt;                                //! array of histos with validated weighted primary mothers, invMass, pt
230                 TH2F                                                            **fHistoTruePrimaryPi0W0WeightingInvMassPt;             //! array of histos with validated unweighted primary mothers, invMass, pt
231                 TH2F                                                            **fHistoTruePrimaryEtaW0WeightingInvMassPt;             //! array of histos with validated unweighted primary mothers, invMass, pt
232                 TProfile2D                                                      **fProfileTruePrimaryPi0WeightsInvMassPt;               //! array of profiles with weights for validated primary mothers, invMass, pt   
233                 TProfile2D                                                      **fProfileTruePrimaryEtaWeightsInvMassPt;               //! array of profiles with weights for validated primary mothers, invMass, pt   
234                 TH2F                                                            **fHistoTruePrimaryPi0MCPtResolPt;                              //! array of histos with validated weighted primary pi0, MCpt, resol pt
235                 TH2F                                                            **fHistoTruePrimaryEtaMCPtResolPt;                              //! array of histos with validated weighted primary eta, MCpt, resol pt
236         TH2F                                **fHistoTrueMotherPi0ConvPhotonEtaPhi;              //! array of histograms with invariant mass cut of 0.05 && pi0cand->M() < 0.17 ,eta/phi of conversion photon
237         TH2F                                **fHistoTrueMotherEtaConvPhotonEtaPhi;              //! array of histograms with invariant mass cut of 0.45 && pi0cand->M() < 0.65 ,eta/phi of conversion photon
238                 TH2F                                                            **fHistoTrueSecondaryPi0InvMassPt;                              //! array of histos with validated secondary mothers, invMass, pt
239                 TH2F                                                            **fHistoTrueSecondaryPi0FromK0sInvMassPt;               //! array of histos with validated secondary mothers from K0s, invMass, pt
240                 TH1F                                                            **fHistoTrueK0sWithPi0DaughterMCPt;                             //! array of histos with K0s with reconstructed pi0 as daughter, pt
241                 TH2F                                                            **fHistoTrueSecondaryPi0FromEtaInvMassPt;               //! array of histos with validated secondary mothers from eta, invMass, pt
242                 TH1F                                                            **fHistoTrueEtaWithPi0DaughterMCPt;                             //! array of histos with eta with reconstructed pi0 as daughter, pt
243                 TH2F                                                            **fHistoTrueSecondaryPi0FromLambdaInvMassPt;    //! array of histos with validated secondary mothers from Lambda, invMass, pt
244                 TH1F                                                            **fHistoTrueLambdaWithPi0DaughterMCPt;                  //! array of histos with lambda with reconstructed pi0 as daughter, pt
245                 TH2F                                                            **fHistoTrueBckGGInvMassPt;                                             //! array of histos with pure gamma gamma combinatorial BG, invMass, pt
246                 TH2F                                                            **fHistoTrueBckContInvMassPt;                                   //! array of histos with contamination BG, invMass, pt
247                 TH2F                                                            **fHistoTruePi0PtY;                                                             //! array of histos with validated pi0, pt, Y
248                 TH2F                                                            **fHistoTrueEtaPtY;                                                             //! array of histos with validated eta, pt, Y
249                 TH2F                                                            **fHistoTruePi0PtAlpha;                                                 //! array of histos with validated pi0, pt, alpha
250                 TH2F                                                            **fHistoTrueEtaPtAlpha;                                                 //! array of histos with validated eta, pt, alpha
251                 TH2F                                                            **fHistoTruePi0PtOpenAngle;                                             //! array of histos with validated pi0, pt, openAngle
252                 TH2F                                                            **fHistoTrueEtaPtOpenAngle;                                             //! array of histos with validated eta, pt, openAngle
253                 // MC validated reconstructed quantities photons
254                 TH1F                                                            **fHistoTrueConvGammaPt;                                                //! array of histos with validated conversion photon, pt
255                 TH1F                                                            **fHistoTrueConvPi0GammaPt;                                             //! array of histos with validated conversion photon from pi0, pt
256                 TH1F                                                            **fHistoTrueConvGammaEta;                                               //! array of histos with validated conversion photon, eta
257                 TH2F                                                            **fHistoCombinatorialPt;                                                //! array of histos with combinatorial BG, pt, source
258                 TH1F                                                            **fHistoTruePrimaryConvGammaPt;                                 //! array of histos with validated primary conversion photon, pt  
259                 TH2F                                                            **fHistoTruePrimaryConvGammaESDPtMCPt;                  //! array of histos with validated primary conversion photon, rec pt, mc pt  
260                 TH1F                                                            **fHistoTrueSecondaryConvGammaPt;                               //! array of histos with validated secondary conversion photon, pt  
261                 TH1F                                                            **fHistoTrueSecondaryConvGammaFromXFromK0sPt;   //! array of histos with validated secondary conversion photon from K0s, pt  
262                 TH1F                                                            **fHistoTrueSecondaryConvGammaFromXFromLambdaPt;//! array of histos with validated secondary conversion photon from Lambda, pt  
263                 TH1F                                                            **fHistoTrueClusGammaPt;                                                //! array of histos with validated cluster (electron or photon), pt
264                 TH1F                                                            **fHistoTrueClusUnConvGammaPt;                                  //! array of histos with validated unconverted photon, pt
265                 TH1F                                                            **fHistoTrueClusUnConvGammaMCPt;                                        //! array of histos with validated unconverted photon, pt
266                 TH1F                                                            **fHistoTrueClusElectronPt;                                             //! array of histos with validated electron, pt
267                 TH1F                                                            **fHistoTrueClusConvGammaPt;                                    //! array of histos with validated converted photon, pt
268                 TH1F                                                            **fHistoTrueClusConvGammaMCPt;                                  //! array of histos with validated converted photon, pt
269                 TH1F                                                            **fHistoTrueClusConvGammaFullyPt;                               //! array of histos with validated converted photon, fully contained, pt
270                 TH1F                                                            **fHistoTrueClusMergedGammaPt;                                  //! array of histos with validated merged photons, electrons, dalitz, pt
271                 TH1F                                                            **fHistoTrueClusMergedPartConvGammaPt;                  //! array of histos with validated merged partially converted photons, pt
272                 TH1F                                                            **fHistoTrueClusDalitzPt;                                               //! array of histos with validated Dalitz decay, pt
273                 TH1F                                                            **fHistoTrueClusDalitzMergedPt;                                 //! array of histos with validated Dalitz decay, more than one decay product in cluster, pt
274                 TH1F                                                            **fHistoTrueClusPhotonFromElecMotherPt;                 //! array of histos with validated photon from electron, pt
275                 TH1F                                                            **fHistoTrueClusShowerPt;                                               //! array of histos with validated shower, pt
276         TH1F                                **fHistoTrueClusSubLeadingPt;                   //! array of histos with pi0/eta/eta_prime in subleading contribution
277         TH1I                                **fHistoTrueClusNParticles;                     //! array of histos with number of different particles (pi0/eta/eta_prime) contributing to cluster
278                 TH1F                                                            **fHistoTrueClusEMNonLeadingPt;                                 //! array of histos with cluster with largest energy by hadron
279                 TH1F                                                            **fHistoTrueNLabelsInClus;                                              //! array of histos with number of labels in cluster 
280                 TH1F                                                            **fHistoTruePrimaryClusGammaPt;                                 //! array of histos with validated primary cluster, pt
281                 TH2F                                                            **fHistoTruePrimaryClusGammaESDPtMCPt;                  //! array of histos with validated primary cluster, rec Pt, MC pt
282                 TH2F                                                            **fHistoTruePrimaryPi0PhotonPairPtconv;                 //! array of histos with validated primary pi0's vs conversion photon pT
283                 TH1F                                                            **fHistoTruePrimaryPi0DCPtconv;                                 //! array of histos with validated primary pi0's vs conversion photon pT, double counting
284                 TH1F                                                            **fHistoTruePrimaryPi0MissingPtconv;                    //! array of histos with validated primary pi0's vs conversion photon pT, missing
285                 TH2F                                                            **fHistoTruePrimaryEtaPhotonPairPtconv;                 //! array of histos with validated primary eta's vs conversion photon pT
286                 TH1F                                                            **fHistoTruePrimaryEtaDCPtconv;                                 //! array of histos with validated primary eta's vs conversion photon pT, double counting
287                 TH1F                                                            **fHistoTruePrimaryEtaMissingPtconv;                    //! array of histos with validated primary eta's vs conversion photon pT, missing
288                 TH2F                                                            **fHistoTrueSecondaryPi0PhotonPairPtconv;               //! array of histos with validated secondary pi0's vs conversion photon pT
289                 TH1F                                                            **fHistoTrueSecondaryPi0DCPtconv;                               //! array of histos with validated secondary pi0's vs conversion photon pT, double counting
290                 TH1F                                                            **fHistoTrueSecondaryPi0MissingPtconv;                  //! array of histos with validated secondary pi0's vs conversion photon pT, missing
291                 TString                                                         *fStringRecTruePi0s;                                                    //! array of strings containing the stack position of the reconstructed validated pi0
292                 TString                                                         *fStringRecTrueEtas;                                                    //! array of strings containing the stack position of the reconstructed validated eta
293                 // event histograms
294                 TH1I                                                            **fHistoNEvents;                                                                //! array of histos with event information
295                 TH1I                                                            **fHistoNGoodESDTracks;                                                 //! array of histos with number of good tracks (2010 Standard track cuts)
296                 TH1I                                                            **fHistoNGammaCandidates;                                               //! array of histos with number of gamma candidates per event
297                 TH2F                                                            **fHistoNGoodESDTracksVsNGammaCanditates;               //! array of histos with number of good tracks vs gamma candidates
298                 TH1I                                                            **fHistoNV0Tracks;                                                              //! array of histos with V0 counts
299                 TProfile                                                        **fProfileEtaShift;                                                             //! array of profiles with eta shift
300                 
301                 // additional variables
302                 Double_t                                                        fEventPlaneAngle;                                       // EventPlaneAngle
303                 TRandom3                                                        fRandom;                                                        // random 
304                 Int_t                                                           fNGammaCandidates;                                      // number of gamma candidates in event
305                 Double_t                                                        *fUnsmearedPx;                                          //[fNGammaCandidates]
306                 Double_t                                                        *fUnsmearedPy;                                          //[fNGammaCandidates]
307                 Double_t                                                        *fUnsmearedPz;                                          //[fNGammaCandidates]
308                 Double_t                                                        *fUnsmearedE;                                           //[fNGammaCandidates]
309                 Int_t                                                           *fMCStackPos;                                           //[fNGammaCandidates]
310                 Int_t                                                           *fMCStackNeg;                                           //[fNGammaCandidates]
311                 Int_t                                                           *fESDArrayPos;                                          //[fNGammaCandidates]
312                 Int_t                                                           *fESDArrayNeg;                                          //[fNGammaCandidates]
313                 Int_t                                                           fnCuts;                                                         // number of cuts to be analysed in parallel
314                 Int_t                                                           fiCut;                                                          // current cut  
315                 Bool_t                                                          fMoveParticleAccordingToVertex;         // boolean for BG calculation
316                 Int_t                                                           fIsHeavyIon;                                            // switch for pp = 0, PbPb = 1, pPb = 2
317                 Bool_t                                                          fDoMesonAnalysis;                                       // flag for meson analysis
318                 Int_t                                                           fDoMesonQA;                                                     // flag for meson QA
319                 Int_t                                                           fDoPhotonQA;                                            // flag for photon QA
320                 Int_t                                                           fDoClusterQA;                                           // flag for cluster QA
321                 Bool_t                                                          fIsFromMBHeader;                                        // flag for MC headers
322                 Bool_t                                                          fIsOverlappingWithOtherHeader;          // flag for particles in MC overlapping between headers
323                 Bool_t                                                          fIsMC;                                                          // flag for MC information
324
325                 
326         private:
327                 AliAnalysisTaskGammaConvCalo(const AliAnalysisTaskGammaConvCalo&); // Prevent copy-construction
328                 AliAnalysisTaskGammaConvCalo &operator=(const AliAnalysisTaskGammaConvCalo&); // Prevent assignment
329
330                 ClassDef(AliAnalysisTaskGammaConvCalo, 5);
331 };
332
333 #endif