]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
31d4b43d530cb67d6e93dcb358b42ae8918af77f
[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 "AliConvEventCuts.h"
14 #include "AliConversionMesonCuts.h"
15 #include "AliGammaConversionAODBGHandler.h"
16 #include "TProfile2D.h"
17
18 class AliESDInputHandler;
19 class AliMCEventHandler;
20 class AliESDEvent;
21 class AliESDtrack;
22 class AliESDtrackCuts;
23 class AliESDpidCuts;
24 class AliV0Reader;
25 class AliGammaConversionHistograms;
26 class AliTriggerAnalysis;
27
28 class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
29 {
30         public:
31
32                 AliAnalysisTaskGammaConvDalitzV1();
33                 AliAnalysisTaskGammaConvDalitzV1( const char* name );
34                 virtual ~AliAnalysisTaskGammaConvDalitzV1();
35
36                 virtual void UserExec(Option_t *);
37                 virtual void UserCreateOutputObjects();
38                 virtual Bool_t Notify();
39                 virtual void Terminate(const Option_t *);
40                         
41                 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
42                         
43                 void SetIsHeavyIon(Int_t flag){
44                         fIsHeavyIon = flag;
45                 }
46                 
47                 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
48                 void SetEventCutList(Int_t nCuts, TList *CutArray){
49                         fnCuts= nCuts;
50                         fCutEventArray = CutArray;
51                 }
52                 void SetConversionCutList(Int_t nCuts, TList *CutArray){
53                         fnCuts= nCuts;
54                         fCutGammaArray = CutArray;
55                 }
56                 void SetElectronCutList(TList *CutArray){
57                         fCutElectronArray = CutArray;
58                 }
59                 void SetMesonCutList(TList *CutArray){
60                         fCutMesonArray = CutArray;
61                 }
62                 void SetDoChicAnalysis(Bool_t flag){ fDoChicAnalysis = flag; }
63                 void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
64                 void SetProductionVertextoVGamma(Bool_t flag) { fSetProductionVertextoVGamma = flag; }
65         
66         private:
67                 void InitBack();
68                 void ProcessPhotonCandidates();
69                 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
70                 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
71                 void ProcessTrueChicCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TruejpsiCandidate);
72                 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
73                 void ProcessElectronCandidates();
74                 void ProcessVirtualGammasCandidates();
75                 void ProcessMCParticles();
76                 void CountESDTracks();
77                 void CalculatePi0DalitzCandidates();
78                 void CalculateBackground();
79                 void UpdateEventByEventData();
80                 void FillElectronQAHistos(AliAODConversionPhoton *Vgamma) const;
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                 AliV0ReaderV1                                                   *fV0Reader;
86                 AliDalitzElectronSelector                               *fElecSelector;
87                 AliGammaConversionAODBGHandler                  **fBGHandler;
88                 AliESDEvent                                                     *fESDEvent;
89                 AliMCEvent                                                              *fMCEvent;
90                 AliStack                                                                *fMCStack;
91                 TList                                                                   **fCutFolder;
92                 TList                                                                   **fESDList;
93                 TList                                                                   **fBackList;
94                 TList                                                                   **fMotherList;
95                 TList                                                                   **fTrueList;
96                 TList                                                                   **fMCList;
97                 TList                                                                   **fQAFolder;
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                                                                   *fCutEventArray;
107                 TList                                                                   *fCutGammaArray;
108                 TList                                                                   *fCutElectronArray;
109                 TList                                                                   *fCutMesonArray;
110                 TList                                                                   **fGammasPool;
111                 AliConvEventCuts                                                *fEventCuts;
112                 AliConversionPhotonCuts                                 *fConversionCuts;
113                 TH1F                                                                    **hESDConvGammaPt;
114                 TH1F                                                                    **hESDConvGammaEta;
115                 TH2F                                                                    **hESDConvGammaZR;
116                 TH1F                                                                    **hESDDalitzElectronPt;
117                 TH1F                                                                    **hESDDalitzPositronPt;
118                 TH1F                                                                    **hESDDalitzElectronPhi;
119                 TH1F                                                                    **hESDDalitzPositronPhi;
120                 TH1F                                                                    **hESDDalitzElectronAfterPt;
121                 TH1F                                                                    **hESDDalitzPositronAfterPt;
122                 TH1F                                                                    **hESDDalitzElectronAfterEta;
123                 TH1F                                                                    **hESDDalitzElectronAfterEtaPCut;
124                 TH1F                                                                    **hESDDalitzPositronAfterEta;
125                 TH1F                                                                    **hESDDalitzPositronAfterEtaPCut;
126                 TH1F                                                                    **hESDDalitzElectronAfterPhi;
127                 TH1F                                                                    **hESDDalitzPositronAfterPhi;
128                 TH1F                                                                    **hESDDalitzElectronAfterNClsITS;
129                 TH1F                                                                    **hESDDalitzElectronAfterNClsITSPCut;
130                 TH1F                                                                    **hESDDalitzPositronAfterNClsITS;
131                 TH1F                                                                    **hESDDalitzPositronAfterNClsITSPCut;
132                 TH2F                                                                    **hESDDalitzElectronAfterNFindClsTPC;
133                 TH1F                                                                    **hESDDalitzElectronAfterNFindClsTPCPCut;
134                 TH2F                                                                    **hESDDalitzPositronAfterNFindClsTPC;
135                 TH1F                                                                    **hESDDalitzPositronAfterNFindClsTPCPCut;
136                 TH2F                                                                    **hESDDalitzElectronAfterNClsTPC;
137                 TH1F                                                                    **hESDDalitzElectronAfterNClsTPCPCut;
138                 TH2F                                                                    **hESDDalitzPositronAfterNClsTPC;
139                 TH1F                                                                    **hESDDalitzPositronAfterNClsTPCPCut;
140                 TH2F                                                                    **hESDDalitzElectronAfterNCrossedRowsTPC;
141                 TH1F                                                                    **hESDDalitzElectronAfterNCrossedRowsTPCPCut;
142                 TH2F                                                                    **hESDDalitzPositronAfterNCrossedRowsTPC;
143                 TH1F                                                                    **hESDDalitzPositronAfterNCrossedRowsTPCPCut;
144                 TH2F                                                                    **hESDDalitzPosEleAfterDCAxy;
145                 TH2F                                                                    **hESDDalitzPosEleAfterDCAz;
146                 TH2F                                                                    **hESDDalitzElectronAfterTPCdEdxVsP;
147                 TH2F                                                                    **hESDDalitzPositronAfterTPCdEdxVsP;
148                 TH2F                                                                    **hESDDalitzElectronAfterTPCdEdxSignalVsP;
149                 TH2F                                                                    **hESDDalitzPositronAfterTPCdEdxSignalVsP;
150                 TH2F                                                                    **hESDDalitzElectronAfterTPCdEdxVsEta;
151                 TH2F                                                                    **hESDDalitzPositronAfterTPCdEdxVsEta;
152                 TH2F                                                                    **hESDDalitzElectronAfterTPCdEdxVsPhi;
153                 TH2F                                                                    **hESDDalitzPositronAfterTPCdEdxVsPhi;
154                 TH1F                                                                    **hESDMotherPhi;
155                 TH2F                                                                    **hESDEposEnegPsiPairDPhi;
156                 TH2F                                                                    **hESDEposEnegInvMassPt;
157                 TH2F                                                                    **hESDEposEnegAfterMassCutInvMassPi0Pt;
158                 TH2F                                                                    **hESDEposEnegInvMassPi0Pt;
159                 TH2F                                                                    **hESDEposEnegLikeSignBackInvMassPt;
160                 TH2F                                                                    **hESDMotherInvMassPt;
161                 TH2F                                                                    **hESDPi0MotherInvMassPt;
162                 TH2F                                                                    **hESDPi0MotherDiffInvMassPt;
163                 TH2F                                                                    **hESDPi0MotherDiffLimInvMassPt;
164                 THnSparseF                                                              **sESDMotherInvMassPtZM;
165                 TH2F                                                                    **hESDMotherBackInvMassPt;
166                 THnSparseF                                                              **sESDMotherBackInvMassPtZM;
167                 TH1F                                                                    **hMCAllGammaPt;
168                 TH1F                                                                    **hMCConvGammaPt;
169                 TH1F                                                                    **hMCConvGammaRSPt;
170                 TH1F                                                                    **hMCAllPositronsPt;
171                 TH1F                                                                    **hMCAllElectronsPt;
172                 TH1F                                                                    **hMCConvGammaEta;
173                 TH1F                                                                    **hMCConvGammaR;
174                 TH1F                                                                    **hMCAllPositronsEta;
175                 TH1F                                                                    **hMCAllElectronsEta;
176                 TH1F                                                                    **hMCPi0DalitzGammaPt;
177                 TH1F                                                                    **hMCPi0DalitzElectronPt;
178                 TH1F                                                                    **hMCPi0DalitzPositronPt;
179                 TH1F                                                                    **hMCPi0Pt;
180                 TH1F                                                                    **hMCPi0GGPt;
181                 TH1F                                                                    **hMCEtaPt;
182                 TH1F                                                                    **hMCEtaGGPt;
183                 TH1F                                                                    **hMCPi0InAccPt;
184                 TH1F                                                                    **hMCEtaInAccPt;
185                 TH1F                                                                    **hMCChiCPt;
186                 TH1F                                                                    **hMCChiCInAccPt;
187                 TH2F                                                                    **hMCPi0EposEnegInvMassPt;
188                 TH2F                                                                    **hMCEtaEposEnegInvMassPt;
189                 TH2F                                                                    **hESDEposEnegTruePi0DalitzInvMassPt;
190                 TH1F                                                                    **hESDEposEnegTruePrimPi0DalitzInvMass;
191                 TH2F                                                                    **hESDEposEnegTruePi0DalitzPsiPairDPhi;
192                 TH2F                                                                    **hESDEposEnegTrueEtaDalitzInvMassPt;
193                 TH1F                                                                    **hESDEposEnegTruePrimEtaDalitzInvMass;
194                 TH2F                                                                    **hESDEposEnegTrueEtaDalitzPsiPairDPhi;
195                 TH2F                                                                    **hESDEposEnegTruePhotonInvMassPt;
196                 TH2F                                                                    **hESDEposEnegTrueInvMassPt;
197                 TH2F                                                                    **hESDEposEnegTruePhotonPsiPairDPhi;
198                 TH2F                                                                    **hESDEposEnegTruePhotonPsiPairDPhiPtCut;
199                 TH2F                                                                    **hESDEposEnegTrueJPsiInvMassPt;
200                 TH2F                                                                    **hESDTrueMotherChiCInvMassPt;
201                 TH2F                                                                    **hESDTrueMotherChiCDiffInvMassPt;
202                 TH2F                                                                    **hESDTrueMotherInvMassPt;
203                 TH2F                                                                    **hESDTrueMotherDalitzInvMassPt;
204                 TH2F                                                                    **hESDTrueMotherPi0GGInvMassPt;
205                 TH2F                                                                    **hESDTruePrimaryMotherPi0GGInvMassPt;
206                 TH2F                                                                    **hESDTrueSecondaryMotherPi0GGInvMassPt;
207                 TH2F                                                                    **hESDTruePrimaryMotherInvMassMCPt;
208                 TH2F                                                                    **hESDTruePrimaryMotherInvMassPt;
209                 TH2F                                                                    **hESDTruePrimaryMotherW0WeightingInvMassPt;
210                 TH2F                                                                    **hESDTruePrimaryPi0DalitzESDPtMCPt;
211                 TH2F                                                                    **hESDTrueSecondaryMotherInvMassPt;
212                 TH2F                                                                    **hESDTrueSecondaryMotherFromK0sInvMassPt;
213                 TH2F                                                                    **hESDTrueBckGGInvMassPt;
214                 TH2F                                                                    **hESDTrueBckContInvMassPt;
215                 TH2F                                                                    **hESDTrueMotherGGInvMassPt;
216                 TH1F                                                                    **hESDTrueConvGammaPt;
217                 TH1F                                                                    **hESDTrueConvGammaR;
218                 TH1F                                                                    **hESDTrueConvGammaRMC;
219                 TH1F                                                                    **hESDTruePositronPt;
220                 TH1F                                                                    **hESDTrueElectronPt;
221                 TH1F                                                                    **hESDTrueSecConvGammaPt;
222                 TH1F                                                                    **hESDTrueSecPositronPt;
223                 TH1F                                                                    **hESDTrueSecElectronPt;
224                 TH1F                                                                    **hESDTruePi0DalitzConvGammaPt;
225                 TH1F                                                                    **hESDTruePi0DalitzPositronPt;
226                 TH1F                                                                    **hESDTruePi0DalitzElectronPt;
227                 TH1F                                                                    **hESDTruePi0DalitzSecConvGammaPt;
228                 TH1F                                                                    **hESDTruePi0DalitzSecPositronPt;
229                 TH1F                                                                    **hESDTruePi0DalitzSecElectronPt;
230
231                 TH1I                                                                    **hNEvents;
232                 TH1I                                                                    **hNGoodESDTracks;
233                 TH2F                                                                    **hNGoodESDTracksVsNGoodGammas;
234                 TH2F                                                                    **hNGoodESDTracksVsNGoodVGammas;
235                 TH1I                                                                    **hNV0Tracks;
236                 TProfile                                                                **hEtaShift;
237                         
238                 TRandom3                                                                fRandom;
239                 Double_t                                                                *fUnsmearedPx;
240                 Double_t                                                                *fUnsmearedPy;
241                 Double_t                                                                *fUnsmearedPz;
242                 Double_t                                                                *fUnsmearedE;
243                 Double_t                                                                *fUnsmearedVPx;
244                 Double_t                                                                *fUnsmearedVPy;
245                 Double_t                                                                *fUnsmearedVPz;
246                 Double_t                                                                *fUnsmearedVE;
247                 
248                 Int_t                                                                   fnCuts;
249                 Int_t                                                                   fiCut;
250                 Int_t                                                                   fNumberOfESDTracks;
251                 Int_t                                                                   fNumberOfESDTrackskBoth;
252                 Int_t                                                                   fNVirtualGammas;
253                 Bool_t                                                                  fMoveParticleAccordingToVertex;
254                 Int_t                                                                   fIsHeavyIon;
255                 Bool_t                                                                  fDoMesonAnalysis;
256                 Bool_t                                                                  fDoChicAnalysis;
257                 Bool_t                                                                  fDoMesonQA;
258                 Bool_t                                                                  fSetProductionVertextoVGamma;
259                 Bool_t                                                                  fIsFromMBHeader;
260                 Bool_t                                                                  fIsMC;
261
262         private:
263                 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
264                 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
265
266                 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 4 );
267 };
268
269 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
270