1 #ifndef ALIANALYSISTASKGAMMACONVDALITZV1_H
2 #define ALIANALYSISTASKGAMMACONVDALITZV1_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 // Analysis task for pi0->e+e-gamma (Dalitz decay)
9 #include "AliAnalysisTaskSE.h"
10 #include "AliV0ReaderV1.h"
11 #include "AliKFConversionPhoton.h"
12 #include "AliDalitzElectronSelector.h"
13 #include "AliConvEventCuts.h"
14 #include "AliConversionMesonCuts.h"
15 #include "AliGammaConversionAODBGHandler.h"
16 #include "TProfile2D.h"
18 class AliESDInputHandler;
19 class AliMCEventHandler;
22 class AliESDtrackCuts;
25 class AliGammaConversionHistograms;
26 class AliTriggerAnalysis;
28 class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
32 AliAnalysisTaskGammaConvDalitzV1();
33 AliAnalysisTaskGammaConvDalitzV1( const char* name );
34 virtual ~AliAnalysisTaskGammaConvDalitzV1();
36 virtual void UserExec(Option_t *);
37 virtual void UserCreateOutputObjects();
38 virtual Bool_t Notify();
39 virtual void Terminate(const Option_t *);
41 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
43 void SetIsHeavyIon(Int_t flag){
47 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
48 void SetEventCutList(Int_t nCuts, TList *CutArray){
50 fCutEventArray = CutArray;
52 void SetConversionCutList(Int_t nCuts, TList *CutArray){
54 fCutGammaArray = CutArray;
56 void SetElectronCutList(TList *CutArray){
57 fCutElectronArray = CutArray;
59 void SetMesonCutList(TList *CutArray){
60 fCutMesonArray = CutArray;
62 void SetDoChicAnalysis(Bool_t flag){ fDoChicAnalysis = flag; }
63 void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
64 void SetProductionVertextoVGamma(Bool_t flag) { fSetProductionVertextoVGamma = flag; }
68 void ProcessPhotonCandidates();
69 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
70 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
71 void ProcessTrueChicCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TruejpsiCandidate);
72 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
73 void ProcessElectronCandidates();
74 void ProcessVirtualGammasCandidates();
75 void ProcessMCParticles();
76 void CountESDTracks();
77 void CalculatePi0DalitzCandidates();
78 void CalculateBackground();
79 void UpdateEventByEventData();
80 void FillElectronQAHistos(AliAODConversionPhoton *Vgamma) const;
81 Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
82 Bool_t IsDalitz(TParticle *fMCMother) const;
83 Bool_t IsPi0DalitzDaughter( Int_t label ) const;
85 AliV0ReaderV1 *fV0Reader;
86 AliDalitzElectronSelector *fElecSelector;
87 AliGammaConversionAODBGHandler **fBGHandler;
88 AliESDEvent *fESDEvent;
98 TList *fOutputContainer;
99 TClonesArray *fReaderGammas;
100 vector<Int_t> fSelectorElectronIndex;
101 vector<Int_t> fSelectorPositronIndex;
103 TList *fGoodVirtualGammas;
104 TList *fGoodElectrons;
105 TList *fGoodPositrons;
106 TList *fCutEventArray;
107 TList *fCutGammaArray;
108 TList *fCutElectronArray;
109 TList *fCutMesonArray;
111 AliConvEventCuts *fEventCuts;
112 AliConversionPhotonCuts *fConversionCuts;
113 TH1F **hESDConvGammaPt;
114 TH1F **hESDConvGammaEta;
115 TH2F **hESDConvGammaZR;
116 TH1F **hESDDalitzElectronPt;
117 TH1F **hESDDalitzPositronPt;
118 TH1F **hESDDalitzElectronPhi;
119 TH1F **hESDDalitzPositronPhi;
120 TH1F **hESDDalitzElectronAfterPt;
121 TH1F **hESDDalitzPositronAfterPt;
122 TH1F **hESDDalitzElectronAfterEta;
123 TH1F **hESDDalitzElectronAfterEtaPCut;
124 TH1F **hESDDalitzPositronAfterEta;
125 TH1F **hESDDalitzPositronAfterEtaPCut;
126 TH1F **hESDDalitzElectronAfterPhi;
127 TH1F **hESDDalitzPositronAfterPhi;
128 TH1F **hESDDalitzElectronAfterNClsITS;
129 TH1F **hESDDalitzElectronAfterNClsITSPCut;
130 TH1F **hESDDalitzPositronAfterNClsITS;
131 TH1F **hESDDalitzPositronAfterNClsITSPCut;
132 TH2F **hESDDalitzElectronAfterNFindClsTPC;
133 TH1F **hESDDalitzElectronAfterNFindClsTPCPCut;
134 TH2F **hESDDalitzPositronAfterNFindClsTPC;
135 TH1F **hESDDalitzPositronAfterNFindClsTPCPCut;
136 TH2F **hESDDalitzElectronAfterNClsTPC;
137 TH1F **hESDDalitzElectronAfterNClsTPCPCut;
138 TH2F **hESDDalitzPositronAfterNClsTPC;
139 TH1F **hESDDalitzPositronAfterNClsTPCPCut;
140 TH2F **hESDDalitzElectronAfterNCrossedRowsTPC;
141 TH1F **hESDDalitzElectronAfterNCrossedRowsTPCPCut;
142 TH2F **hESDDalitzPositronAfterNCrossedRowsTPC;
143 TH1F **hESDDalitzPositronAfterNCrossedRowsTPCPCut;
144 TH2F **hESDDalitzPosEleAfterDCAxy;
145 TH2F **hESDDalitzPosEleAfterDCAz;
146 TH2F **hESDDalitzElectronAfterTPCdEdxVsP;
147 TH2F **hESDDalitzPositronAfterTPCdEdxVsP;
148 TH2F **hESDDalitzElectronAfterTPCdEdxSignalVsP;
149 TH2F **hESDDalitzPositronAfterTPCdEdxSignalVsP;
150 TH2F **hESDDalitzElectronAfterTPCdEdxVsEta;
151 TH2F **hESDDalitzPositronAfterTPCdEdxVsEta;
152 TH2F **hESDDalitzElectronAfterTPCdEdxVsPhi;
153 TH2F **hESDDalitzPositronAfterTPCdEdxVsPhi;
154 TH1F **hESDMotherPhi;
155 TH2F **hESDEposEnegPsiPairDPhi;
156 TH2F **hESDEposEnegInvMassPt;
157 TH2F **hESDEposEnegAfterMassCutInvMassPi0Pt;
158 TH2F **hESDEposEnegInvMassPi0Pt;
159 TH2F **hESDEposEnegLikeSignBackInvMassPt;
160 TH2F **hESDMotherInvMassPt;
161 TH2F **hESDPi0MotherInvMassPt;
162 TH2F **hESDPi0MotherDiffInvMassPt;
163 TH2F **hESDPi0MotherDiffLimInvMassPt;
164 THnSparseF **sESDMotherInvMassPtZM;
165 TH2F **hESDMotherBackInvMassPt;
166 THnSparseF **sESDMotherBackInvMassPtZM;
167 TH1F **hMCAllGammaPt;
168 TH1F **hMCConvGammaPt;
169 TH1F **hMCConvGammaRSPt;
170 TH1F **hMCAllPositronsPt;
171 TH1F **hMCAllElectronsPt;
172 TH1F **hMCConvGammaEta;
173 TH1F **hMCConvGammaR;
174 TH1F **hMCAllPositronsEta;
175 TH1F **hMCAllElectronsEta;
176 TH1F **hMCPi0DalitzGammaPt;
177 TH1F **hMCPi0DalitzElectronPt;
178 TH1F **hMCPi0DalitzPositronPt;
183 TH1F **hMCPi0InAccPt;
184 TH1F **hMCEtaInAccPt;
186 TH1F **hMCChiCInAccPt;
187 TH2F **hMCPi0EposEnegInvMassPt;
188 TH2F **hMCEtaEposEnegInvMassPt;
189 TH2F **hESDEposEnegTruePi0DalitzInvMassPt;
190 TH1F **hESDEposEnegTruePrimPi0DalitzInvMass;
191 TH2F **hESDEposEnegTruePi0DalitzPsiPairDPhi;
192 TH2F **hESDEposEnegTrueEtaDalitzInvMassPt;
193 TH1F **hESDEposEnegTruePrimEtaDalitzInvMass;
194 TH2F **hESDEposEnegTrueEtaDalitzPsiPairDPhi;
195 TH2F **hESDEposEnegTruePhotonInvMassPt;
196 TH2F **hESDEposEnegTrueInvMassPt;
197 TH2F **hESDEposEnegTruePhotonPsiPairDPhi;
198 TH2F **hESDEposEnegTruePhotonPsiPairDPhiPtCut;
199 TH2F **hESDEposEnegTrueJPsiInvMassPt;
200 TH2F **hESDTrueMotherChiCInvMassPt;
201 TH2F **hESDTrueMotherChiCDiffInvMassPt;
202 TH2F **hESDTrueMotherInvMassPt;
203 TH2F **hESDTrueMotherDalitzInvMassPt;
204 TH2F **hESDTrueMotherPi0GGInvMassPt;
205 TH2F **hESDTruePrimaryMotherPi0GGInvMassPt;
206 TH2F **hESDTrueSecondaryMotherPi0GGInvMassPt;
207 TH2F **hESDTruePrimaryMotherInvMassMCPt;
208 TH2F **hESDTruePrimaryMotherInvMassPt;
209 TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt;
210 TH2F **hESDTruePrimaryPi0DalitzESDPtMCPt;
211 TH2F **hESDTrueSecondaryMotherInvMassPt;
212 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
213 TH2F **hESDTrueBckGGInvMassPt;
214 TH2F **hESDTrueBckContInvMassPt;
215 TH2F **hESDTrueMotherGGInvMassPt;
216 TH1F **hESDTrueConvGammaPt;
217 TH1F **hESDTrueConvGammaR;
218 TH1F **hESDTrueConvGammaRMC;
219 TH1F **hESDTruePositronPt;
220 TH1F **hESDTrueElectronPt;
221 TH1F **hESDTrueSecConvGammaPt;
222 TH1F **hESDTrueSecPositronPt;
223 TH1F **hESDTrueSecElectronPt;
224 TH1F **hESDTruePi0DalitzConvGammaPt;
225 TH1F **hESDTruePi0DalitzPositronPt;
226 TH1F **hESDTruePi0DalitzElectronPt;
227 TH1F **hESDTruePi0DalitzSecConvGammaPt;
228 TH1F **hESDTruePi0DalitzSecPositronPt;
229 TH1F **hESDTruePi0DalitzSecElectronPt;
232 TH1I **hNGoodESDTracks;
233 TH2F **hNGoodESDTracksVsNGoodGammas;
234 TH2F **hNGoodESDTracksVsNGoodVGammas;
236 TProfile **hEtaShift;
239 Double_t *fUnsmearedPx;
240 Double_t *fUnsmearedPy;
241 Double_t *fUnsmearedPz;
242 Double_t *fUnsmearedE;
243 Double_t *fUnsmearedVPx;
244 Double_t *fUnsmearedVPy;
245 Double_t *fUnsmearedVPz;
246 Double_t *fUnsmearedVE;
250 Int_t fNumberOfESDTracks;
251 Int_t fNumberOfESDTrackskBoth;
252 Int_t fNVirtualGammas;
253 Bool_t fMoveParticleAccordingToVertex;
255 Bool_t fDoMesonAnalysis;
256 Bool_t fDoChicAnalysis;
258 Bool_t fSetProductionVertextoVGamma;
259 Bool_t fIsFromMBHeader;
263 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
264 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
266 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 4 );
269 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H