1 #ifndef ALIANLYSISTASKGAMMACONVV1_cxx
2 #define ALIANLYSISTASKGAMMACONVV1_cxx
4 #include "AliAnalysisTaskSE.h"
5 #include "AliESDtrack.h"
6 #include "AliV0ReaderV1.h"
7 #include "AliConvEventCuts.h"
8 #include "AliKFConversionPhoton.h"
9 #include "AliGammaConversionAODBGHandler.h"
10 #include "AliConversionAODBGHandlerRP.h"
11 #include "AliConversionMesonCuts.h"
12 #include "AliAnalysisManager.h"
13 #include "TProfile2D.h"
17 class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE {
20 AliAnalysisTaskGammaConvV1();
21 AliAnalysisTaskGammaConvV1(const char *name);
22 virtual ~AliAnalysisTaskGammaConvV1();
24 virtual void UserCreateOutputObjects();
25 virtual Bool_t Notify();
26 virtual void UserExec(Option_t *);
27 virtual void Terminate(const Option_t*);
30 void SetIsHeavyIon(Int_t flag){
35 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
36 void SetDoMesonAnalysis(Bool_t flag){fDoMesonAnalysis = flag;}
37 void SetDoMesonQA(Int_t flag){fDoMesonQA = flag;}
38 void SetDoPhotonQA(Int_t flag){fDoPhotonQA = flag;}
39 void ProcessPhotonCandidates();
40 void CalculatePi0Candidates();
41 void CalculateBackground();
42 void CalculateBackgroundRP();
43 void ProcessMCParticles();
44 void ProcessAODMCParticles();
45 void RelabelAODPhotonCandidates(Bool_t mode);
46 void ProcessTruePhotonCandidates( AliAODConversionPhoton* TruePhotonCandidate);
47 void ProcessTruePhotonCandidatesAOD( AliAODConversionPhoton* TruePhotonCandidate);
48 void ProcessTrueMesonCandidates( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
49 void ProcessTrueMesonCandidatesAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
50 void RotateParticle(AliAODConversionPhoton *gamma);
51 void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP);
52 void SetEventCutList(Int_t nCuts, TList *CutArray){
54 fEventCutArray = CutArray;
56 void SetConversionCutList(Int_t nCuts, TList *CutArray){
60 void SetMesonCutList(Int_t nCuts, TList *CutArray){
62 fMesonCutArray = CutArray;
66 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
67 void FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
68 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
69 void UpdateEventByEventData();
70 void SetLogBinningXTH2(TH2* histoRebin);
71 Int_t GetSourceClassification(Int_t daughter, Int_t pdgCode);
74 AliV0ReaderV1 *fV0Reader; //
75 AliGammaConversionAODBGHandler **fBGHandler; //
76 AliConversionAODBGHandlerRP **fBGHandlerRP; //
77 AliVEvent *fInputEvent; //
78 AliMCEvent *fMCEvent; //
79 AliStack *fMCStack; //
80 TList **fCutFolder; //
83 TList **fMotherList; //
84 TList **fPhotonDCAList; //
85 TList **fMesonDCAList; //
88 TList **fHeaderNameList; //
89 TList *fOutputContainer; //
90 TClonesArray *fReaderGammas; //
91 TList *fGammaCandidates; //
92 TList *fEventCutArray; //
93 AliConvEventCuts *fEventCuts; //
95 AliConversionPhotonCuts *fConversionCuts; //
96 TList *fMesonCutArray; //
97 AliConversionMesonCuts *fMesonCuts; //
98 TH1F **hESDConvGammaPt; //
99 TH1F **hESDConvGammaR; //
100 TH1F **hESDConvGammaEta; //
101 TTree **tESDConvGammaPtDcazCat; //
103 Float_t fDCAzPhoton; //
104 Float_t fRConvPhoton; //
105 Float_t fEtaPhoton; //
106 UChar_t iCatPhoton; //
107 UChar_t iPhotonMCInfo; //
110 // 2: secondary photon not from eta or k0s,
111 // 3: secondary photon from eta,
112 // 4: secondary photon from k0s,
115 TH2F **hESDMotherInvMassPt; //
116 THnSparseF **sESDMotherInvMassPtZM; //
117 TH2F **hESDMotherBackInvMassPt; //
118 THnSparseF **sESDMotherBackInvMassPtZM; //
119 TH2F **hESDMotherInvMassEalpha; //
120 TH2F **hESDMotherPi0PtY; //
121 TH2F **hESDMotherEtaPtY; //
122 TH2F **hESDMotherPi0PtAlpha; //
123 TH2F **hESDMotherEtaPtAlpha; //
124 TH2F **hESDMotherPi0PtOpenAngle; //
125 TH2F **hESDMotherEtaPtOpenAngle; //
126 TH1I **hMCHeaders; //
127 TH1F **hMCAllGammaPt; //
128 TH1F **hMCDecayGammaPi0Pt; //
129 TH1F **hMCDecayGammaRhoPt; //
130 TH1F **hMCDecayGammaEtaPt; //
131 TH1F **hMCDecayGammaOmegaPt; //
132 TH1F **hMCDecayGammaEtapPt; //
133 TH1F **hMCDecayGammaPhiPt; //
134 TH1F **hMCDecayGammaSigmaPt; //
135 TH1F **hMCConvGammaPt; //
136 TH1F **hMCConvGammaR; //
137 TH1F **hMCConvGammaEta; //
139 TH1F **hMCPi0WOWeightPt; //
141 TH1F **hMCEtaWOWeightPt; //
142 TH1F **hMCPi0InAccPt; //
143 TH1F **hMCEtaInAccPt; //
146 TH2F **hMCPi0PtAlpha; //
147 TH2F **hMCEtaPtAlpha; //
149 TH1F **hMCK0sWOWeightPt; //
151 TH2F **hMCSecPi0PtvsSource; //
152 TH1F **hMCSecPi0Source; //
153 TH1F **hMCSecEtaPt; //
154 TH1F **hMCSecEtaSource; //
155 TH2F **hESDTrueMotherInvMassPt; //
156 TH2F **hESDTruePrimaryMotherInvMassPt; //
157 TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt; //
158 TProfile2D **pESDTruePrimaryMotherWeightsInvMassPt; //
159 TH2F **hESDTruePrimaryPi0MCPtResolPt; //
160 TH2F **hESDTruePrimaryEtaMCPtResolPt; //
161 TH2F **hESDTrueSecondaryMotherInvMassPt; //
162 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt; //
163 TH1F **hESDTrueK0sWithPi0DaughterMCPt; //
164 TH2F **hESDTrueSecondaryMotherFromEtaInvMassPt; //
165 TH1F **hESDTrueEtaWithPi0DaughterMCPt; //
166 TH2F **hESDTrueSecondaryMotherFromLambdaInvMassPt; //
167 TH1F **hESDTrueLambdaWithPi0DaughterMCPt; //
168 TH2F **hESDTrueBckGGInvMassPt; //
169 TH2F **hESDTrueBckContInvMassPt; //
170 TH2F **hESDTruePi0PtY; //
171 TH2F **hESDTrueEtaPtY; //
172 TH2F **hESDTruePi0PtAlpha; //
173 TH2F **hESDTrueEtaPtAlpha; //
174 TH2F **hESDTruePi0PtOpenAngle; //
175 TH2F **hESDTrueEtaPtOpenAngle; //
176 TH2F **hESDTrueMotherDalitzInvMassPt; //
177 TH1F **hESDTrueConvGammaPt; //
178 TH1F **hESDTrueConvGammaEta; //
179 TH2F **hESDCombinatorialPt; //
180 TH1F **hESDTruePrimaryConvGammaPt; //
181 TH2F **hESDTruePrimaryConvGammaESDPtMCPt; //
182 TH1F **hESDTrueSecondaryConvGammaPt; //
183 TH1F **hESDTrueSecondaryConvGammaFromXFromK0sPt; //
184 TH1F **hESDTrueSecondaryConvGammaFromXFromLambdaPt; //
185 TH2F **hESDTrueDalitzPsiPairDeltaPhi; //
186 TH2F **hESDTrueGammaPsiPairDeltaPhi; //
188 TH1I **hNGoodESDTracks; //
189 TH1I **hNGammaCandidates; //
190 TH2F **hNGoodESDTracksVsNGammaCanditates; //
191 TH1I **hNV0Tracks; //
192 TProfile **hEtaShift; //
193 TTree **tESDMesonsInvMassPtDcazMinDcazMaxFlag; //
196 Float_t fDCAzGammaMin; //
197 Float_t fDCAzGammaMax; //
199 UChar_t iMesonMCInfo; //
202 // 2: secondary meson not from eta or k0s,
203 // 3: secondary meson from eta,
204 // 4: secondary meson from k0s,
206 // 6: primary meson gamma-gamma-channel
207 Double_t fEventPlaneAngle; // EventPlaneAngle
209 Int_t fnGammaCandidates; //
210 Double_t *fUnsmearedPx; //[fnGammaCandidates]
211 Double_t *fUnsmearedPy; //[fnGammaCandidates]
212 Double_t *fUnsmearedPz; //[fnGammaCandidates]
213 Double_t *fUnsmearedE; //[fnGammaCandidates]
214 Int_t *fMCStackPos; //[fnGammaCandidates]
215 Int_t *fMCStackNeg; //[fnGammaCandidates]
216 Int_t *fESDArrayPos; //[fnGammaCandidates]
217 Int_t *fESDArrayNeg; //[fnGammaCandidates]
220 Bool_t fMoveParticleAccordingToVertex; //
221 Int_t fIsHeavyIon; //
222 Bool_t fDoMesonAnalysis; //
224 Int_t fDoPhotonQA; //
225 Bool_t fIsFromMBHeader; //
230 AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
231 AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
232 ClassDef(AliAnalysisTaskGammaConvV1, 14);