]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
- fixed MC routines in CaloConv task, added corresponding addtasks
[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                         if (flag == 1 || flag ==2 ){
45                                 fIsHeavyIon = 1;    
46                         } else {
47                                 fIsHeavyIon = 0;    
48                         }
49                 }
50                 
51                 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
52                 void SetEventCutList(Int_t nCuts, TList *CutArray){
53                         fnCuts= nCuts;
54                         fCutEventArray = CutArray;
55                 }
56                 void SetConversionCutList(Int_t nCuts, TList *CutArray){
57                         fnCuts= nCuts;
58                         fCutGammaArray = CutArray;
59                 }
60                 void SetElectronCutList(TList *CutArray){
61                         fCutElectronArray = CutArray;
62                 }
63                 void SetMesonCutList(TList *CutArray){
64                         fCutMesonArray = CutArray;
65                 }
66                 void SetDoChicAnalysis(Bool_t flag){ fDoChicAnalysis = flag; }
67                 void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
68                 void SetProductionVertextoVGamma(Bool_t flag) { fSetProductionVertextoVGamma = flag; }
69         
70         private:
71                 void InitBack();
72                 void ProcessPhotonCandidates();
73                 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
74                 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
75                 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
76                 void ProcessElectronCandidates();
77                 void ProcessVirtualGammasCandidates();
78                 void ProcessMCParticles();
79                 void CountESDTracks();
80                 void CalculatePi0DalitzCandidates();
81                 void CalculateBackground();
82                 void UpdateEventByEventData();
83                 void FillElectronQAHistos(AliAODConversionPhoton *Vgamma) const;
84                 Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
85                 Bool_t IsDalitz(TParticle *fMCMother) const;
86                 Bool_t IsPi0DalitzDaughter( Int_t label ) const;
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                                                                   *fCutEventArray;
110                 TList                                                                   *fCutGammaArray;
111                 TList                                                                   *fCutElectronArray;
112                 TList                                                                   *fCutMesonArray;
113                 TList                                                                   **fGammasPool;
114                 AliConvEventCuts                                                *fEventCuts;
115                 AliConversionPhotonCuts                                 *fConversionCuts;
116                 TH1F                                                                    **hESDConvGammaPt;
117                 TH1F                                                                    **hESDConvGammaEta;
118                 TH2F                                                                    **hESDConvGammaZR;
119                 TH1F                                                                    **hESDDalitzElectronPt;
120                 TH1F                                                                    **hESDDalitzPositronPt;
121                 TH1F                                                                    **hESDDalitzElectronPhi;
122                 TH1F                                                                    **hESDDalitzPositronPhi;
123                 TH1F                                                                    **hESDDalitzElectronAfterPt;
124                 TH1F                                                                    **hESDDalitzPositronAfterPt;
125                 TH1F                                                                    **hESDDalitzElectronAfterEta;
126                 TH1F                                                                    **hESDDalitzElectronAfterEtaPCut;
127                 TH1F                                                                    **hESDDalitzPositronAfterEta;
128                 TH1F                                                                    **hESDDalitzPositronAfterEtaPCut;
129                 TH1F                                                                    **hESDDalitzElectronAfterPhi;
130                 TH1F                                                                    **hESDDalitzPositronAfterPhi;
131                 TH1F                                                                    **hESDDalitzElectronAfterNClsITS;
132                 TH1F                                                                    **hESDDalitzPositronAfterNClsITS;
133                 TH2F                                                                    **hESDDalitzElectronAfterNFindClsTPC;
134                 TH2F                                                                    **hESDDalitzPositronAfterNFindClsTPC;
135                 TH2F                                                                    **hESDDalitzElectronAfterNClsTPC;
136                 TH2F                                                                    **hESDDalitzPositronAfterNClsTPC;
137                 TH2F                                                                    **hESDDalitzElectronAfterNCrossedRowsTPC;
138                 TH2F                                                                    **hESDDalitzPositronAfterNCrossedRowsTPC;
139                 TH2F                                                                    **hESDDalitzPosEleAfterDCAxy;
140                 TH2F                                                                    **hESDDalitzPosEleAfterDCAz;
141                 TH2F                                                                    **hESDDalitzElectronAfterTPCdEdxVsP;
142                 TH2F                                                                    **hESDDalitzPositronAfterTPCdEdxVsP;
143                 TH2F                                                                    **hESDDalitzElectronAfterTPCdEdxSignalVsP;
144                 TH2F                                                                    **hESDDalitzPositronAfterTPCdEdxSignalVsP;
145                 TH2F                                                                    **hESDDalitzElectronAfterTPCdEdxVsEta;
146                 TH2F                                                                    **hESDDalitzPositronAfterTPCdEdxVsEta;
147                 TH2F                                                                    **hESDDalitzElectronAfterTPCdEdxVsPhi;
148                 TH2F                                                                    **hESDDalitzPositronAfterTPCdEdxVsPhi;
149                 TH1F                                                                    **hESDMotherPhi;
150                 TH2F                                                                    **hESDEposEnegPsiPairDPhi;
151                 TH2F                                                                    **hESDEposEnegInvMassPt;
152                 TH2F                                                                    **hESDEposEnegAfterMassCutInvMassPi0Pt;
153                 TH2F                                                                    **hESDEposEnegInvMassPi0Pt;
154                 TH2F                                                                    **hESDEposEnegLikeSignBackInvMassPt;
155                 TH2F                                                                    **hESDMotherInvMassPt;
156                 TH2F                                                                    **hESDPi0MotherInvMassPt;
157                 TH2F                                                                    **hESDPi0MotherDiffInvMassPt;
158                 TH2F                                                                    **hESDPi0MotherDiffLimInvMassPt;
159                 THnSparseF                                                              **sESDMotherInvMassPtZM;
160                 TH2F                                                                    **hESDMotherBackInvMassPt;
161                 THnSparseF                                                              **sESDMotherBackInvMassPtZM;
162                 TH1F                                                                    **hMCAllGammaPt;
163                 TH1F                                                                    **hMCConvGammaPt;
164                 TH1F                                                                    **hMCConvGammaRSPt;
165                 TH1F                                                                    **hMCAllPositronsPt;
166                 TH1F                                                                    **hMCAllElectronsPt;
167                 TH1F                                                                    **hMCConvGammaEta;
168                 TH1F                                                                    **hMCAllPositronsEta;
169                 TH1F                                                                    **hMCAllElectronsEta;
170                 TH1F                                                                    **hMCPi0DalitzGammaPt;
171                 TH1F                                                                    **hMCPi0DalitzElectronPt;
172                 TH1F                                                                    **hMCPi0DalitzPositronPt;
173                 TH1F                                                                    **hMCPi0Pt;
174                 TH1F                                                                    **hMCPi0GGPt;
175                 TH1F                                                                    **hMCEtaPt;
176                 TH1F                                                                    **hMCEtaGGPt;
177                 TH1F                                                                    **hMCPi0InAccPt;
178                 TH1F                                                                    **hMCEtaInAccPt;
179                 TH1F                                                                    **hMCChiCPt;
180                 TH1F                                                                    **hMCChiCInAccPt;
181                 TH2F                                                                    **hMCPi0EposEnegInvMassPt;
182                 TH2F                                                                    **hMCEtaEposEnegInvMassPt;
183                 TH2F                                                                    **hESDEposEnegTruePi0DalitzInvMassPt;
184                 TH1F                                                                    **hESDEposEnegTruePrimPi0DalitzInvMass;
185                 TH2F                                                                    **hESDEposEnegTruePi0DalitzPsiPairDPhi;
186                 TH2F                                                                    **hESDEposEnegTrueEtaDalitzInvMassPt;
187                 TH1F                                                                    **hESDEposEnegTruePrimEtaDalitzInvMass;
188                 TH2F                                                                    **hESDEposEnegTrueEtaDalitzPsiPairDPhi;
189                 TH2F                                                                    **hESDEposEnegTruePhotonInvMassPt;
190                 TH2F                                                                    **hESDEposEnegTrueInvMassPt;
191                 TH2F                                                                    **hESDEposEnegTruePhotonPsiPairDPhi;
192                 TH2F                                                                    **hESDEposEnegTruePhotonPsiPairDPhiPtCut;
193                 TH2F                                                                    **hESDEposEnegTrueJPsiInvMassPt;
194                 TH2F                                                                    **hESDTrueMotherChiCInvMassPt;
195                 TH2F                                                                    **hESDTrueMotherChiCDiffInvMassPt;
196                 TH2F                                                                    **hESDTrueMotherInvMassPt;
197                 TH2F                                                                    **hESDTrueMotherDalitzInvMassPt;
198                 TH2F                                                                    **hESDTrueMotherPi0GGInvMassPt;
199                 TH2F                                                                    **hESDTruePrimaryMotherPi0GGInvMassPt;
200                 TH2F                                                                    **hESDTrueSecondaryMotherPi0GGInvMassPt;
201                 TH2F                                                                    **hESDTruePrimaryMotherInvMassMCPt;
202                 TH2F                                                                    **hESDTruePrimaryMotherInvMassPt;
203                 TH2F                                                                    **hESDTruePrimaryMotherW0WeightingInvMassPt;
204                 TH2F                                                                    **hESDTruePrimaryPi0DalitzESDPtMCPt;
205                 TH2F                                                                    **hESDTrueSecondaryMotherInvMassPt;
206                 TH2F                                                                    **hESDTrueSecondaryMotherFromK0sInvMassPt;
207                 TH2F                                                                    **hESDTrueBckGGInvMassPt;
208                 TH2F                                                                    **hESDTrueBckContInvMassPt;
209                 TH2F                                                                    **hESDTrueMotherGGInvMassPt;
210                 TH1F                                                                    **hESDTrueConvGammaPt;
211                 TH1F                                                                    **hESDTruePositronPt;
212                 TH1F                                                                    **hESDTrueElectronPt;
213                 TH1F                                                                    **hESDTrueSecConvGammaPt;
214                 TH1F                                                                    **hESDTrueSecPositronPt;
215                 TH1F                                                                    **hESDTrueSecElectronPt;
216                 TH1F                                                                    **hESDTruePi0DalitzConvGammaPt;
217                 TH1F                                                                    **hESDTruePi0DalitzPositronPt;
218                 TH1F                                                                    **hESDTruePi0DalitzElectronPt;
219                 TH1F                                                                    **hESDTruePi0DalitzSecConvGammaPt;
220                 TH1F                                                                    **hESDTruePi0DalitzSecPositronPt;
221                 TH1F                                                                    **hESDTruePi0DalitzSecElectronPt;
222
223                 TH1I                                                                    **hNEvents;
224                 TH1I                                                                    **hNGoodESDTracks;
225                 TH2F                                                                    **hNGoodESDTracksVsNGoodGammas;
226                 TH2F                                                                    **hNGoodESDTracksVsNGoodVGammas;
227                 TH1I                                                                    **hNV0Tracks;
228                 TProfile                                                                **hEtaShift;
229                         
230                 TRandom3                                                                fRandom;
231                 Double_t                                                                *fUnsmearedPx;
232                 Double_t                                                                *fUnsmearedPy;
233                 Double_t                                                                *fUnsmearedPz;
234                 Double_t                                                                *fUnsmearedE;
235                 Double_t                                                                *fUnsmearedVPx;
236                 Double_t                                                                *fUnsmearedVPy;
237                 Double_t                                                                *fUnsmearedVPz;
238                 Double_t                                                                *fUnsmearedVE;
239                 
240                 Int_t                                                                   fnCuts;
241                 Int_t                                                                   fiCut;
242                 Int_t                                                                   fNumberOfESDTracks;
243                 Int_t                                                                   fNumberOfESDTrackskBoth;
244                 Int_t                                                                   fNVirtualGammas;
245                 Bool_t                                                                  fMoveParticleAccordingToVertex;
246                 Bool_t                                                                  fIsHeavyIon;
247                 Bool_t                                                                  fDoMesonAnalysis;
248                 Bool_t                                                                  fDoChicAnalysis;
249                 Bool_t                                                                  fDoMesonQA;
250                 Bool_t                                                                  fSetProductionVertextoVGamma;
251                 Bool_t                                                                  fIsFromMBHeader;
252                 Bool_t                                                                  fIsMC;
253
254         private:
255                 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
256                 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
257
258                 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 4 );
259 };
260
261 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
262