]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
- fixed MC routines in CaloConv task, added corresponding addtasks
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskGammaConvDalitzV1.h
CommitLineData
2bb2434e 1#ifndef ALIANALYSISTASKGAMMACONVDALITZV1_H
2#define ALIANALYSISTASKGAMMACONVDALITZV1_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7// Analysis task for pi0->e+e-gamma (Dalitz decay)
8
9#include "AliAnalysisTaskSE.h"
10#include "AliV0ReaderV1.h"
11#include "AliKFConversionPhoton.h"
12#include "AliDalitzElectronSelector.h"
344100c4 13#include "AliConvEventCuts.h"
2bb2434e 14#include "AliConversionMesonCuts.h"
15#include "AliGammaConversionAODBGHandler.h"
8a52eed5 16#include "TProfile2D.h"
2bb2434e 17
18class AliESDInputHandler;
19class AliMCEventHandler;
20class AliESDEvent;
21class AliESDtrack;
22class AliESDtrackCuts;
23class AliESDpidCuts;
24class AliV0Reader;
25class AliGammaConversionHistograms;
26class AliTriggerAnalysis;
27
28class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
29{
344100c4 30 public:
2bb2434e 31
344100c4 32 AliAnalysisTaskGammaConvDalitzV1();
33 AliAnalysisTaskGammaConvDalitzV1( const char* name );
34 virtual ~AliAnalysisTaskGammaConvDalitzV1();
2bb2434e 35
344100c4 36 virtual void UserExec(Option_t *);
37 virtual void UserCreateOutputObjects();
38 virtual Bool_t Notify();
39 virtual void Terminate(const Option_t *);
40
41 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
42
43 void SetIsHeavyIon(Int_t flag){
44 if (flag == 1 || flag ==2 ){
45 fIsHeavyIon = 1;
46 } else {
47 fIsHeavyIon = 0;
48 }
49 }
50
51 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
52 void SetEventCutList(Int_t nCuts, TList *CutArray){
53 fnCuts= nCuts;
54 fCutEventArray = CutArray;
55 }
56 void SetConversionCutList(Int_t nCuts, TList *CutArray){
57 fnCuts= nCuts;
58 fCutGammaArray = CutArray;
59 }
60 void SetElectronCutList(TList *CutArray){
61 fCutElectronArray = CutArray;
ae947965 62 }
344100c4 63 void SetMesonCutList(TList *CutArray){
64 fCutMesonArray = CutArray;
65 }
66 void SetDoChicAnalysis(Bool_t flag){ fDoChicAnalysis = flag; }
67 void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
68 void SetProductionVertextoVGamma(Bool_t flag) { fSetProductionVertextoVGamma = flag; }
ae947965 69
2bb2434e 70 private:
2bb2434e 71 void InitBack();
72 void ProcessPhotonCandidates();
73 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
344100c4 74 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
75 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
76 void ProcessElectronCandidates();
30b9a400 77 void ProcessVirtualGammasCandidates();
2bb2434e 78 void ProcessMCParticles();
79 void CountESDTracks();
344100c4 80 void CalculatePi0DalitzCandidates();
81 void CalculateBackground();
82 void UpdateEventByEventData();
a1c2f90c 83 void FillElectronQAHistos(AliAODConversionPhoton *Vgamma) const;
344100c4 84 Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
ae947965 85 Bool_t IsDalitz(TParticle *fMCMother) const;
344100c4 86 Bool_t IsPi0DalitzDaughter( Int_t label ) const;
2bb2434e 87
344100c4 88 AliV0ReaderV1 *fV0Reader;
89 AliDalitzElectronSelector *fElecSelector;
90 AliGammaConversionAODBGHandler **fBGHandler;
91 AliESDEvent *fESDEvent;
92 AliMCEvent *fMCEvent;
93 AliStack *fMCStack;
94 TList **fCutFolder;
95 TList **fESDList;
96 TList **fBackList;
97 TList **fMotherList;
98 TList **fTrueList;
99 TList **fMCList;
100 TList **fQAFolder;
101 TList *fOutputContainer;
102 TClonesArray *fReaderGammas;
103 vector<Int_t> fSelectorElectronIndex;
104 vector<Int_t> fSelectorPositronIndex;
105 TList *fGoodGammas;
106 TList *fGoodVirtualGammas;
107 TList *fGoodElectrons;
108 TList *fGoodPositrons;
109 TList *fCutEventArray;
110 TList *fCutGammaArray;
111 TList *fCutElectronArray;
112 TList *fCutMesonArray;
113 TList **fGammasPool;
114 AliConvEventCuts *fEventCuts;
115 AliConversionPhotonCuts *fConversionCuts;
116 TH1F **hESDConvGammaPt;
117 TH1F **hESDConvGammaEta;
118 TH2F **hESDConvGammaZR;
119 TH1F **hESDDalitzElectronPt;
120 TH1F **hESDDalitzPositronPt;
121 TH1F **hESDDalitzElectronPhi;
122 TH1F **hESDDalitzPositronPhi;
123 TH1F **hESDDalitzElectronAfterPt;
124 TH1F **hESDDalitzPositronAfterPt;
125 TH1F **hESDDalitzElectronAfterEta;
126 TH1F **hESDDalitzElectronAfterEtaPCut;
127 TH1F **hESDDalitzPositronAfterEta;
128 TH1F **hESDDalitzPositronAfterEtaPCut;
129 TH1F **hESDDalitzElectronAfterPhi;
130 TH1F **hESDDalitzPositronAfterPhi;
131 TH1F **hESDDalitzElectronAfterNClsITS;
132 TH1F **hESDDalitzPositronAfterNClsITS;
133 TH2F **hESDDalitzElectronAfterNFindClsTPC;
134 TH2F **hESDDalitzPositronAfterNFindClsTPC;
135 TH2F **hESDDalitzElectronAfterNClsTPC;
136 TH2F **hESDDalitzPositronAfterNClsTPC;
137 TH2F **hESDDalitzElectronAfterNCrossedRowsTPC;
138 TH2F **hESDDalitzPositronAfterNCrossedRowsTPC;
139 TH2F **hESDDalitzPosEleAfterDCAxy;
140 TH2F **hESDDalitzPosEleAfterDCAz;
141 TH2F **hESDDalitzElectronAfterTPCdEdxVsP;
142 TH2F **hESDDalitzPositronAfterTPCdEdxVsP;
143 TH2F **hESDDalitzElectronAfterTPCdEdxSignalVsP;
144 TH2F **hESDDalitzPositronAfterTPCdEdxSignalVsP;
145 TH2F **hESDDalitzElectronAfterTPCdEdxVsEta;
146 TH2F **hESDDalitzPositronAfterTPCdEdxVsEta;
147 TH2F **hESDDalitzElectronAfterTPCdEdxVsPhi;
148 TH2F **hESDDalitzPositronAfterTPCdEdxVsPhi;
149 TH1F **hESDMotherPhi;
150 TH2F **hESDEposEnegPsiPairDPhi;
151 TH2F **hESDEposEnegInvMassPt;
152 TH2F **hESDEposEnegAfterMassCutInvMassPi0Pt;
153 TH2F **hESDEposEnegInvMassPi0Pt;
154 TH2F **hESDEposEnegLikeSignBackInvMassPt;
155 TH2F **hESDMotherInvMassPt;
156 TH2F **hESDPi0MotherInvMassPt;
157 TH2F **hESDPi0MotherDiffInvMassPt;
158 TH2F **hESDPi0MotherDiffLimInvMassPt;
159 THnSparseF **sESDMotherInvMassPtZM;
160 TH2F **hESDMotherBackInvMassPt;
161 THnSparseF **sESDMotherBackInvMassPtZM;
162 TH1F **hMCAllGammaPt;
163 TH1F **hMCConvGammaPt;
164 TH1F **hMCConvGammaRSPt;
165 TH1F **hMCAllPositronsPt;
166 TH1F **hMCAllElectronsPt;
167 TH1F **hMCConvGammaEta;
168 TH1F **hMCAllPositronsEta;
169 TH1F **hMCAllElectronsEta;
170 TH1F **hMCPi0DalitzGammaPt;
171 TH1F **hMCPi0DalitzElectronPt;
172 TH1F **hMCPi0DalitzPositronPt;
173 TH1F **hMCPi0Pt;
174 TH1F **hMCPi0GGPt;
175 TH1F **hMCEtaPt;
176 TH1F **hMCEtaGGPt;
177 TH1F **hMCPi0InAccPt;
178 TH1F **hMCEtaInAccPt;
179 TH1F **hMCChiCPt;
180 TH1F **hMCChiCInAccPt;
181 TH2F **hMCPi0EposEnegInvMassPt;
182 TH2F **hMCEtaEposEnegInvMassPt;
183 TH2F **hESDEposEnegTruePi0DalitzInvMassPt;
184 TH1F **hESDEposEnegTruePrimPi0DalitzInvMass;
185 TH2F **hESDEposEnegTruePi0DalitzPsiPairDPhi;
186 TH2F **hESDEposEnegTrueEtaDalitzInvMassPt;
187 TH1F **hESDEposEnegTruePrimEtaDalitzInvMass;
188 TH2F **hESDEposEnegTrueEtaDalitzPsiPairDPhi;
189 TH2F **hESDEposEnegTruePhotonInvMassPt;
190 TH2F **hESDEposEnegTrueInvMassPt;
191 TH2F **hESDEposEnegTruePhotonPsiPairDPhi;
192 TH2F **hESDEposEnegTruePhotonPsiPairDPhiPtCut;
193 TH2F **hESDEposEnegTrueJPsiInvMassPt;
194 TH2F **hESDTrueMotherChiCInvMassPt;
195 TH2F **hESDTrueMotherChiCDiffInvMassPt;
196 TH2F **hESDTrueMotherInvMassPt;
197 TH2F **hESDTrueMotherDalitzInvMassPt;
198 TH2F **hESDTrueMotherPi0GGInvMassPt;
199 TH2F **hESDTruePrimaryMotherPi0GGInvMassPt;
200 TH2F **hESDTrueSecondaryMotherPi0GGInvMassPt;
201 TH2F **hESDTruePrimaryMotherInvMassMCPt;
202 TH2F **hESDTruePrimaryMotherInvMassPt;
203 TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt;
204 TH2F **hESDTruePrimaryPi0DalitzESDPtMCPt;
205 TH2F **hESDTrueSecondaryMotherInvMassPt;
206 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
207 TH2F **hESDTrueBckGGInvMassPt;
208 TH2F **hESDTrueBckContInvMassPt;
209 TH2F **hESDTrueMotherGGInvMassPt;
210 TH1F **hESDTrueConvGammaPt;
211 TH1F **hESDTruePositronPt;
212 TH1F **hESDTrueElectronPt;
213 TH1F **hESDTrueSecConvGammaPt;
214 TH1F **hESDTrueSecPositronPt;
215 TH1F **hESDTrueSecElectronPt;
216 TH1F **hESDTruePi0DalitzConvGammaPt;
217 TH1F **hESDTruePi0DalitzPositronPt;
218 TH1F **hESDTruePi0DalitzElectronPt;
219 TH1F **hESDTruePi0DalitzSecConvGammaPt;
220 TH1F **hESDTruePi0DalitzSecPositronPt;
221 TH1F **hESDTruePi0DalitzSecElectronPt;
2bb2434e 222
344100c4 223 TH1I **hNEvents;
224 TH1I **hNGoodESDTracks;
225 TH2F **hNGoodESDTracksVsNGoodGammas;
226 TH2F **hNGoodESDTracksVsNGoodVGammas;
227 TH1I **hNV0Tracks;
228 TProfile **hEtaShift;
229
230 TRandom3 fRandom;
231 Double_t *fUnsmearedPx;
232 Double_t *fUnsmearedPy;
233 Double_t *fUnsmearedPz;
234 Double_t *fUnsmearedE;
235 Double_t *fUnsmearedVPx;
236 Double_t *fUnsmearedVPy;
237 Double_t *fUnsmearedVPz;
238 Double_t *fUnsmearedVE;
239
240 Int_t fnCuts;
241 Int_t fiCut;
242 Int_t fNumberOfESDTracks;
243 Int_t fNumberOfESDTrackskBoth;
244 Int_t fNVirtualGammas;
245 Bool_t fMoveParticleAccordingToVertex;
246 Bool_t fIsHeavyIon;
247 Bool_t fDoMesonAnalysis;
248 Bool_t fDoChicAnalysis;
249 Bool_t fDoMesonQA;
250 Bool_t fSetProductionVertextoVGamma;
251 Bool_t fIsFromMBHeader;
252 Bool_t fIsMC;
ae947965 253
2bb2434e 254 private:
255 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
256 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
257
344100c4 258 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 4 );
2bb2434e 259};
260
261#endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
262