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"
16 class AliESDInputHandler;
17 class AliMCEventHandler;
20 class AliESDtrackCuts;
23 class AliGammaConversionHistograms;
24 class AliTriggerAnalysis;
26 class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
30 AliAnalysisTaskGammaConvDalitzV1();
31 AliAnalysisTaskGammaConvDalitzV1( const char* name );
32 virtual ~AliAnalysisTaskGammaConvDalitzV1();
34 virtual void UserExec(Option_t *);
35 virtual void UserCreateOutputObjects();
36 virtual Bool_t Notify();
37 virtual void Terminate(const Option_t *);
42 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
44 void SetIsHeavyIon(Int_t flag){
45 if (flag == 1 || flag ==2 ){
52 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
53 void SetConversionCutList(Int_t nCuts, TList *CutArray){
55 fCutGammaArray = CutArray;
57 void SetElectronCutList(TList *CutArray){
58 fCutElectronArray = CutArray;
60 void SetMesonCutList(TList *CutArray){
61 fCutMesonArray = CutArray;
68 void ProcessPhotonCandidates();
69 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
70 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
71 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
72 void ProcessElectronCandidates();
73 void ProcessMCParticles();
74 void CountESDTracks();
75 void CalculatePi0DalitzCandidates();
76 void CalculateBackground();
77 void UpdateEventByEventData();
78 Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
79 Bool_t IsDalitz(TParticle *fMCMother) const;
80 Bool_t IsPi0DalitzDaughter( Int_t label ) const;
84 AliV0ReaderV1 *fV0Reader;
85 AliDalitzElectronSelector* fElecSelector;
86 AliGammaConversionAODBGHandler **fBGHandler;
87 AliESDEvent *fESDEvent;
95 TList *fOutputContainer;
96 TClonesArray *fReaderGammas;
97 vector<Int_t> fSelectorElectronIndex;
98 vector<Int_t> fSelectorPositronIndex;
100 TList *fGoodVirtualGammas;
101 TList *fGoodElectrons;
102 TList *fGoodPositrons;
103 TList *fCutGammaArray;
104 TList *fCutElectronArray;
105 TList *fCutMesonArray;
107 AliConversionCuts *fConversionCuts;
108 TH1F **hESDConvGammaPt;
109 TH1F **hESDDalitzElectronPt;
110 TH1F **hESDDalitzPositronPt;
111 TH2F **hESDEposEnegPsiPairDPhi;
112 TH2F **hESDEposEnegInvMassPt;
113 TH2F **hESDEposEnegLikeSignBackInvMassPt;
114 TH2F **hESDMotherInvMassPt;
115 TH2F **hESDPi0MotherInvMassPt;
116 TH2F **hESDPi0MotherDiffInvMassPt;
117 TH2F **hESDPi0MotherDiffLimInvMassPt;
118 THnSparseF **sESDMotherInvMassPtZM;
119 TH2F **hESDMotherBackInvMassPt;
120 THnSparseF **sESDMotherBackInvMassPtZM;
121 TH1F **hMCAllGammaPt;
122 TH1F **hMCConvGammaPt;
123 TH1F **hMCConvGammaRSPt;
124 TH1F **hMCAllPositronsPt;
125 TH1F **hMCAllElectronsPt;
126 TH1F **hMCPi0DalitzGammaPt;
127 TH1F **hMCPi0DalitzElectronPt;
128 TH1F **hMCPi0DalitzPositronPt;
133 TH1F **hMCPi0InAccPt;
134 TH1F **hMCEtaInAccPt;
136 TH1F **hMCChiCInAccPt;
137 TH2F **hESDEposEnegTruePi0DalitzInvMassPt;
138 TH2F **hESDEposEnegTrueEtaDalitzInvMassPt;
139 TH2F **hESDEposEnegTruePhotonInvMassPt;
140 TH2F **hESDEposEnegTrueJPsiInvMassPt;
141 TH2F **hESDTrueMotherChiCInvMassPt;
142 TH2F **hESDTrueMotherChiCDiffInvMassPt;
143 TH2F **hESDTrueMotherInvMassPt;
144 TH2F **hESDTrueMotherPi0GGInvMassPt;
145 TH2F **hESDTruePrimaryMotherInvMassMCPt;
146 TH2F **hESDTruePrimaryPi0DalitzESDPtMCPt;
147 TH2F **hESDTrueSecondaryMotherInvMassPt;
148 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
149 TH2F **hESDTrueBckGGInvMassPt;
150 TH2F **hESDTrueBckContInvMassPt;
151 TH2F **hESDTrueMotherGGInvMassPt;
152 TH1F **hESDTrueConvGammaPt;
153 TH1F **hESDTruePositronPt;
154 TH1F **hESDTrueElectronPt;
155 TH1F **hESDTrueSecConvGammaPt;
156 TH1F **hESDTrueSecPositronPt;
157 TH1F **hESDTrueSecElectronPt;
158 TH1F **hESDTruePi0DalitzConvGammaPt;
159 TH1F **hESDTruePi0DalitzPositronPt;
160 TH1F **hESDTruePi0DalitzElectronPt;
161 TH1F **hESDTruePi0DalitzSecConvGammaPt;
162 TH1F **hESDTruePi0DalitzSecPositronPt;
163 TH1F **hESDTruePi0DalitzSecElectronPt;
164 //if(fDoMesonAnalysis){
168 TH1I **hNGoodESDTracks;
171 Double_t *fUnsmearedPx;
172 Double_t *fUnsmearedPy;
173 Double_t *fUnsmearedPz;
174 Double_t *fUnsmearedE;
177 Int_t fNumberOfESDTracks;
178 Bool_t fMoveParticleAccordingToVertex;
180 Bool_t fDoMesonAnalysis;
181 Bool_t fIsFromMBHeader;
185 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
186 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
188 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 3 );
191 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H