]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
Updates for bunch crossing pileup, event selection, histogramming.
[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; }
ae947965 66
2bb2434e 67
68 private:
69
2bb2434e 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();
a280ac15 81 Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
ae947965 82 Bool_t IsDalitz(TParticle *fMCMother) const;
ccfa8c0d 83 Bool_t IsPi0DalitzDaughter( Int_t label ) const;
2bb2434e 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;
fcc79cf5 96 TList **fMotherList;
2bb2434e 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;
4803eb1f 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;
2bb2434e 128 TH2F **hESDEposEnegPsiPairDPhi;
a280ac15 129 TH2F **hESDEposEnegInvMassPt;
0a2b2b4b 130 TH2F **hESDEposEnegLikeSignBackInvMassPt;
2bb2434e 131 TH2F **hESDMotherInvMassPt;
a280ac15 132 TH2F **hESDPi0MotherInvMassPt;
133 TH2F **hESDPi0MotherDiffInvMassPt;
ae947965 134 TH2F **hESDPi0MotherDiffLimInvMassPt;
2bb2434e 135 THnSparseF **sESDMotherInvMassPtZM;
136 TH2F **hESDMotherBackInvMassPt;
137 THnSparseF **sESDMotherBackInvMassPtZM;
ccfa8c0d 138 TH1F **hMCAllGammaPt;
ae947965 139 TH1F **hMCConvGammaPt;
140 TH1F **hMCConvGammaRSPt;
ccfa8c0d 141 TH1F **hMCAllPositronsPt;
142 TH1F **hMCAllElectronsPt;
143 TH1F **hMCPi0DalitzGammaPt;
144 TH1F **hMCPi0DalitzElectronPt;
145 TH1F **hMCPi0DalitzPositronPt;
2bb2434e 146 TH1F **hMCPi0Pt;
a280ac15 147 TH1F **hMCPi0GGPt;
2bb2434e 148 TH1F **hMCEtaPt;
a280ac15 149 TH1F **hMCEtaGGPt;
2bb2434e 150 TH1F **hMCPi0InAccPt;
151 TH1F **hMCEtaInAccPt;
0f8c33c1 152 TH1F **hMCChiCPt;
153 TH1F **hMCChiCInAccPt;
ccfa8c0d 154 TH2F **hESDEposEnegTruePi0DalitzInvMassPt;
155 TH2F **hESDEposEnegTrueEtaDalitzInvMassPt;
156 TH2F **hESDEposEnegTruePhotonInvMassPt;
0f8c33c1 157 TH2F **hESDEposEnegTrueJPsiInvMassPt;
158 TH2F **hESDTrueMotherChiCInvMassPt;
ae947965 159 TH2F **hESDTrueMotherChiCDiffInvMassPt;
2bb2434e 160 TH2F **hESDTrueMotherInvMassPt;
4803eb1f 161 TH2F **hESDTrueMotherDalitzInvMassPt;
2bb2434e 162 TH2F **hESDTrueMotherPi0GGInvMassPt;
163 TH2F **hESDTruePrimaryMotherInvMassMCPt;
164 TH2F **hESDTruePrimaryPi0DalitzESDPtMCPt;
165 TH2F **hESDTrueSecondaryMotherInvMassPt;
166 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
167 TH2F **hESDTrueBckGGInvMassPt;
168 TH2F **hESDTrueBckContInvMassPt;
169 TH2F **hESDTrueMotherGGInvMassPt;
170 TH1F **hESDTrueConvGammaPt;
ccfa8c0d 171 TH1F **hESDTruePositronPt;
172 TH1F **hESDTrueElectronPt;
ae947965 173 TH1F **hESDTrueSecConvGammaPt;
174 TH1F **hESDTrueSecPositronPt;
175 TH1F **hESDTrueSecElectronPt;
ccfa8c0d 176 TH1F **hESDTruePi0DalitzConvGammaPt;
177 TH1F **hESDTruePi0DalitzPositronPt;
178 TH1F **hESDTruePi0DalitzElectronPt;
ae947965 179 TH1F **hESDTruePi0DalitzSecConvGammaPt;
180 TH1F **hESDTruePi0DalitzSecPositronPt;
181 TH1F **hESDTruePi0DalitzSecElectronPt;
ccfa8c0d 182 //if(fDoMesonAnalysis){
183
184
2bb2434e 185 TH1I **hNEvents;
186 TH1I **hNGoodESDTracks;
8a52eed5 187 TProfile **hEtaShift;
2bb2434e 188
189 TRandom3 fRandom;
190 Double_t *fUnsmearedPx;
191 Double_t *fUnsmearedPy;
192 Double_t *fUnsmearedPz;
193 Double_t *fUnsmearedE;
194 Int_t fnCuts;
195 Int_t fiCut;
196 Int_t fNumberOfESDTracks;
197 Bool_t fMoveParticleAccordingToVertex;
198 Bool_t fIsHeavyIon;
199 Bool_t fDoMesonAnalysis;
fcc79cf5 200 Bool_t fDoChicAnalysis;
201 Bool_t fDoMesonQA;
ae947965 202 Bool_t fIsFromMBHeader;
203 Bool_t fIsMC;
204
2bb2434e 205 private:
206 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
207 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
208
ae947965 209 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 3 );
2bb2434e 210};
211
212#endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
213