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