TENDER becomes Tender, removing .so
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskGammaConvFlow.h
CommitLineData
3ccbcfa7 1#ifndef ALIANLYSISTASKGAMMACONVFLOW_cxx
2#define ALIANLYSISTASKGAMMACONVFLOW_cxx
3
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"
14#include "TH3.h"
15#include "TH3F.h"
16
17
18class AliFlowTrackCuts;
19class AliFlowTrack;
20class AliFlowEvent;
21class AliFlowCandidateTrack;
22class AliFlowEventSimple;
23
24
25class AliAnalysisTaskGammaConvFlow : public AliAnalysisTaskSE {
26
27public:
28 AliAnalysisTaskGammaConvFlow();
29 AliAnalysisTaskGammaConvFlow(const char *name);
30 virtual ~AliAnalysisTaskGammaConvFlow();
31
32 virtual void UserCreateOutputObjects();
33 virtual Bool_t Notify();
34 virtual void UserExec(Option_t *);
35 virtual void Terminate(const Option_t*);
3ccbcfa7 36
37 void SetIsHeavyIon(Int_t flag){
38 fIsHeavyIon = flag;
39
40 }
41
42 void SetDoMesonAnalysis(Bool_t flag){fDoMesonAnalysis = flag;}
43 void SetDoMesonQA(Int_t flag){fDoMesonQA = flag;}
44 void SetDoPhotonQA(Int_t flag){fDoPhotonQA = flag;}
45 void ProcessPhotonCandidates();
46 // void CalculatePi0Candidates();
47 //void CalculateBackground();
48 // void CalculateBackgroundRP();
49
997d0f14 50// void RelabelAODPhotonCandidates(Bool_t mode);
3ccbcfa7 51
52 //void RotateParticle(AliAODConversionPhoton *gamma);
53 //void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP);
54
55 void SetEventCutList(Int_t nCuts, TList *CutArray){
56 fnCuts = nCuts;
57 fEventCutArray = CutArray;
58 }
59 void SetConversionCutList(Int_t nCuts, TList *CutArray){
60 fnCuts = nCuts;
61 fCutArray = CutArray;
62 }
63 // void SetMesonCutList(Int_t nCuts, TList *CutArray){
64 // fnCuts = nCuts;
65 // fMesonCutArray = CutArray;
66 // }
67
68 // BG HandlerSettings
69 // void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
997d0f14 70// void FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
3ccbcfa7 71 // void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
72 void UpdateEventByEventData();
73 void SetLogBinningXTH2(TH2* histoRebin);
74 // Int_t GetSourceClassification(Int_t daughter, Int_t pdgCode);
75
76
17fa7242 77 template <typename T> void SetNullCuts(T* aod);
78 void PrepareFlowEvent(Int_t iMulti, AliFlowEvent *FlowEv) const;
3ccbcfa7 79 void SetRPCuts(AliFlowTrackCuts *cutsRP) { fCutsRP = cutsRP; }
80 void ProcessPhotonCandidatesforV2();
3ccbcfa7 81
82
83protected:
17fa7242 84 AliV0ReaderV1 *fV0Reader; //
85 AliGammaConversionAODBGHandler **fBGHandler; //
86 AliConversionAODBGHandlerRP **fBGHandlerRP; //
87 AliVEvent *fInputEvent; //
3ccbcfa7 88// AliMCEvent *fMCEvent; //
89// AliStack *fMCStack; //
17fa7242 90 TList **fCutFolder; //
91 TList **fESDList; //
92 TList **fBackList; //
93 TList **fMotherList; //
94 TList **fPhotonDCAList; //
95 TList **fMesonDCAList; //
96// TList **fTrueList; //
97// TList **fMCList; //
98 TList **fHeaderNameList; //
99 TList *fOutputContainer; //
100 TClonesArray *fReaderGammas; //
101 TList *fGammaCandidates; //
102 TList *fEventCutArray; //
103 AliConvEventCuts *fEventCuts; //
104 TList *fCutArray; //
105 AliConversionPhotonCuts *fConversionCuts; //
106 TList *fMesonCutArray; //
107 AliConversionMesonCuts *fMesonCuts; //
108 TH1F **hESDConvGammaPt; //
109 TH1F **hESDConvGammaR; //
110 TH1F **hESDConvGammaEta; //
111 Float_t fPtGamma; //
112 Float_t fDCAzPhoton; //
113 Float_t fRConvPhoton; //
114 Float_t fEtaPhoton; //
115 UChar_t iCatPhoton; //
116 UChar_t iPhotonMCInfo; //
117 // 0: garbage,
118 // 1: background
119 // 2: secondary photon not from eta or k0s,
120 // 3: secondary photon from eta,
121 // 4: secondary photon from k0s,
122 // 5: dalitz
123 // 6: primary gamma
124 TH2F **hESDMotherInvMassPt; //
125// THnSparseF **sESDMotherInvMassPtZM; //
126 TH2F **hESDMotherBackInvMassPt; //
127// THnSparseF **sESDMotherBackInvMassPtZM; //
128 TH2F **hESDMotherInvMassEalpha; //
129 TH2F **hESDMotherPi0PtY; //
130 TH2F **hESDMotherEtaPtY; //
131 TH2F **hESDMotherPi0PtAlpha; //
132 TH2F **hESDMotherEtaPtAlpha; //
133 TH2F **hESDMotherPi0PtOpenAngle; //
134 TH2F **hESDMotherEtaPtOpenAngle; //
135
136 TH1I **hNEvents; //
137 TH1I **hNGoodESDTracks; //
138 TH1I **hNGammaCandidates; //
139 TH2F **hNGoodESDTracksVsNGammaCanditates; //
140 TH1I **hNV0Tracks; //
141 TProfile **hEtaShift; //
142 TTree **tESDMesonsInvMassPtDcazMinDcazMaxFlag; //
143 Float_t fInvMass; //
144 Float_t fPt; //
145 Float_t fDCAzGammaMin; //
146 Float_t fDCAzGammaMax; //
147 UChar_t iFlag; //
148 UChar_t iMesonMCInfo; //
149 // 0: garbage,
150 // 1: background
151 // 2: secondary meson not from eta or k0s,
152 // 3: secondary meson from eta,
153 // 4: secondary meson from k0s,
154 // 5: dalitz
155 // 6: primary meson gamma-gamma-channel
156 Double_t fEventPlaneAngle; // EventPlaneAngle
157 TRandom3 fRandom; //
158 Int_t fnGammaCandidates; //
159 Double_t *fUnsmearedPx; //[fnGammaCandidates]
160 Double_t *fUnsmearedPy; //[fnGammaCandidates]
161 Double_t *fUnsmearedPz; //[fnGammaCandidates]
162 Double_t *fUnsmearedE; //[fnGammaCandidates]
163 Int_t *fMCStackPos; //[fnGammaCandidates]
164 Int_t *fMCStackNeg; //[fnGammaCandidates]
165 Int_t *fESDArrayPos; //[fnGammaCandidates]
166 Int_t *fESDArrayNeg; //[fnGammaCandidates]
167 Int_t fnCuts; //
168 Int_t fiCut; //
169 Bool_t fMoveParticleAccordingToVertex; //
170 Int_t fIsHeavyIon; //
171 Bool_t fDoMesonAnalysis; //
172 Int_t fDoMesonQA; //
173 Int_t fDoPhotonQA; //
174 Bool_t fIsFromMBHeader; //
ac3663a7 175 TH1D *fhistoEPVZ; //!
3ccbcfa7 176
3ccbcfa7 177
178private:
17fa7242 179 Bool_t fDebug; //! enable debug mode
180 AliFlowTrackCuts *fCutsRP; // track cuts for reference particles
181 AliFlowTrackCuts *fNullCuts; // dummy cuts for flow event tracks
182 AliFlowEvent *fFlowEvent; //! flow events Inclusive e
3ccbcfa7 183
17fa7242 184 AliAnalysisTaskGammaConvFlow(const AliAnalysisTaskGammaConvFlow&); // Prevent copy-construction
185 AliAnalysisTaskGammaConvFlow &operator=(const AliAnalysisTaskGammaConvFlow&); // Prevent assignment
186 ClassDef(AliAnalysisTaskGammaConvFlow, 2);
3ccbcfa7 187};
188
189#endif