]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
- changes to the Material budget, resolution and QA code
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskGammaConvDalitzV1.h
CommitLineData
2bb2434e 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"
8a52eed5 15#include "TProfile2D.h"
2bb2434e 16
17class AliESDInputHandler;
18class AliMCEventHandler;
19class AliESDEvent;
20class AliESDtrack;
21class AliESDtrackCuts;
22class AliESDpidCuts;
23class AliV0Reader;
24class AliGammaConversionHistograms;
25class AliTriggerAnalysis;
26
27class 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();
ae947965 37 virtual Bool_t Notify();
2bb2434e 38 virtual void Terminate(const Option_t *);
39
40
41
42
ae947965 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 }
fcc79cf5 64 void SetDoChicAnalysis(Bool_t flag){ fDoChicAnalysis = flag; }
65 void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
2d49ea4c 66 void SetProductionVertextoVGamma(Bool_t flag) { fSetProductionVertextoVGamma = flag; }
ae947965 67
2bb2434e 68
69 private:
70
2bb2434e 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();
30b9a400 77 void ProcessVirtualGammasCandidates();
2bb2434e 78 void ProcessMCParticles();
79 void CountESDTracks();
80 void CalculatePi0DalitzCandidates();
81 void CalculateBackground();
82 void UpdateEventByEventData();
30b9a400 83 void FillElectronQAHistos(AliAODConversionMother *Pi0Candidate,AliAODConversionPhoton *Vgamma) const;
a280ac15 84 Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
ae947965 85 Bool_t IsDalitz(TParticle *fMCMother) const;
ccfa8c0d 86 Bool_t IsPi0DalitzDaughter( Int_t label ) const;
2bb2434e 87
88
89
90 AliV0ReaderV1 *fV0Reader;
91 AliDalitzElectronSelector* fElecSelector;
92 AliGammaConversionAODBGHandler **fBGHandler;
93 AliESDEvent *fESDEvent;
94 AliMCEvent *fMCEvent;
95 AliStack *fMCStack;
96 TList **fCutFolder;
97 TList **fESDList;
98 TList **fBackList;
fcc79cf5 99 TList **fMotherList;
2bb2434e 100 TList **fTrueList;
101 TList **fMCList;
d9d6352b 102 TList **fQAFolder;
2bb2434e 103 TList *fOutputContainer;
104 TClonesArray *fReaderGammas;
105 vector<Int_t> fSelectorElectronIndex;
106 vector<Int_t> fSelectorPositronIndex;
107 TList *fGoodGammas;
108 TList *fGoodVirtualGammas;
109 TList *fGoodElectrons;
110 TList *fGoodPositrons;
111 TList *fCutGammaArray;
112 TList *fCutElectronArray;
113 TList *fCutMesonArray;
114 TList **fGammasPool;
115 AliConversionCuts *fConversionCuts;
116 TH1F **hESDConvGammaPt;
2279d237 117 TH1F **hESDConvGammaEta;
118 TH2F **hESDConvGammaZR;
2bb2434e 119 TH1F **hESDDalitzElectronPt;
120 TH1F **hESDDalitzPositronPt;
4803eb1f 121 TH1F **hESDDalitzElectronPhi;
122 TH1F **hESDDalitzPositronPhi;
123 TH1F **hESDDalitzElectronAfterPt;
124 TH1F **hESDDalitzPositronAfterPt;
2279d237 125 TH1F **hESDDalitzElectronAfterEta;
126 TH1F **hESDDalitzPositronAfterEta;
4803eb1f 127 TH1F **hESDDalitzElectronAfterPhi;
128 TH1F **hESDDalitzPositronAfterPhi;
d9d6352b 129 TH1F **hESDDalitzElectronAfterNClsITS;
130 TH1F **hESDDalitzPositronAfterNClsITS;
4803eb1f 131 TH2F **hESDDalitzElectronAfterNFindClsTPC;
132 TH2F **hESDDalitzPositronAfterNFindClsTPC;
d9d6352b 133 TH2F **hESDDalitzElectronAfterNClsTPC;
134 TH2F **hESDDalitzPositronAfterNClsTPC;
f47b2bb5 135 TH2F **hESDDalitzElectronAfterNCrossedRowsTPC;
136 TH2F **hESDDalitzPositronAfterNCrossedRowsTPC;
4803eb1f 137 TH2F **hESDDalitzPosEleAfterDCAxy;
138 TH2F **hESDDalitzPosEleAfterDCAz;
d9d6352b 139 TH2F **hESDDalitzElectronAfterTPCdEdxVsP;
140 TH2F **hESDDalitzPositronAfterTPCdEdxVsP;
141 TH2F **hESDDalitzElectronAfterTPCdEdxSignalVsP;
142 TH2F **hESDDalitzPositronAfterTPCdEdxSignalVsP;
143 TH2F **hESDDalitzElectronAfterTPCdEdxVsEta;
144 TH2F **hESDDalitzPositronAfterTPCdEdxVsEta;
145 TH2F **hESDDalitzElectronAfterTPCdEdxVsPhi;
146 TH2F **hESDDalitzPositronAfterTPCdEdxVsPhi;
4803eb1f 147 TH1F **hESDMotherPhi;
2bb2434e 148 TH2F **hESDEposEnegPsiPairDPhi;
a280ac15 149 TH2F **hESDEposEnegInvMassPt;
30b9a400 150 TH2F **hESDEposEnegAfterMassCutInvMassPi0Pt;
0a2b2b4b 151 TH2F **hESDEposEnegLikeSignBackInvMassPt;
2bb2434e 152 TH2F **hESDMotherInvMassPt;
a280ac15 153 TH2F **hESDPi0MotherInvMassPt;
154 TH2F **hESDPi0MotherDiffInvMassPt;
ae947965 155 TH2F **hESDPi0MotherDiffLimInvMassPt;
2bb2434e 156 THnSparseF **sESDMotherInvMassPtZM;
157 TH2F **hESDMotherBackInvMassPt;
158 THnSparseF **sESDMotherBackInvMassPtZM;
ccfa8c0d 159 TH1F **hMCAllGammaPt;
ae947965 160 TH1F **hMCConvGammaPt;
161 TH1F **hMCConvGammaRSPt;
ccfa8c0d 162 TH1F **hMCAllPositronsPt;
163 TH1F **hMCAllElectronsPt;
2d49ea4c 164 TH1F **hMCConvGammaEta;
165 TH1F **hMCAllPositronsEta;
166 TH1F **hMCAllElectronsEta;
ccfa8c0d 167 TH1F **hMCPi0DalitzGammaPt;
168 TH1F **hMCPi0DalitzElectronPt;
169 TH1F **hMCPi0DalitzPositronPt;
2bb2434e 170 TH1F **hMCPi0Pt;
a280ac15 171 TH1F **hMCPi0GGPt;
2bb2434e 172 TH1F **hMCEtaPt;
a280ac15 173 TH1F **hMCEtaGGPt;
2bb2434e 174 TH1F **hMCPi0InAccPt;
175 TH1F **hMCEtaInAccPt;
0f8c33c1 176 TH1F **hMCChiCPt;
177 TH1F **hMCChiCInAccPt;
f4d5bd23 178 TH2F **hMCPi0EposEnegInvMassPt;
179 TH2F **hMCEtaEposEnegInvMassPt;
ccfa8c0d 180 TH2F **hESDEposEnegTruePi0DalitzInvMassPt;
2d49ea4c 181 TH1F **hESDEposEnegTruePrimPi0DalitzInvMass;
a072aeaa 182 TH2F **hESDEposEnegTruePi0DalitzPsiPairDPhi;
ccfa8c0d 183 TH2F **hESDEposEnegTrueEtaDalitzInvMassPt;
2d49ea4c 184 TH1F **hESDEposEnegTruePrimEtaDalitzInvMass;
a072aeaa 185 TH2F **hESDEposEnegTrueEtaDalitzPsiPairDPhi;
ccfa8c0d 186 TH2F **hESDEposEnegTruePhotonInvMassPt;
f4d5bd23 187 TH2F **hESDEposEnegTrueInvMassPt;
a072aeaa 188 TH2F **hESDEposEnegTruePhotonPsiPairDPhi;
30b9a400 189 TH2F **hESDEposEnegTruePhotonPsiPairDPhiPtCut;
0f8c33c1 190 TH2F **hESDEposEnegTrueJPsiInvMassPt;
191 TH2F **hESDTrueMotherChiCInvMassPt;
ae947965 192 TH2F **hESDTrueMotherChiCDiffInvMassPt;
2bb2434e 193 TH2F **hESDTrueMotherInvMassPt;
4803eb1f 194 TH2F **hESDTrueMotherDalitzInvMassPt;
2bb2434e 195 TH2F **hESDTrueMotherPi0GGInvMassPt;
86eaf9ae 196 TH2F **hESDTruePrimaryMotherPi0GGInvMassPt;
197 TH2F **hESDTrueSecondaryMotherPi0GGInvMassPt;
2bb2434e 198 TH2F **hESDTruePrimaryMotherInvMassMCPt;
86eaf9ae 199 TH2F **hESDTruePrimaryMotherInvMassPt;
200 TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt;
2bb2434e 201 TH2F **hESDTruePrimaryPi0DalitzESDPtMCPt;
202 TH2F **hESDTrueSecondaryMotherInvMassPt;
203 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
204 TH2F **hESDTrueBckGGInvMassPt;
205 TH2F **hESDTrueBckContInvMassPt;
206 TH2F **hESDTrueMotherGGInvMassPt;
207 TH1F **hESDTrueConvGammaPt;
ccfa8c0d 208 TH1F **hESDTruePositronPt;
209 TH1F **hESDTrueElectronPt;
ae947965 210 TH1F **hESDTrueSecConvGammaPt;
211 TH1F **hESDTrueSecPositronPt;
212 TH1F **hESDTrueSecElectronPt;
ccfa8c0d 213 TH1F **hESDTruePi0DalitzConvGammaPt;
214 TH1F **hESDTruePi0DalitzPositronPt;
215 TH1F **hESDTruePi0DalitzElectronPt;
ae947965 216 TH1F **hESDTruePi0DalitzSecConvGammaPt;
217 TH1F **hESDTruePi0DalitzSecPositronPt;
218 TH1F **hESDTruePi0DalitzSecElectronPt;
ccfa8c0d 219 //if(fDoMesonAnalysis){
220
221
2bb2434e 222 TH1I **hNEvents;
223 TH1I **hNGoodESDTracks;
58326f11 224 TH2F **hNGoodESDTracksVsNGoodGammas;
225 TH2F **hNGoodESDTracksVsNGoodVGammas;
7b3733f6 226 TH1I **hNV0Tracks;
8a52eed5 227 TProfile **hEtaShift;
2bb2434e 228
229 TRandom3 fRandom;
230 Double_t *fUnsmearedPx;
231 Double_t *fUnsmearedPy;
232 Double_t *fUnsmearedPz;
233 Double_t *fUnsmearedE;
30b9a400 234 Double_t *fUnsmearedVPx;
235 Double_t *fUnsmearedVPy;
236 Double_t *fUnsmearedVPz;
237 Double_t *fUnsmearedVE;
238
239
2bb2434e 240 Int_t fnCuts;
241 Int_t fiCut;
242 Int_t fNumberOfESDTracks;
58326f11 243 Int_t fNumberOfESDTrackskBoth;
2bb2434e 244 Bool_t fMoveParticleAccordingToVertex;
245 Bool_t fIsHeavyIon;
246 Bool_t fDoMesonAnalysis;
fcc79cf5 247 Bool_t fDoChicAnalysis;
248 Bool_t fDoMesonQA;
2d49ea4c 249 Bool_t fSetProductionVertextoVGamma;
ae947965 250 Bool_t fIsFromMBHeader;
2d49ea4c 251 Bool_t fIsMC;
ae947965 252
2bb2434e 253 private:
254 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
255 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
256
ae947965 257 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 3 );
2bb2434e 258};
259
260#endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
261