1 #ifndef ALIANLYSISTASKGAMMACONVV1_cxx
2 #define ALIANLYSISTASKGAMMACONVV1_cxx
4 #include "AliAnalysisTaskSE.h"
5 #include "AliESDtrack.h"
6 #include "AliV0ReaderV1.h"
7 #include "AliKFConversionPhoton.h"
8 #include "AliGammaConversionAODBGHandler.h"
9 #include "AliConversionAODBGHandlerRP.h"
10 #include "AliConversionMesonCuts.h"
11 #include "AliAnalysisManager.h"
12 #include "TProfile2D.h"
16 class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE {
19 AliAnalysisTaskGammaConvV1();
20 AliAnalysisTaskGammaConvV1(const char *name);
21 virtual ~AliAnalysisTaskGammaConvV1();
23 virtual void UserCreateOutputObjects();
24 virtual Bool_t Notify();
25 virtual void UserExec(Option_t *);
26 virtual void Terminate(const Option_t*);
29 void SetIsHeavyIon(Int_t flag){
34 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
35 void SetDoMesonAnalysis(Bool_t flag){fDoMesonAnalysis = flag;}
36 void SetDoMesonQA(Int_t flag){fDoMesonQA = flag;}
37 void SetDoPhotonQA(Int_t flag){fDoPhotonQA = flag;}
38 void ProcessPhotonCandidates();
39 void CalculatePi0Candidates();
40 void CalculateBackground();
41 void CalculateBackgroundRP();
42 void ProcessMCParticles();
43 void ProcessAODMCParticles();
44 void RelabelAODPhotonCandidates(Bool_t mode);
45 void ProcessTruePhotonCandidates( AliAODConversionPhoton* TruePhotonCandidate);
46 void ProcessTruePhotonCandidatesAOD( AliAODConversionPhoton* TruePhotonCandidate);
47 void ProcessTrueMesonCandidates( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
48 void ProcessTrueMesonCandidatesAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
49 void RotateParticle(AliAODConversionPhoton *gamma);
50 void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP);
51 void SetConversionCutList(Int_t nCuts, TList *CutArray){
55 void SetMesonCutList(Int_t nCuts, TList *CutArray){
57 fMesonCutArray = CutArray;
61 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
62 void FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
63 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
64 void UpdateEventByEventData();
65 void SetLogBinningXTH2(TH2* histoRebin);
66 Int_t GetSourceClassification(Int_t daughter, Int_t pdgCode);
69 AliV0ReaderV1 *fV0Reader;
70 AliGammaConversionAODBGHandler **fBGHandler;
71 AliConversionAODBGHandlerRP **fBGHandlerRP;
72 AliVEvent *fInputEvent;
79 TList **fPhotonDCAList;
80 TList **fMesonDCAList;
83 TList **fHeaderNameList;
84 TList *fOutputContainer;
85 TClonesArray *fReaderGammas;
86 TList *fGammaCandidates;
88 AliConversionCuts *fConversionCuts;
89 TList *fMesonCutArray;
90 AliConversionMesonCuts *fMesonCuts;
91 TH1F **hESDConvGammaPt;
92 TH1F **hESDConvGammaR;
93 TH1F **hESDConvGammaEta;
94 TTree **tESDConvGammaPtDcazCat;
100 UChar_t iPhotonMCInfo; // 0: garbage,
102 // 2: secondary photon not from eta or k0s,
103 // 3: secondary photon from eta,
104 // 4: secondary photon from k0s,
107 TH2F **hESDMotherInvMassPt;
108 THnSparseF **sESDMotherInvMassPtZM;
109 TH2F **hESDMotherBackInvMassPt;
110 THnSparseF **sESDMotherBackInvMassPtZM;
111 TH2F **hESDMotherInvMassEalpha;
112 TH2F **hESDMotherPi0PtY;
113 TH2F **hESDMotherEtaPtY;
114 TH2F **hESDMotherPi0PtAlpha;
115 TH2F **hESDMotherEtaPtAlpha;
116 TH2F **hESDMotherPi0PtOpenAngle;
117 TH2F **hESDMotherEtaPtOpenAngle;
119 TH1F **hMCAllGammaPt;
120 TH1F **hMCDecayGammaPi0Pt;
121 TH1F **hMCDecayGammaRhoPt;
122 TH1F **hMCDecayGammaEtaPt;
123 TH1F **hMCDecayGammaOmegaPt;
124 TH1F **hMCDecayGammaEtapPt;
125 TH1F **hMCDecayGammaPhiPt;
126 TH1F **hMCDecayGammaSigmaPt;
127 TH1F **hMCConvGammaPt;
128 TH1F **hMCConvGammaR;
129 TH1F **hMCConvGammaEta;
131 TH1F **hMCPi0WOWeightPt;
133 TH1F **hMCEtaWOWeightPt;
134 TH1F **hMCPi0InAccPt;
135 TH1F **hMCEtaInAccPt;
139 TH1F **hMCK0sWOWeightPt;
141 TH2F **hMCSecPi0PtvsSource;
142 TH1F **hMCSecPi0Source;
144 TH1F **hMCSecEtaSource;
145 TH2F **hESDTrueMotherInvMassPt;
146 TH2F **hESDTruePrimaryMotherInvMassPt;
147 TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt;
148 TProfile2D **pESDTruePrimaryMotherWeightsInvMassPt;
149 TH2F **hESDTruePrimaryPi0MCPtResolPt;
150 TH2F **hESDTruePrimaryEtaMCPtResolPt;
151 TH2F **hESDTrueSecondaryMotherInvMassPt;
152 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
153 TH1F **hESDTrueK0sWithPi0DaughterMCPt;
154 TH2F **hESDTrueSecondaryMotherFromEtaInvMassPt;
155 TH1F **hESDTrueEtaWithPi0DaughterMCPt;
156 TH2F **hESDTrueSecondaryMotherFromLambdaInvMassPt;
157 TH1F **hESDTrueLambdaWithPi0DaughterMCPt;
158 TH2F **hESDTrueBckGGInvMassPt;
159 TH2F **hESDTrueBckContInvMassPt;
160 TH2F **hESDTruePi0PtY;
161 TH2F **hESDTrueEtaPtY;
162 TH2F **hESDTruePi0PtAlpha;
163 TH2F **hESDTrueEtaPtAlpha;
164 TH2F **hESDTruePi0PtOpenAngle;
165 TH2F **hESDTrueEtaPtOpenAngle;
166 TH2F **hESDTrueMotherDalitzInvMassPt;
167 TH1F **hESDTrueConvGammaPt;
168 TH1F **hESDTrueConvGammaEta;
169 TH2F **hESDCombinatorialPt;
170 TH1F **hESDTruePrimaryConvGammaPt;
171 TH2F **hESDTruePrimaryConvGammaESDPtMCPt;
172 TH1F **hESDTrueSecondaryConvGammaPt;
173 TH1F **hESDTrueSecondaryConvGammaFromXFromK0sPt;
174 TH1F **hESDTrueSecondaryConvGammaFromXFromLambdaPt;
175 TH2F **hESDTrueDalitzPsiPairDeltaPhi;
176 TH2F **hESDTrueGammaPsiPairDeltaPhi;
178 TH1I **hNGoodESDTracks;
179 TH1I **hNGammaCandidates;
180 TH2F **hNGoodESDTracksVsNGammaCanditates;
182 TProfile **hEtaShift;
183 TTree **tESDMesonsInvMassPtDcazMinDcazMaxFlag;
186 Float_t fDCAzGammaMin;
187 Float_t fDCAzGammaMax;
189 UChar_t iMesonMCInfo; // 0: garbage,
191 // 2: secondary meson not from eta or k0s,
192 // 3: secondary meson from eta,
193 // 4: secondary meson from k0s,
195 // 6: primary meson gamma-gamma-channel
196 Double_t fEventPlaneAngle; // EventPlaneAngle
198 Int_t fnGammaCandidates;
199 Double_t *fUnsmearedPx; //[fnGammaCandidates]
200 Double_t *fUnsmearedPy; //[fnGammaCandidates]
201 Double_t *fUnsmearedPz; //[fnGammaCandidates]
202 Double_t *fUnsmearedE; //[fnGammaCandidates]
203 Int_t *fMCStackPos; //[fnGammaCandidates]
204 Int_t *fMCStackNeg; //[fnGammaCandidates]
205 Int_t *fESDArrayPos; //[fnGammaCandidates]
206 Int_t *fESDArrayNeg; //[fnGammaCandidates]
209 Bool_t fMoveParticleAccordingToVertex;
211 Bool_t fDoMesonAnalysis;
214 Bool_t fIsFromMBHeader;
219 AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
220 AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
223 ClassDef(AliAnalysisTaskGammaConvV1, 11);