TENDER becomes Tender, removing .so
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskGammaConvV1.h
CommitLineData
2bb2434e 1#ifndef ALIANLYSISTASKGAMMACONVV1_cxx
2#define ALIANLYSISTASKGAMMACONVV1_cxx
3
4#include "AliAnalysisTaskSE.h"
5#include "AliESDtrack.h"
6#include "AliV0ReaderV1.h"
344100c4 7#include "AliConvEventCuts.h"
2bb2434e 8#include "AliKFConversionPhoton.h"
9#include "AliGammaConversionAODBGHandler.h"
e5b6e8a6 10#include "AliConversionAODBGHandlerRP.h"
ca91a3e1 11#include "AliConversionMesonCuts.h"
11c1e680 12#include "AliAnalysisManager.h"
526074e4 13#include "TProfile2D.h"
2bb2434e 14#include "TH3.h"
e5b6e8a6 15#include "TH3F.h"
2bb2434e 16
17class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE {
2bb2434e 18
344100c4 19 public:
20 AliAnalysisTaskGammaConvV1();
21 AliAnalysisTaskGammaConvV1(const char *name);
22 virtual ~AliAnalysisTaskGammaConvV1();
2bb2434e 23
344100c4 24 virtual void UserCreateOutputObjects();
25 virtual Bool_t Notify();
26 virtual void UserExec(Option_t *);
27 virtual void Terminate(const Option_t*);
28 void InitBack();
2bb2434e 29
344100c4 30 void SetIsHeavyIon(Int_t flag){
31 fIsHeavyIon = flag;
32
33 }
ae947965 34
344100c4 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){
53 fnCuts = nCuts;
54 fEventCutArray = CutArray;
55 }
56 void SetConversionCutList(Int_t nCuts, TList *CutArray){
57 fnCuts = nCuts;
58 fCutArray = CutArray;
59 }
60 void SetMesonCutList(Int_t nCuts, TList *CutArray){
61 fnCuts = nCuts;
62 fMesonCutArray = CutArray;
63 }
2bb2434e 64
344100c4 65 // BG HandlerSettings
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);
72
73 protected:
74 AliV0ReaderV1 *fV0Reader; //
75 AliGammaConversionAODBGHandler **fBGHandler; //
76 AliConversionAODBGHandlerRP **fBGHandlerRP; //
77 AliVEvent *fInputEvent; //
78 AliMCEvent *fMCEvent; //
79 AliStack *fMCStack; //
80 TList **fCutFolder; //
81 TList **fESDList; //
82 TList **fBackList; //
83 TList **fMotherList; //
84 TList **fPhotonDCAList; //
85 TList **fMesonDCAList; //
86 TList **fTrueList; //
87 TList **fMCList; //
88 TList **fHeaderNameList; //
89 TList *fOutputContainer; //
90 TClonesArray *fReaderGammas; //
91 TList *fGammaCandidates; //
92 TList *fEventCutArray; //
93 AliConvEventCuts *fEventCuts; //
94 TList *fCutArray; //
95 AliConversionPhotonCuts *fConversionCuts; //
96 TList *fMesonCutArray; //
97 AliConversionMesonCuts *fMesonCuts; //
6a87cf63 98 TH1F **hESDConvGammaPt; //!
99 TH1F **hESDConvGammaR; //!
100 TH1F **hESDConvGammaEta; //!
9fd7313b 101 TH1F **hESDConvGammaPhi; //!
6a87cf63 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; //!
344100c4 109 // 0: garbage,
110 // 1: background
111 // 2: secondary photon not from eta or k0s,
112 // 3: secondary photon from eta,
113 // 4: secondary photon from k0s,
114 // 5: dalitz
115 // 6: primary gamma
6a87cf63 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; //!
139 TH1F **hMCPi0Pt; //!
140 TH1F **hMCPi0WOWeightPt; //!
141 TH1F **hMCEtaPt; //!
142 TH1F **hMCEtaWOWeightPt; //!
143 TH1F **hMCPi0InAccPt; //!
144 TH1F **hMCEtaInAccPt; //!
145 TH2F **hMCPi0PtY; //!
146 TH2F **hMCEtaPtY; //!
147 TH2F **hMCPi0PtAlpha; //!
148 TH2F **hMCEtaPtAlpha; //!
149 TH1F **hMCK0sPt; //!
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; //!
191 TH1I **hNEvents; //!
192 TH1I **hNGoodESDTracks; //!
193 TH1I **hNGammaCandidates; //!
194 TH2F **hNGoodESDTracksVsNGammaCanditates; //!
195 TH1I **hNV0Tracks; //!
196 TProfile **hEtaShift; //!
197 TTree **tESDMesonsInvMassPtDcazMinDcazMaxFlag; //!
198 Float_t fInvMass; //!
199 Float_t fPt; //!
200 Float_t fDCAzGammaMin; //!
201 Float_t fDCAzGammaMax; //!
202 UChar_t iFlag; //!
203 UChar_t iMesonMCInfo; //!
344100c4 204 // 0: garbage,
205 // 1: background
206 // 2: secondary meson not from eta or k0s,
207 // 3: secondary meson from eta,
208 // 4: secondary meson from k0s,
209 // 5: dalitz
210 // 6: primary meson gamma-gamma-channel
211 Double_t fEventPlaneAngle; // EventPlaneAngle
212 TRandom3 fRandom; //
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]
222 Int_t fnCuts; //
223 Int_t fiCut; //
224 Bool_t fMoveParticleAccordingToVertex; //
225 Int_t fIsHeavyIon; //
226 Bool_t fDoMesonAnalysis; //
227 Int_t fDoMesonQA; //
228 Int_t fDoPhotonQA; //
229 Bool_t fIsFromMBHeader; //
230 Bool_t fIsMC; //
ca91a3e1 231
344100c4 232 private:
a280ac15 233
344100c4 234 AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
235 AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
de752898 236 ClassDef(AliAnalysisTaskGammaConvV1, 14);
2bb2434e 237};
238
239#endif