]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
changed Resolution, Material, and PhotonQA task to be able to run on the grid
[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                 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;
84                 
85                 
86
87     AliV0ReaderV1 *fV0Reader;
88     AliDalitzElectronSelector* fElecSelector;
89     AliGammaConversionAODBGHandler **fBGHandler;
90     AliESDEvent *fESDEvent;
91     AliMCEvent *fMCEvent;
92     AliStack *fMCStack;
93     TList **fCutFolder;
94     TList **fESDList;
95     TList **fBackList;
96     TList **fMotherList;
97     TList **fTrueList;
98     TList **fMCList;
99     TList *fOutputContainer;
100     TClonesArray *fReaderGammas;
101     vector<Int_t> fSelectorElectronIndex;
102     vector<Int_t> fSelectorPositronIndex;
103     TList *fGoodGammas;
104     TList *fGoodVirtualGammas;
105     TList *fGoodElectrons;
106     TList *fGoodPositrons;
107     TList *fCutGammaArray;
108     TList *fCutElectronArray;
109     TList *fCutMesonArray;
110     TList **fGammasPool;
111     AliConversionCuts *fConversionCuts;
112     TH1F **hESDConvGammaPt;
113     TH1F **hESDDalitzElectronPt;
114     TH1F **hESDDalitzPositronPt;
115     TH1F **hESDDalitzElectronPhi;
116     TH1F **hESDDalitzPositronPhi;
117     TH1F **hESDDalitzElectronAfterPt;
118     TH1F **hESDDalitzPositronAfterPt;
119     TH1F **hESDDalitzElectronAfterPhi;
120     TH1F **hESDDalitzPositronAfterPhi;
121     TH2F **hESDDalitzElectronAfterNFindClsTPC;
122     TH2F **hESDDalitzPositronAfterNFindClsTPC;
123     TH2F **hESDDalitzPosEleAfterDCAxy;
124     TH2F **hESDDalitzPosEleAfterDCAz;
125     TH2F **hESDDalitzPosEleAfterTPCdEdx;
126     TH2F **hESDDalitzPosEleAfterTPCdEdxSignal;
127     TH1F **hESDMotherPhi;
128     TH2F **hESDEposEnegPsiPairDPhi;
129     TH2F **hESDEposEnegInvMassPt;
130     TH2F **hESDEposEnegLikeSignBackInvMassPt;
131     TH2F **hESDMotherInvMassPt;
132     TH2F **hESDPi0MotherInvMassPt;
133     TH2F **hESDPi0MotherDiffInvMassPt;
134     TH2F **hESDPi0MotherDiffLimInvMassPt;
135     THnSparseF **sESDMotherInvMassPtZM;
136     TH2F **hESDMotherBackInvMassPt;
137     THnSparseF **sESDMotherBackInvMassPtZM;
138     TH1F **hMCAllGammaPt;
139     TH1F **hMCConvGammaPt;
140     TH1F **hMCConvGammaRSPt;
141     TH1F **hMCAllPositronsPt;
142     TH1F **hMCAllElectronsPt;
143     TH1F **hMCPi0DalitzGammaPt;
144     TH1F **hMCPi0DalitzElectronPt;
145     TH1F **hMCPi0DalitzPositronPt;
146     TH1F **hMCPi0Pt;
147     TH1F **hMCPi0GGPt;
148     TH1F **hMCEtaPt;
149     TH1F **hMCEtaGGPt;
150     TH1F **hMCPi0InAccPt;
151     TH1F **hMCEtaInAccPt;
152     TH1F **hMCChiCPt;
153     TH1F **hMCChiCInAccPt;
154     TH2F **hESDEposEnegTruePi0DalitzInvMassPt;
155     TH2F **hESDEposEnegTruePi0DalitzPsiPairDPhi;
156     TH2F **hESDEposEnegTrueEtaDalitzInvMassPt;
157     TH2F **hESDEposEnegTrueEtaDalitzPsiPairDPhi;
158     TH2F **hESDEposEnegTruePhotonInvMassPt;
159     TH2F **hESDEposEnegTruePhotonPsiPairDPhi;
160     TH2F **hESDEposEnegTrueJPsiInvMassPt;
161     TH2F **hESDTrueMotherChiCInvMassPt;
162     TH2F **hESDTrueMotherChiCDiffInvMassPt;
163     TH2F **hESDTrueMotherInvMassPt;
164     TH2F **hESDTrueMotherDalitzInvMassPt;
165     TH2F **hESDTrueMotherPi0GGInvMassPt;
166     TH2F **hESDTruePrimaryMotherPi0GGInvMassPt;
167     TH2F **hESDTrueSecondaryMotherPi0GGInvMassPt;
168     TH2F **hESDTruePrimaryMotherInvMassMCPt;
169     TH2F **hESDTruePrimaryMotherInvMassPt;
170     TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt;
171     TH2F **hESDTruePrimaryPi0DalitzESDPtMCPt;
172     TH2F **hESDTrueSecondaryMotherInvMassPt;
173     TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
174     TH2F **hESDTrueBckGGInvMassPt;
175     TH2F **hESDTrueBckContInvMassPt;
176     TH2F **hESDTrueMotherGGInvMassPt;
177     TH1F **hESDTrueConvGammaPt;
178     TH1F **hESDTruePositronPt;
179     TH1F **hESDTrueElectronPt;
180     TH1F **hESDTrueSecConvGammaPt;
181     TH1F **hESDTrueSecPositronPt;
182     TH1F **hESDTrueSecElectronPt;
183     TH1F **hESDTruePi0DalitzConvGammaPt;
184     TH1F **hESDTruePi0DalitzPositronPt;
185     TH1F **hESDTruePi0DalitzElectronPt;
186     TH1F **hESDTruePi0DalitzSecConvGammaPt;
187     TH1F **hESDTruePi0DalitzSecPositronPt;
188     TH1F **hESDTruePi0DalitzSecElectronPt;
189       //if(fDoMesonAnalysis){
190
191
192     TH1I **hNEvents;
193     TH1I **hNGoodESDTracks;
194     TProfile **hEtaShift;
195         
196     TRandom3 fRandom;
197     Double_t *fUnsmearedPx;
198     Double_t *fUnsmearedPy;
199     Double_t *fUnsmearedPz;
200     Double_t *fUnsmearedE;
201     Int_t fnCuts;
202     Int_t fiCut;
203     Int_t fNumberOfESDTracks;
204     Bool_t fMoveParticleAccordingToVertex;
205     Bool_t fIsHeavyIon;
206     Bool_t fDoMesonAnalysis;
207     Bool_t fDoChicAnalysis;
208     Bool_t fDoMesonQA;
209     Bool_t fIsFromMBHeader;
210                 Bool_t fIsMC;
211
212         private:
213                 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
214                 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
215
216                 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 3 );
217 };
218
219 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
220