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 "AliConversionMesonCuts.h"
14 #include "AliGammaConversionAODBGHandler.h"
15 #include "TProfile2D.h"
17 class AliESDInputHandler;
18 class AliMCEventHandler;
21 class AliESDtrackCuts;
24 class AliGammaConversionHistograms;
25 class AliTriggerAnalysis;
27 class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
31 AliAnalysisTaskGammaConvDalitzV1();
32 AliAnalysisTaskGammaConvDalitzV1( const char* name );
33 virtual ~AliAnalysisTaskGammaConvDalitzV1();
35 virtual void UserExec(Option_t *);
36 virtual void UserCreateOutputObjects();
37 virtual Bool_t Notify();
38 virtual void Terminate(const Option_t *);
43 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
45 void SetIsHeavyIon(Int_t flag){
46 if (flag == 1 || flag ==2 ){
53 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
54 void SetConversionCutList(Int_t nCuts, TList *CutArray){
56 fCutGammaArray = CutArray;
58 void SetElectronCutList(TList *CutArray){
59 fCutElectronArray = CutArray;
61 void SetMesonCutList(TList *CutArray){
62 fCutMesonArray = CutArray;
64 void SetDoChicAnalysis(Bool_t flag){ fDoChicAnalysis = flag; }
65 void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
71 void ProcessPhotonCandidates();
72 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
73 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
74 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
75 void ProcessElectronCandidates();
76 void ProcessMCParticles();
77 void CountESDTracks();
78 void CalculatePi0DalitzCandidates();
79 void CalculateBackground();
80 void UpdateEventByEventData();
81 void FillElectronQAHistos(AliAODConversionPhoton *Vgamma) const;
82 Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
83 Bool_t IsDalitz(TParticle *fMCMother) const;
84 Bool_t IsPi0DalitzDaughter( Int_t label ) const;
88 AliV0ReaderV1 *fV0Reader;
89 AliDalitzElectronSelector* fElecSelector;
90 AliGammaConversionAODBGHandler **fBGHandler;
91 AliESDEvent *fESDEvent;
101 TList *fOutputContainer;
102 TClonesArray *fReaderGammas;
103 vector<Int_t> fSelectorElectronIndex;
104 vector<Int_t> fSelectorPositronIndex;
106 TList *fGoodVirtualGammas;
107 TList *fGoodElectrons;
108 TList *fGoodPositrons;
109 TList *fCutGammaArray;
110 TList *fCutElectronArray;
111 TList *fCutMesonArray;
113 AliConversionCuts *fConversionCuts;
114 TH1F **hESDConvGammaPt;
115 TH1F **hESDConvGammaEta;
116 TH2F **hESDConvGammaZR;
117 TH1F **hESDDalitzElectronPt;
118 TH1F **hESDDalitzPositronPt;
119 TH1F **hESDDalitzElectronPhi;
120 TH1F **hESDDalitzPositronPhi;
121 TH1F **hESDDalitzElectronAfterPt;
122 TH1F **hESDDalitzPositronAfterPt;
123 TH1F **hESDDalitzElectronAfterEta;
124 TH1F **hESDDalitzPositronAfterEta;
125 TH1F **hESDDalitzElectronAfterPhi;
126 TH1F **hESDDalitzPositronAfterPhi;
127 TH1F **hESDDalitzElectronAfterNClsITS;
128 TH1F **hESDDalitzPositronAfterNClsITS;
129 TH2F **hESDDalitzElectronAfterNFindClsTPC;
130 TH2F **hESDDalitzPositronAfterNFindClsTPC;
131 TH2F **hESDDalitzElectronAfterNClsTPC;
132 TH2F **hESDDalitzPositronAfterNClsTPC;
133 TH2F **hESDDalitzElectronAfterNCrossedRowsTPC;
134 TH2F **hESDDalitzPositronAfterNCrossedRowsTPC;
135 TH2F **hESDDalitzPosEleAfterDCAxy;
136 TH2F **hESDDalitzPosEleAfterDCAz;
137 TH2F **hESDDalitzElectronAfterTPCdEdxVsP;
138 TH2F **hESDDalitzPositronAfterTPCdEdxVsP;
139 TH2F **hESDDalitzElectronAfterTPCdEdxSignalVsP;
140 TH2F **hESDDalitzPositronAfterTPCdEdxSignalVsP;
141 TH2F **hESDDalitzElectronAfterTPCdEdxVsEta;
142 TH2F **hESDDalitzPositronAfterTPCdEdxVsEta;
143 TH2F **hESDDalitzElectronAfterTPCdEdxVsPhi;
144 TH2F **hESDDalitzPositronAfterTPCdEdxVsPhi;
145 TH1F **hESDMotherPhi;
146 TH2F **hESDEposEnegPsiPairDPhi;
147 TH2F **hESDEposEnegInvMassPt;
148 TH2F **hESDEposEnegLikeSignBackInvMassPt;
149 TH2F **hESDMotherInvMassPt;
150 TH2F **hESDPi0MotherInvMassPt;
151 TH2F **hESDPi0MotherDiffInvMassPt;
152 TH2F **hESDPi0MotherDiffLimInvMassPt;
153 THnSparseF **sESDMotherInvMassPtZM;
154 TH2F **hESDMotherBackInvMassPt;
155 THnSparseF **sESDMotherBackInvMassPtZM;
156 TH1F **hMCAllGammaPt;
157 TH1F **hMCConvGammaPt;
158 TH1F **hMCConvGammaRSPt;
159 TH1F **hMCAllPositronsPt;
160 TH1F **hMCAllElectronsPt;
161 TH1F **hMCPi0DalitzGammaPt;
162 TH1F **hMCPi0DalitzElectronPt;
163 TH1F **hMCPi0DalitzPositronPt;
168 TH1F **hMCPi0InAccPt;
169 TH1F **hMCEtaInAccPt;
171 TH1F **hMCChiCInAccPt;
172 TH2F **hMCPi0EposEnegInvMassPt;
173 TH2F **hMCEtaEposEnegInvMassPt;
174 TH2F **hESDEposEnegTruePi0DalitzInvMassPt;
175 TH2F **hESDEposEnegTruePi0DalitzPsiPairDPhi;
176 TH2F **hESDEposEnegTrueEtaDalitzInvMassPt;
177 TH2F **hESDEposEnegTrueEtaDalitzPsiPairDPhi;
178 TH2F **hESDEposEnegTruePhotonInvMassPt;
179 TH2F **hESDEposEnegTrueInvMassPt;
180 TH2F **hESDEposEnegTruePhotonPsiPairDPhi;
181 TH2F **hESDEposEnegTrueJPsiInvMassPt;
182 TH2F **hESDTrueMotherChiCInvMassPt;
183 TH2F **hESDTrueMotherChiCDiffInvMassPt;
184 TH2F **hESDTrueMotherInvMassPt;
185 TH2F **hESDTrueMotherDalitzInvMassPt;
186 TH2F **hESDTrueMotherPi0GGInvMassPt;
187 TH2F **hESDTruePrimaryMotherPi0GGInvMassPt;
188 TH2F **hESDTrueSecondaryMotherPi0GGInvMassPt;
189 TH2F **hESDTruePrimaryMotherInvMassMCPt;
190 TH2F **hESDTruePrimaryMotherInvMassPt;
191 TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt;
192 TH2F **hESDTruePrimaryPi0DalitzESDPtMCPt;
193 TH2F **hESDTrueSecondaryMotherInvMassPt;
194 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
195 TH2F **hESDTrueBckGGInvMassPt;
196 TH2F **hESDTrueBckContInvMassPt;
197 TH2F **hESDTrueMotherGGInvMassPt;
198 TH1F **hESDTrueConvGammaPt;
199 TH1F **hESDTruePositronPt;
200 TH1F **hESDTrueElectronPt;
201 TH1F **hESDTrueSecConvGammaPt;
202 TH1F **hESDTrueSecPositronPt;
203 TH1F **hESDTrueSecElectronPt;
204 TH1F **hESDTruePi0DalitzConvGammaPt;
205 TH1F **hESDTruePi0DalitzPositronPt;
206 TH1F **hESDTruePi0DalitzElectronPt;
207 TH1F **hESDTruePi0DalitzSecConvGammaPt;
208 TH1F **hESDTruePi0DalitzSecPositronPt;
209 TH1F **hESDTruePi0DalitzSecElectronPt;
210 //if(fDoMesonAnalysis){
214 TH1I **hNGoodESDTracks;
215 TProfile **hEtaShift;
218 Double_t *fUnsmearedPx;
219 Double_t *fUnsmearedPy;
220 Double_t *fUnsmearedPz;
221 Double_t *fUnsmearedE;
224 Int_t fNumberOfESDTracks;
225 Bool_t fMoveParticleAccordingToVertex;
227 Bool_t fDoMesonAnalysis;
228 Bool_t fDoChicAnalysis;
230 Bool_t fIsFromMBHeader;
234 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
235 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
237 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 3 );
240 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H