]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
- changes in Dalitztask
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskGammaConvDalitzV1.h
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"
13 #include "AliConversionMesonCuts.h"
14 #include "AliGammaConversionAODBGHandler.h"
15 #include "TProfile2D.h"
16
17 class AliESDInputHandler;
18 class AliMCEventHandler;
19 class AliESDEvent;
20 class AliESDtrack;
21 class AliESDtrackCuts;
22 class AliESDpidCuts;
23 class AliV0Reader;
24 class AliGammaConversionHistograms;
25 class AliTriggerAnalysis;
26
27 class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
28 {
29   public:
30
31         AliAnalysisTaskGammaConvDalitzV1();
32         AliAnalysisTaskGammaConvDalitzV1( const char* name );
33         virtual ~AliAnalysisTaskGammaConvDalitzV1();
34
35         virtual void UserExec(Option_t *);
36         virtual void UserCreateOutputObjects();
37         virtual Bool_t Notify();
38         virtual void Terminate(const Option_t *);
39
40
41
42          
43         void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
44          
45         void SetIsHeavyIon(Int_t flag){
46                 if (flag == 1 || flag ==2 ){
47                         fIsHeavyIon = 1;    
48                 } else {
49                         fIsHeavyIon = 0;    
50                 }
51         }
52         
53         void SetIsMC(Bool_t isMC){fIsMC=isMC;}
54         void SetConversionCutList(Int_t nCuts, TList *CutArray){
55                 fnCuts= nCuts;
56                 fCutGammaArray = CutArray;
57         }
58         void SetElectronCutList(TList *CutArray){
59                 fCutElectronArray = CutArray;
60         }
61         void SetMesonCutList(TList *CutArray){
62                 fCutMesonArray = CutArray;
63         }
64         void SetDoChicAnalysis(Bool_t flag){ fDoChicAnalysis = flag; }
65         void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
66   
67
68         private:
69
70                 void InitBack();
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;
85                 
86                 
87
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 *fCutGammaArray;
110     TList *fCutElectronArray;
111     TList *fCutMesonArray;
112     TList **fGammasPool;
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;
164     TH1F **hMCPi0Pt;
165     TH1F **hMCPi0GGPt;
166     TH1F **hMCEtaPt;
167     TH1F **hMCEtaGGPt;
168     TH1F **hMCPi0InAccPt;
169     TH1F **hMCEtaInAccPt;
170     TH1F **hMCChiCPt;
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){
211
212
213     TH1I **hNEvents;
214     TH1I **hNGoodESDTracks;
215     TProfile **hEtaShift;
216         
217     TRandom3 fRandom;
218     Double_t *fUnsmearedPx;
219     Double_t *fUnsmearedPy;
220     Double_t *fUnsmearedPz;
221     Double_t *fUnsmearedE;
222     Int_t fnCuts;
223     Int_t fiCut;
224     Int_t fNumberOfESDTracks;
225     Bool_t fMoveParticleAccordingToVertex;
226     Bool_t fIsHeavyIon;
227     Bool_t fDoMesonAnalysis;
228     Bool_t fDoChicAnalysis;
229     Bool_t fDoMesonQA;
230     Bool_t fIsFromMBHeader;
231                 Bool_t fIsMC;
232
233         private:
234                 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
235                 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
236
237                 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 3 );
238 };
239
240 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
241