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 TH1F **hESDConvGammaPhi; //!
102 TTree **tESDConvGammaPtDcazCat; //!
103 Float_t fPtGamma; //!
104 Float_t fDCAzPhoton; //!
105 Float_t fRConvPhoton; //!
106 Float_t fEtaPhoton; //!
107 UChar_t iCatPhoton; //!
108 UChar_t iPhotonMCInfo; //!
111 // 2: secondary photon not from eta or k0s,
112 // 3: secondary photon from eta,
113 // 4: secondary photon from k0s,
116 TH2F **hESDMotherInvMassPt; //!
117 THnSparseF **sESDMotherInvMassPtZM; //!
118 TH2F **hESDMotherBackInvMassPt; //!
119 THnSparseF **sESDMotherBackInvMassPtZM; //!
120 TH2F **hESDMotherInvMassEalpha; //!
121 TH2F **hESDMotherPi0PtY; //!
122 TH2F **hESDMotherEtaPtY; //!
123 TH2F **hESDMotherPi0PtAlpha; //!
124 TH2F **hESDMotherEtaPtAlpha; //!
125 TH2F **hESDMotherPi0PtOpenAngle; //!
126 TH2F **hESDMotherEtaPtOpenAngle; //!
127 TH1I **hMCHeaders; //!
128 TH1F **hMCAllGammaPt; //!
129 TH1F **hMCDecayGammaPi0Pt; //!
130 TH1F **hMCDecayGammaRhoPt; //!
131 TH1F **hMCDecayGammaEtaPt; //!
132 TH1F **hMCDecayGammaOmegaPt; //!
133 TH1F **hMCDecayGammaEtapPt; //!
134 TH1F **hMCDecayGammaPhiPt; //!
135 TH1F **hMCDecayGammaSigmaPt; //!
136 TH1F **hMCConvGammaPt; //!
137 TH1F **hMCConvGammaR; //!
138 TH1F **hMCConvGammaEta; //!
140 TH1F **hMCPi0WOWeightPt; //!
142 TH1F **hMCEtaWOWeightPt; //!
143 TH1F **hMCPi0InAccPt; //!
144 TH1F **hMCEtaInAccPt; //!
145 TH2F **hMCPi0PtY; //!
146 TH2F **hMCEtaPtY; //!
147 TH2F **hMCPi0PtAlpha; //!
148 TH2F **hMCEtaPtAlpha; //!
150 TH1F **hMCK0sWOWeightPt; //!
151 TH2F **hMCK0sPtY; //!
152 TH2F **hMCSecPi0PtvsSource; //!
153 TH1F **hMCSecPi0Source; //!
154 TH1F **hMCSecEtaPt; //!
155 TH1F **hMCSecEtaSource; //!
156 TH2F **hESDTrueMotherInvMassPt; //!
157 TH2F **hESDTruePrimaryMotherInvMassPt; //!
158 TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt; //!
159 TProfile2D **pESDTruePrimaryMotherWeightsInvMassPt; //!
160 TH2F **hESDTruePrimaryPi0MCPtResolPt; //!
161 TH2F **hESDTruePrimaryEtaMCPtResolPt; //!
162 TH2F **hESDTrueSecondaryMotherInvMassPt; //!
163 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt; //!
164 TH1F **hESDTrueK0sWithPi0DaughterMCPt; //!
165 TH2F **hESDTrueSecondaryMotherFromEtaInvMassPt; //!
166 TH1F **hESDTrueEtaWithPi0DaughterMCPt; //!
167 TH2F **hESDTrueSecondaryMotherFromLambdaInvMassPt; //!
168 TH1F **hESDTrueLambdaWithPi0DaughterMCPt; //!
169 TH2F **hESDTrueBckGGInvMassPt; //!
170 TH2F **hESDTrueBckContInvMassPt; //!
171 TH2F **hESDTruePi0PtY; //!
172 TH2F **hESDTrueEtaPtY; //!
173 TH2F **hESDTruePi0PtAlpha; //!
174 TH2F **hESDTrueEtaPtAlpha; //!
175 TH2F **hESDTruePi0PtOpenAngle; //!
176 TH2F **hESDTrueEtaPtOpenAngle; //!
177 TH2F **hESDTrueMotherDalitzInvMassPt; //!
178 TH1F **hESDTrueConvGammaPt; //!
179 TH1F **hESDTrueConvGammaR; //!
180 TH1F **hESDTrueConvGammaPtMC; //!
181 TH1F **hESDTrueConvGammaRMC; //!
182 TH1F **hESDTrueConvGammaEta; //!
183 TH2F **hESDCombinatorialPt; //!
184 TH1F **hESDTruePrimaryConvGammaPt; //!
185 TH2F **hESDTruePrimaryConvGammaESDPtMCPt; //!
186 TH1F **hESDTrueSecondaryConvGammaPt; //!
187 TH1F **hESDTrueSecondaryConvGammaFromXFromK0sPt; //!
188 TH1F **hESDTrueSecondaryConvGammaFromXFromLambdaPt; //!
189 TH2F **hESDTrueDalitzPsiPairDeltaPhi; //!
190 TH2F **hESDTrueGammaPsiPairDeltaPhi; //!
192 TH1I **hNGoodESDTracks; //!
193 TH1I **hNGammaCandidates; //!
194 TH2F **hNGoodESDTracksVsNGammaCanditates; //!
195 TH1I **hNV0Tracks; //!
196 TProfile **hEtaShift; //!
197 TTree **tESDMesonsInvMassPtDcazMinDcazMaxFlag; //!
198 Float_t fInvMass; //!
200 Float_t fDCAzGammaMin; //!
201 Float_t fDCAzGammaMax; //!
203 UChar_t iMesonMCInfo; //!
206 // 2: secondary meson not from eta or k0s,
207 // 3: secondary meson from eta,
208 // 4: secondary meson from k0s,
210 // 6: primary meson gamma-gamma-channel
211 Double_t fEventPlaneAngle; // EventPlaneAngle
213 Int_t fnGammaCandidates; //
214 Double_t *fUnsmearedPx; //[fnGammaCandidates]
215 Double_t *fUnsmearedPy; //[fnGammaCandidates]
216 Double_t *fUnsmearedPz; //[fnGammaCandidates]
217 Double_t *fUnsmearedE; //[fnGammaCandidates]
218 Int_t *fMCStackPos; //[fnGammaCandidates]
219 Int_t *fMCStackNeg; //[fnGammaCandidates]
220 Int_t *fESDArrayPos; //[fnGammaCandidates]
221 Int_t *fESDArrayNeg; //[fnGammaCandidates]
224 Bool_t fMoveParticleAccordingToVertex; //
225 Int_t fIsHeavyIon; //
226 Bool_t fDoMesonAnalysis; //
228 Int_t fDoPhotonQA; //
229 Bool_t fIsFromMBHeader; //
234 AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
235 AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
236 ClassDef(AliAnalysisTaskGammaConvV1, 14);