]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
weigthing for new production enabled
[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         void SetDoChicAnalysis(Bool_t flag){ fDoChicAnalysis = flag; }
64         void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
65   
66
67         private:
68
69                 void InitBack();
70                 void ProcessPhotonCandidates();
71                 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
72                 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
73                 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
74                 void ProcessElectronCandidates();
75                 void ProcessMCParticles();
76                 void CountESDTracks();
77                 void CalculatePi0DalitzCandidates();
78                 void CalculateBackground();
79                 void UpdateEventByEventData();
80                 Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
81                 Bool_t IsDalitz(TParticle *fMCMother) const;
82                 Bool_t IsPi0DalitzDaughter( Int_t label ) const;
83                 
84                 
85
86     AliV0ReaderV1 *fV0Reader;
87     AliDalitzElectronSelector* fElecSelector;
88     AliGammaConversionAODBGHandler **fBGHandler;
89     AliESDEvent *fESDEvent;
90     AliMCEvent *fMCEvent;
91     AliStack *fMCStack;
92     TList **fCutFolder;
93     TList **fESDList;
94     TList **fBackList;
95     TList **fMotherList;
96     TList **fTrueList;
97     TList **fMCList;
98     TList *fOutputContainer;
99     TClonesArray *fReaderGammas;
100     vector<Int_t> fSelectorElectronIndex;
101     vector<Int_t> fSelectorPositronIndex;
102     TList *fGoodGammas;
103     TList *fGoodVirtualGammas;
104     TList *fGoodElectrons;
105     TList *fGoodPositrons;
106     TList *fCutGammaArray;
107     TList *fCutElectronArray;
108     TList *fCutMesonArray;
109     TList **fGammasPool;
110     AliConversionCuts *fConversionCuts;
111     TH1F **hESDConvGammaPt;
112     TH1F **hESDDalitzElectronPt;
113     TH1F **hESDDalitzPositronPt;
114     TH1F **hESDDalitzElectronPhi;
115     TH1F **hESDDalitzPositronPhi;
116     TH1F **hESDDalitzElectronAfterPt;
117     TH1F **hESDDalitzPositronAfterPt;
118     TH1F **hESDDalitzElectronAfterPhi;
119     TH1F **hESDDalitzPositronAfterPhi;
120     TH2F **hESDDalitzElectronAfterNFindClsTPC;
121     TH2F **hESDDalitzPositronAfterNFindClsTPC;
122     TH2F **hESDDalitzPosEleAfterDCAxy;
123     TH2F **hESDDalitzPosEleAfterDCAz;
124     TH2F **hESDDalitzPosEleAfterTPCdEdx;
125     TH2F **hESDDalitzPosEleAfterTPCdEdxSignal;
126     TH1F **hESDMotherPhi;
127     TH2F **hESDEposEnegPsiPairDPhi;
128     TH2F **hESDEposEnegInvMassPt;
129     TH2F **hESDEposEnegLikeSignBackInvMassPt;
130     TH2F **hESDMotherInvMassPt;
131     TH2F **hESDPi0MotherInvMassPt;
132     TH2F **hESDPi0MotherDiffInvMassPt;
133     TH2F **hESDPi0MotherDiffLimInvMassPt;
134     THnSparseF **sESDMotherInvMassPtZM;
135     TH2F **hESDMotherBackInvMassPt;
136     THnSparseF **sESDMotherBackInvMassPtZM;
137     TH1F **hMCAllGammaPt;
138     TH1F **hMCConvGammaPt;
139     TH1F **hMCConvGammaRSPt;
140     TH1F **hMCAllPositronsPt;
141     TH1F **hMCAllElectronsPt;
142     TH1F **hMCPi0DalitzGammaPt;
143     TH1F **hMCPi0DalitzElectronPt;
144     TH1F **hMCPi0DalitzPositronPt;
145     TH1F **hMCPi0Pt;
146     TH1F **hMCPi0GGPt;
147     TH1F **hMCEtaPt;
148     TH1F **hMCEtaGGPt;
149     TH1F **hMCPi0InAccPt;
150     TH1F **hMCEtaInAccPt;
151     TH1F **hMCChiCPt;
152     TH1F **hMCChiCInAccPt;
153     TH2F **hESDEposEnegTruePi0DalitzInvMassPt;
154     TH2F **hESDEposEnegTrueEtaDalitzInvMassPt;
155     TH2F **hESDEposEnegTruePhotonInvMassPt;
156     TH2F **hESDEposEnegTrueJPsiInvMassPt;
157     TH2F **hESDTrueMotherChiCInvMassPt;
158     TH2F **hESDTrueMotherChiCDiffInvMassPt;
159     TH2F **hESDTrueMotherInvMassPt;
160     TH2F **hESDTrueMotherDalitzInvMassPt;
161     TH2F **hESDTrueMotherPi0GGInvMassPt;
162     TH2F **hESDTruePrimaryMotherInvMassMCPt;
163     TH2F **hESDTruePrimaryPi0DalitzESDPtMCPt;
164     TH2F **hESDTrueSecondaryMotherInvMassPt;
165     TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
166     TH2F **hESDTrueBckGGInvMassPt;
167     TH2F **hESDTrueBckContInvMassPt;
168     TH2F **hESDTrueMotherGGInvMassPt;
169     TH1F **hESDTrueConvGammaPt;
170     TH1F **hESDTruePositronPt;
171     TH1F **hESDTrueElectronPt;
172     TH1F **hESDTrueSecConvGammaPt;
173     TH1F **hESDTrueSecPositronPt;
174     TH1F **hESDTrueSecElectronPt;
175     TH1F **hESDTruePi0DalitzConvGammaPt;
176     TH1F **hESDTruePi0DalitzPositronPt;
177     TH1F **hESDTruePi0DalitzElectronPt;
178     TH1F **hESDTruePi0DalitzSecConvGammaPt;
179     TH1F **hESDTruePi0DalitzSecPositronPt;
180     TH1F **hESDTruePi0DalitzSecElectronPt;
181       //if(fDoMesonAnalysis){
182
183
184     TH1I **hNEvents;
185     TH1I **hNGoodESDTracks;
186         
187     TRandom3 fRandom;
188     Double_t *fUnsmearedPx;
189     Double_t *fUnsmearedPy;
190     Double_t *fUnsmearedPz;
191     Double_t *fUnsmearedE;
192     Int_t fnCuts;
193     Int_t fiCut;
194     Int_t fNumberOfESDTracks;
195     Bool_t fMoveParticleAccordingToVertex;
196     Bool_t fIsHeavyIon;
197     Bool_t fDoMesonAnalysis;
198     Bool_t fDoChicAnalysis;
199     Bool_t fDoMesonQA;
200     Bool_t fIsFromMBHeader;
201                 Bool_t fIsMC;
202
203         private:
204                 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
205                 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
206
207                 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 3 );
208 };
209
210 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
211