]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.h
Merge branch 'master' into TRDdev
[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"
7#include "AliKFConversionPhoton.h"
8#include "AliGammaConversionAODBGHandler.h"
e5b6e8a6 9#include "AliConversionAODBGHandlerRP.h"
ca91a3e1 10#include "AliConversionMesonCuts.h"
11c1e680 11#include "AliAnalysisManager.h"
526074e4 12#include "TProfile2D.h"
2bb2434e 13#include "TH3.h"
e5b6e8a6 14#include "TH3F.h"
2bb2434e 15
16class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE {
ca91a3e1 17 public:
2bb2434e 18
ca91a3e1 19 AliAnalysisTaskGammaConvV1();
20 AliAnalysisTaskGammaConvV1(const char *name);
21 virtual ~AliAnalysisTaskGammaConvV1();
2bb2434e 22
ca91a3e1 23 virtual void UserCreateOutputObjects();
11c1e680 24 virtual Bool_t Notify();
ca91a3e1 25 virtual void UserExec(Option_t *);
26 virtual void Terminate(const Option_t*);
27 void InitBack();
2bb2434e 28
0a2b2b4b 29 void SetIsHeavyIon(Int_t flag){
75f195f2
FB
30 fIsHeavyIon = flag;
31
0a2b2b4b 32 }
ae947965 33
34 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
ca91a3e1 35 void SetDoMesonAnalysis(Bool_t flag){fDoMesonAnalysis = flag;}
ae4f2cfb 36 void SetDoMesonQA(Int_t flag){fDoMesonQA = flag;}
37 void SetDoPhotonQA(Int_t flag){fDoPhotonQA = flag;}
ca91a3e1 38 void ProcessPhotonCandidates();
39 void CalculatePi0Candidates();
40 void CalculateBackground();
e5b6e8a6 41 void CalculateBackgroundRP();
ca91a3e1 42 void ProcessMCParticles();
ae947965 43 void ProcessAODMCParticles();
44 void RelabelAODPhotonCandidates(Bool_t mode);
ca91a3e1 45 void ProcessTruePhotonCandidates( AliAODConversionPhoton* TruePhotonCandidate);
ae947965 46 void ProcessTruePhotonCandidatesAOD( AliAODConversionPhoton* TruePhotonCandidate);
ca91a3e1 47 void ProcessTrueMesonCandidates( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
ae947965 48 void ProcessTrueMesonCandidatesAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
ca91a3e1 49 void RotateParticle(AliAODConversionPhoton *gamma);
ae4f2cfb 50 void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP);
ca91a3e1 51 void SetConversionCutList(Int_t nCuts, TList *CutArray){
52 fnCuts = nCuts;
53 fCutArray = CutArray;
54 }
55 void SetMesonCutList(Int_t nCuts, TList *CutArray){
56 fnCuts = nCuts;
57 fMesonCutArray = CutArray;
58 }
2bb2434e 59
ca91a3e1 60 // BG HandlerSettings
61 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
ae947965 62 void FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
ca91a3e1 63 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
64 void UpdateEventByEventData();
d8b864f8 65 void SetLogBinningXTH2(TH2* histoRebin);
d9d6352b 66 Int_t GetSourceClassification(Int_t daughter, Int_t pdgCode);
d8b864f8 67
ca91a3e1 68 protected:
69 AliV0ReaderV1 *fV0Reader;
70 AliGammaConversionAODBGHandler **fBGHandler;
e5b6e8a6 71 AliConversionAODBGHandlerRP **fBGHandlerRP;
72 AliVEvent *fInputEvent;
ca91a3e1 73 AliMCEvent *fMCEvent;
74 AliStack *fMCStack;
75 TList **fCutFolder;
76 TList **fESDList;
77 TList **fBackList;
78 TList **fMotherList;
4803eb1f 79 TList **fPhotonDCAList;
80 TList **fMesonDCAList;
ca91a3e1 81 TList **fTrueList;
82 TList **fMCList;
83 TList **fHeaderNameList;
84 TList *fOutputContainer;
85 TClonesArray *fReaderGammas;
a280ac15 86 TList *fGammaCandidates;
ca91a3e1 87 TList *fCutArray;
88 AliConversionCuts *fConversionCuts;
e5b6e8a6 89 TList *fMesonCutArray;
90 AliConversionMesonCuts *fMesonCuts;
ca91a3e1 91 TH1F **hESDConvGammaPt;
ae4f2cfb 92 TH1F **hESDConvGammaR;
93 TH1F **hESDConvGammaEta;
4803eb1f 94 TTree **tESDConvGammaPtDcazCat;
95 Float_t fPtGamma;
96 Float_t fDCAzPhoton;
97 Float_t fRConvPhoton;
98 Float_t fEtaPhoton;
99 UChar_t iCatPhoton;
100 UChar_t iPhotonMCInfo; // 0: garbage,
101 // 1: background
102 // 2: secondary photon not from eta or k0s,
103 // 3: secondary photon from eta,
104 // 4: secondary photon from k0s,
105 // 5: dalitz
106 // 6: primary gamma
ca91a3e1 107 TH2F **hESDMotherInvMassPt;
108 THnSparseF **sESDMotherInvMassPtZM;
109 TH2F **hESDMotherBackInvMassPt;
110 THnSparseF **sESDMotherBackInvMassPtZM;
111 TH2F **hESDMotherInvMassEalpha;
ae4f2cfb 112 TH2F **hESDMotherPi0PtY;
113 TH2F **hESDMotherEtaPtY;
114 TH2F **hESDMotherPi0PtAlpha;
115 TH2F **hESDMotherEtaPtAlpha;
ca9152d4
FB
116 TH2F **hESDMotherPi0PtOpenAngle;
117 TH2F **hESDMotherEtaPtOpenAngle;
1186afd2 118 TH1I **hMCHeaders;
ca91a3e1 119 TH1F **hMCAllGammaPt;
120 TH1F **hMCDecayGammaPi0Pt;
121 TH1F **hMCDecayGammaRhoPt;
122 TH1F **hMCDecayGammaEtaPt;
123 TH1F **hMCDecayGammaOmegaPt;
124 TH1F **hMCDecayGammaEtapPt;
125 TH1F **hMCDecayGammaPhiPt;
e5b6e8a6 126 TH1F **hMCDecayGammaSigmaPt;
ca91a3e1 127 TH1F **hMCConvGammaPt;
128 TH1F **hMCConvGammaR;
129 TH1F **hMCConvGammaEta;
130 TH1F **hMCPi0Pt;
ae947965 131 TH1F **hMCPi0WOWeightPt;
ca91a3e1 132 TH1F **hMCEtaPt;
d0a4ea74 133 TH1F **hMCEtaWOWeightPt;
ca91a3e1 134 TH1F **hMCPi0InAccPt;
135 TH1F **hMCEtaInAccPt;
0a2b2b4b 136 TH2F **hMCPi0PtY;
137 TH2F **hMCEtaPtY;
ae947965 138 TH1F **hMCK0sPt;
139 TH1F **hMCK0sWOWeightPt;
140 TH2F **hMCK0sPtY;
d9d6352b 141 TH2F **hMCSecPi0PtvsSource;
142 TH1F **hMCSecPi0Source;
143 TH1F **hMCSecEtaPt;
144 TH1F **hMCSecEtaSource;
ca91a3e1 145 TH2F **hESDTrueMotherInvMassPt;
a280ac15 146 TH2F **hESDTruePrimaryMotherInvMassPt;
526074e4 147 TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt;
148 TProfile2D **pESDTruePrimaryMotherWeightsInvMassPt;
0a2b2b4b 149 TH2F **hESDTruePrimaryPi0MCPtResolPt;
150 TH2F **hESDTruePrimaryEtaMCPtResolPt;
ca91a3e1 151 TH2F **hESDTrueSecondaryMotherInvMassPt;
152 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
e5b6e8a6 153 TH1F **hESDTrueK0sWithPi0DaughterMCPt;
154 TH2F **hESDTrueSecondaryMotherFromEtaInvMassPt;
155 TH1F **hESDTrueEtaWithPi0DaughterMCPt;
d9d6352b 156 TH2F **hESDTrueSecondaryMotherFromLambdaInvMassPt;
157 TH1F **hESDTrueLambdaWithPi0DaughterMCPt;
ca91a3e1 158 TH2F **hESDTrueBckGGInvMassPt;
159 TH2F **hESDTrueBckContInvMassPt;
ae4f2cfb 160 TH2F **hESDTruePi0PtY;
161 TH2F **hESDTrueEtaPtY;
162 TH2F **hESDTruePi0PtAlpha;
163 TH2F **hESDTrueEtaPtAlpha;
ca9152d4
FB
164 TH2F **hESDTruePi0PtOpenAngle;
165 TH2F **hESDTrueEtaPtOpenAngle;
ca91a3e1 166 TH2F **hESDTrueMotherDalitzInvMassPt;
167 TH1F **hESDTrueConvGammaPt;
f315320f 168 TH1F **hESDTrueConvGammaEta;
e5b6e8a6 169 TH2F **hESDCombinatorialPt;
ca91a3e1 170 TH1F **hESDTruePrimaryConvGammaPt;
ca91a3e1 171 TH2F **hESDTruePrimaryConvGammaESDPtMCPt;
172 TH1F **hESDTrueSecondaryConvGammaPt;
ca91a3e1 173 TH1F **hESDTrueSecondaryConvGammaFromXFromK0sPt;
4803eb1f 174 TH1F **hESDTrueSecondaryConvGammaFromXFromLambdaPt;
1390f698 175 TH2F **hESDTrueDalitzPsiPairDeltaPhi;
176 TH2F **hESDTrueGammaPsiPairDeltaPhi;
ca91a3e1 177 TH1I **hNEvents;
178 TH1I **hNGoodESDTracks;
a280ac15 179 TH1I **hNGammaCandidates;
7e6c9796 180 TH2F **hNGoodESDTracksVsNGammaCanditates;
ca91a3e1 181 TH1I **hNV0Tracks;
4803eb1f 182 TProfile **hEtaShift;
183 TTree **tESDMesonsInvMassPtDcazMinDcazMaxFlag;
184 Float_t fInvMass;
185 Float_t fPt;
186 Float_t fDCAzGammaMin;
187 Float_t fDCAzGammaMax;
188 UChar_t iFlag;
189 UChar_t iMesonMCInfo; // 0: garbage,
190 // 1: background
191 // 2: secondary meson not from eta or k0s,
192 // 3: secondary meson from eta,
193 // 4: secondary meson from k0s,
194 // 5: dalitz
195 // 6: primary meson gamma-gamma-channel
ae4f2cfb 196 Double_t fEventPlaneAngle; // EventPlaneAngle
ca91a3e1 197 TRandom3 fRandom;
a280ac15 198 Int_t fnGammaCandidates;
199 Double_t *fUnsmearedPx; //[fnGammaCandidates]
200 Double_t *fUnsmearedPy; //[fnGammaCandidates]
201 Double_t *fUnsmearedPz; //[fnGammaCandidates]
202 Double_t *fUnsmearedE; //[fnGammaCandidates]
ae947965 203 Int_t *fMCStackPos; //[fnGammaCandidates]
204 Int_t *fMCStackNeg; //[fnGammaCandidates]
1186afd2 205 Int_t *fESDArrayPos; //[fnGammaCandidates]
206 Int_t *fESDArrayNeg; //[fnGammaCandidates]
ca91a3e1 207 Int_t fnCuts;
208 Int_t fiCut;
ca91a3e1 209 Bool_t fMoveParticleAccordingToVertex;
75f195f2 210 Int_t fIsHeavyIon;
ca91a3e1 211 Bool_t fDoMesonAnalysis;
ae4f2cfb 212 Int_t fDoMesonQA;
213 Int_t fDoPhotonQA;
a280ac15 214 Bool_t fIsFromMBHeader;
ae947965 215 Bool_t fIsMC;
ca91a3e1 216
a280ac15 217private:
218
219 AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
220 AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
221
222
d9d6352b 223 ClassDef(AliAnalysisTaskGammaConvV1, 11);
2bb2434e 224};
225
226#endif