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 SetDoTHnSparse(Bool_t flag){fDoTHnSparse = flag;}
40 void ProcessPhotonCandidates();
41 void CalculatePi0Candidates();
42 void CalculateBackground();
43 void CalculateBackgroundRP();
44 void ProcessMCParticles();
45 void ProcessAODMCParticles();
46 void RelabelAODPhotonCandidates(Bool_t mode);
47 void ProcessTruePhotonCandidates( AliAODConversionPhoton* TruePhotonCandidate);
48 void ProcessTruePhotonCandidatesAOD( AliAODConversionPhoton* TruePhotonCandidate);
49 void ProcessTrueMesonCandidates( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
50 void ProcessTrueMesonCandidatesAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
51 void RotateParticle(AliAODConversionPhoton *gamma);
52 void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP);
53 void SetEventCutList(Int_t nCuts, TList *CutArray){
55 fEventCutArray = CutArray;
57 void SetConversionCutList(Int_t nCuts, TList *CutArray){
61 void SetMesonCutList(Int_t nCuts, TList *CutArray){
63 fMesonCutArray = CutArray;
67 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
68 void FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
69 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
70 void UpdateEventByEventData();
71 void SetLogBinningXTH2(TH2* histoRebin);
72 Int_t GetSourceClassification(Int_t daughter, Int_t pdgCode);
75 AliV0ReaderV1 *fV0Reader; //
76 AliGammaConversionAODBGHandler **fBGHandler; //
77 AliConversionAODBGHandlerRP **fBGHandlerRP; //
78 AliVEvent *fInputEvent; //
79 AliMCEvent *fMCEvent; //
80 AliStack *fMCStack; //
81 TList **fCutFolder; //
84 TList **fMotherList; //
85 TList **fPhotonDCAList; //
86 TList **fMesonDCAList; //
89 TList **fHeaderNameList; //
90 TList *fOutputContainer; //
91 TClonesArray *fReaderGammas; //
92 TList *fGammaCandidates; //
93 TList *fEventCutArray; //
94 AliConvEventCuts *fEventCuts; //
96 AliConversionPhotonCuts *fConversionCuts; //
97 TList *fMesonCutArray; //
98 AliConversionMesonCuts *fMesonCuts; //
99 TH1F **hESDConvGammaPt; //!
100 TH1F **hESDConvGammaR; //!
101 TH1F **hESDConvGammaEta; //!
102 TH1F **hESDConvGammaPhi; //!
103 TTree **tESDConvGammaPtDcazCat; //!
104 Float_t fPtGamma; //!
105 Float_t fDCAzPhoton; //!
106 Float_t fRConvPhoton; //!
107 Float_t fEtaPhoton; //!
108 UChar_t iCatPhoton; //!
109 UChar_t iPhotonMCInfo; //!
112 // 2: secondary photon not from eta or k0s,
113 // 3: secondary photon from eta,
114 // 4: secondary photon from k0s,
117 TH2F **hESDMotherInvMassPt; //!
118 THnSparseF **sESDMotherInvMassPtZM; //!
119 TH2F **hESDMotherBackInvMassPt; //!
120 THnSparseF **sESDMotherBackInvMassPtZM; //!
121 TH2F **hESDMotherInvMassEalpha; //!
122 TH2F **hESDMotherPi0PtY; //!
123 TH2F **hESDMotherEtaPtY; //!
124 TH2F **hESDMotherPi0PtAlpha; //!
125 TH2F **hESDMotherEtaPtAlpha; //!
126 TH2F **hESDMotherPi0PtOpenAngle; //!
127 TH2F **hESDMotherEtaPtOpenAngle; //!
128 TH1I **hMCHeaders; //!
129 TH1F **hMCAllGammaPt; //!
130 TH1F **hMCDecayGammaPi0Pt; //!
131 TH1F **hMCDecayGammaRhoPt; //!
132 TH1F **hMCDecayGammaEtaPt; //!
133 TH1F **hMCDecayGammaOmegaPt; //!
134 TH1F **hMCDecayGammaEtapPt; //!
135 TH1F **hMCDecayGammaPhiPt; //!
136 TH1F **hMCDecayGammaSigmaPt; //!
137 TH1F **hMCConvGammaPt; //!
138 TH1F **hMCConvGammaR; //!
139 TH1F **hMCConvGammaEta; //!
141 TH1F **hMCPi0WOWeightPt; //!
143 TH1F **hMCEtaWOWeightPt; //!
144 TH1F **hMCPi0InAccPt; //!
145 TH1F **hMCEtaInAccPt; //!
146 TH2F **hMCPi0PtY; //!
147 TH2F **hMCEtaPtY; //!
148 TH2F **hMCPi0PtAlpha; //!
149 TH2F **hMCEtaPtAlpha; //!
151 TH1F **hMCK0sWOWeightPt; //!
152 TH2F **hMCK0sPtY; //!
153 TH2F **hMCSecPi0PtvsSource; //!
154 TH2F **hMCSecPi0RvsSource; //!
155 TH1F **hMCSecPi0Source; //!
156 TH1F **hMCSecEtaPt; //!
157 TH1F **hMCSecEtaSource; //!
158 TH2F **hESDTrueMotherInvMassPt; //!
159 TH2F **hESDTruePrimaryMotherInvMassPt; //!
160 TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt; //!
161 TProfile2D **pESDTruePrimaryMotherWeightsInvMassPt; //!
162 TH2F **hESDTruePrimaryPi0MCPtResolPt; //!
163 TH2F **hESDTruePrimaryEtaMCPtResolPt; //!
164 TH2F **hESDTrueSecondaryMotherInvMassPt; //!
165 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt; //!
166 TH1F **hESDTrueK0sWithPi0DaughterMCPt; //!
167 TH2F **hESDTrueSecondaryMotherFromEtaInvMassPt; //!
168 TH1F **hESDTrueEtaWithPi0DaughterMCPt; //!
169 TH2F **hESDTrueSecondaryMotherFromLambdaInvMassPt; //!
170 TH1F **hESDTrueLambdaWithPi0DaughterMCPt; //!
171 TH2F **hESDTrueBckGGInvMassPt; //!
172 TH2F **hESDTrueBckContInvMassPt; //!
173 TH2F **hESDTruePi0PtY; //!
174 TH2F **hESDTrueEtaPtY; //!
175 TH2F **hESDTruePi0PtAlpha; //!
176 TH2F **hESDTrueEtaPtAlpha; //!
177 TH2F **hESDTruePi0PtOpenAngle; //!
178 TH2F **hESDTrueEtaPtOpenAngle; //!
179 TH2F **hESDTrueMotherDalitzInvMassPt; //!
180 TH1F **hESDTrueConvGammaPt; //!
181 TH1F **hESDTrueConvGammaR; //!
182 TH1F **hESDTrueConvGammaPtMC; //!
183 TH1F **hESDTrueConvGammaRMC; //!
184 TH1F **hESDTrueConvGammaEta; //!
185 TH2F **hESDCombinatorialPt; //!
186 TH1F **hESDTruePrimaryConvGammaPt; //!
187 TH2F **hESDTruePrimaryConvGammaESDPtMCPt; //!
188 TH1F **hESDTrueSecondaryConvGammaPt; //!
189 TH1F **hESDTrueSecondaryConvGammaFromXFromK0sPt; //!
190 TH1F **hESDTrueSecondaryConvGammaFromXFromLambdaPt; //!
191 TH2F **hESDTrueDalitzPsiPairDeltaPhi; //!
192 TH2F **hESDTrueGammaPsiPairDeltaPhi; //!
194 TH1I **hNGoodESDTracks; //!
195 TH1I **hNGammaCandidates; //!
196 TH2F **hNGoodESDTracksVsNGammaCanditates; //!
197 TH1I **hNV0Tracks; //!
198 TProfile **hEtaShift; //!
199 TTree **tESDMesonsInvMassPtDcazMinDcazMaxFlag; //!
200 Float_t fInvMass; //!
202 Float_t fDCAzGammaMin; //!
203 Float_t fDCAzGammaMax; //!
205 UChar_t iMesonMCInfo; //!
208 // 2: secondary meson not from eta or k0s,
209 // 3: secondary meson from eta,
210 // 4: secondary meson from k0s,
212 // 6: primary meson gamma-gamma-channel
213 Double_t fEventPlaneAngle; // EventPlaneAngle
215 Int_t fnGammaCandidates; //
216 Double_t *fUnsmearedPx; //[fnGammaCandidates]
217 Double_t *fUnsmearedPy; //[fnGammaCandidates]
218 Double_t *fUnsmearedPz; //[fnGammaCandidates]
219 Double_t *fUnsmearedE; //[fnGammaCandidates]
220 Int_t *fMCStackPos; //[fnGammaCandidates]
221 Int_t *fMCStackNeg; //[fnGammaCandidates]
222 Int_t *fESDArrayPos; //[fnGammaCandidates]
223 Int_t *fESDArrayNeg; //[fnGammaCandidates]
226 Bool_t fMoveParticleAccordingToVertex; //
227 Int_t fIsHeavyIon; //
228 Bool_t fDoMesonAnalysis; //
230 Int_t fDoPhotonQA; //
231 Bool_t fIsFromMBHeader; //
233 Bool_t fDoTHnSparse; // flag for using THnSparses for background estimation
237 AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
238 AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
239 ClassDef(AliAnalysisTaskGammaConvV1, 14);