]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
modification in addTask.
[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
16 class AliESDInputHandler;
17 class AliMCEventHandler;
18 class AliESDEvent;
19 class AliESDtrack;
20 class AliESDtrackCuts;
21 class AliESDpidCuts;
22 class AliV0Reader;
23 class AliGammaConversionHistograms;
24 class AliTriggerAnalysis;
25
26 class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
27 {
28   public:
29
30         AliAnalysisTaskGammaConvDalitzV1();
31         AliAnalysisTaskGammaConvDalitzV1( const char* name );
32         virtual ~AliAnalysisTaskGammaConvDalitzV1();
33
34         virtual void UserExec(Option_t *);
35         virtual void UserCreateOutputObjects();
36         virtual Bool_t Notify();
37         virtual void Terminate(const Option_t *);
38
39
40
41          
42         void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
43          
44         void SetIsHeavyIon(Int_t flag){
45                 if (flag == 1 || flag ==2 ){
46                         fIsHeavyIon = 1;    
47                 } else {
48                         fIsHeavyIon = 0;    
49                 }
50         }
51         
52         void SetIsMC(Bool_t isMC){fIsMC=isMC;}
53         void SetConversionCutList(Int_t nCuts, TList *CutArray){
54                 fnCuts= nCuts;
55                 fCutGammaArray = CutArray;
56         }
57         void SetElectronCutList(TList *CutArray){
58                 fCutElectronArray = CutArray;
59         }
60         void SetMesonCutList(TList *CutArray){
61                 fCutMesonArray = CutArray;
62         }
63   
64
65         private:
66
67                 void InitBack();
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;
81                 
82                 
83
84     AliV0ReaderV1 *fV0Reader;
85     AliDalitzElectronSelector* fElecSelector;
86     AliGammaConversionAODBGHandler **fBGHandler;
87     AliESDEvent *fESDEvent;
88     AliMCEvent *fMCEvent;
89     AliStack *fMCStack;
90     TList **fCutFolder;
91     TList **fESDList;
92     TList **fBackList;
93     TList **fTrueList;
94     TList **fMCList;
95     TList *fOutputContainer;
96     TClonesArray *fReaderGammas;
97     vector<Int_t> fSelectorElectronIndex;
98     vector<Int_t> fSelectorPositronIndex;
99     TList *fGoodGammas;
100     TList *fGoodVirtualGammas;
101     TList *fGoodElectrons;
102     TList *fGoodPositrons;
103     TList *fCutGammaArray;
104     TList *fCutElectronArray;
105     TList *fCutMesonArray;
106     TList **fGammasPool;
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;
129     TH1F **hMCPi0Pt;
130     TH1F **hMCPi0GGPt;
131     TH1F **hMCEtaPt;
132     TH1F **hMCEtaGGPt;
133     TH1F **hMCPi0InAccPt;
134     TH1F **hMCEtaInAccPt;
135     TH1F **hMCChiCPt;
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){
165
166
167     TH1I **hNEvents;
168     TH1I **hNGoodESDTracks;
169         
170     TRandom3 fRandom;
171     Double_t *fUnsmearedPx;
172     Double_t *fUnsmearedPy;
173     Double_t *fUnsmearedPz;
174     Double_t *fUnsmearedE;
175     Int_t fnCuts;
176     Int_t fiCut;
177     Int_t fNumberOfESDTracks;
178     Bool_t fMoveParticleAccordingToVertex;
179     Bool_t fIsHeavyIon;
180     Bool_t fDoMesonAnalysis;
181     Bool_t fIsFromMBHeader;
182                 Bool_t fIsMC;
183
184         private:
185                 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
186                 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
187
188                 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 3 );
189 };
190
191 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
192