]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
Fixed TOF cut implementation
[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"
15
16class AliESDInputHandler;
17class AliMCEventHandler;
18class AliESDEvent;
19class AliESDtrack;
20class AliESDtrackCuts;
21class AliESDpidCuts;
22class AliV0Reader;
23class AliGammaConversionHistograms;
24class AliTriggerAnalysis;
25
26class 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 void Terminate(const Option_t *);
37
38
39
40
41 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
42 void SetIsHeavyIon(Bool_t flag){fIsHeavyIon = flag;}
43 void SetConversionCutList(Int_t nCuts, TList *CutArray){
44 fnCuts= nCuts;
45 fCutGammaArray = CutArray;
46 }
47 void SetElectronCutList(TList *CutArray){
48 fCutElectronArray = CutArray;
49 }
50 void SetMesonCutList(TList *CutArray){
51 fCutMesonArray = CutArray;
52 }
53
54
55 private:
56
2bb2434e 57 void InitBack();
58 void ProcessPhotonCandidates();
59 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
60 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
61 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
62 void ProcessElectronCandidates();
63 void ProcessMCParticles();
64 void CountESDTracks();
65 void CalculatePi0DalitzCandidates();
66 void CalculateBackground();
67 void UpdateEventByEventData();
a280ac15 68 Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
ccfa8c0d 69 Bool_t IsDalitz(TParticle *fMCMother,Int_t &labelgamma, Int_t &labelelectron,Int_t &labelpositron);
70 Bool_t IsPi0DalitzDaughter( Int_t label ) const;
2bb2434e 71
72
73
74 AliV0ReaderV1 *fV0Reader;
75 AliDalitzElectronSelector* fElecSelector;
76 AliGammaConversionAODBGHandler **fBGHandler;
77 AliESDEvent *fESDEvent;
78 AliMCEvent *fMCEvent;
79 AliStack *fMCStack;
80 TList **fCutFolder;
81 TList **fESDList;
82 TList **fBackList;
83 TList **fTrueList;
84 TList **fMCList;
85 TList *fOutputContainer;
86 TClonesArray *fReaderGammas;
87 vector<Int_t> fSelectorElectronIndex;
88 vector<Int_t> fSelectorPositronIndex;
89 TList *fGoodGammas;
90 TList *fGoodVirtualGammas;
91 TList *fGoodElectrons;
92 TList *fGoodPositrons;
93 TList *fCutGammaArray;
94 TList *fCutElectronArray;
95 TList *fCutMesonArray;
96 TList **fGammasPool;
97 AliConversionCuts *fConversionCuts;
98 TH1F **hESDConvGammaPt;
99 TH1F **hESDDalitzElectronPt;
100 TH1F **hESDDalitzPositronPt;
101 TH2F **hESDEposEnegPsiPairDPhi;
a280ac15 102 TH2F **hESDEposEnegInvMassPt;
0a2b2b4b 103 TH2F **hESDEposEnegLikeSignBackInvMassPt;
2bb2434e 104 TH2F **hESDMotherInvMassPt;
a280ac15 105 TH2F **hESDPi0MotherInvMassPt;
106 TH2F **hESDPi0MotherDiffInvMassPt;
2bb2434e 107 THnSparseF **sESDMotherInvMassPtZM;
108 TH2F **hESDMotherBackInvMassPt;
109 THnSparseF **sESDMotherBackInvMassPtZM;
ccfa8c0d 110 TH1F **hMCAllGammaPt;
111 TH1F **hMCAllPositronsPt;
112 TH1F **hMCAllElectronsPt;
113 TH1F **hMCPi0DalitzGammaPt;
114 TH1F **hMCPi0DalitzElectronPt;
115 TH1F **hMCPi0DalitzPositronPt;
2bb2434e 116 TH1F **hMCPi0Pt;
a280ac15 117 TH1F **hMCPi0GGPt;
2bb2434e 118 TH1F **hMCEtaPt;
a280ac15 119 TH1F **hMCEtaGGPt;
2bb2434e 120 TH1F **hMCPi0InAccPt;
121 TH1F **hMCEtaInAccPt;
0f8c33c1 122 TH1F **hMCChiCPt;
123 TH1F **hMCChiCInAccPt;
ccfa8c0d 124 TH2F **hESDEposEnegTruePi0DalitzInvMassPt;
125 TH2F **hESDEposEnegTrueEtaDalitzInvMassPt;
126 TH2F **hESDEposEnegTruePhotonInvMassPt;
0f8c33c1 127 TH2F **hESDEposEnegTrueJPsiInvMassPt;
128 TH2F **hESDTrueMotherChiCInvMassPt;
2bb2434e 129 TH2F **hESDTrueMotherInvMassPt;
130 TH2F **hESDTrueMotherPi0GGInvMassPt;
131 TH2F **hESDTruePrimaryMotherInvMassMCPt;
132 TH2F **hESDTruePrimaryPi0DalitzESDPtMCPt;
133 TH2F **hESDTrueSecondaryMotherInvMassPt;
134 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
135 TH2F **hESDTrueBckGGInvMassPt;
136 TH2F **hESDTrueBckContInvMassPt;
137 TH2F **hESDTrueMotherGGInvMassPt;
138 TH1F **hESDTrueConvGammaPt;
ccfa8c0d 139 TH1F **hESDTruePositronPt;
140 TH1F **hESDTrueElectronPt;
141 TH1F **hESDTruePi0DalitzConvGammaPt;
142 TH1F **hESDTruePi0DalitzPositronPt;
143 TH1F **hESDTruePi0DalitzElectronPt;
144 //if(fDoMesonAnalysis){
145
146
2bb2434e 147 TH1I **hNEvents;
148 TH1I **hNGoodESDTracks;
149
150 TRandom3 fRandom;
151 Double_t *fUnsmearedPx;
152 Double_t *fUnsmearedPy;
153 Double_t *fUnsmearedPz;
154 Double_t *fUnsmearedE;
155 Int_t fnCuts;
156 Int_t fiCut;
157 Int_t fNumberOfESDTracks;
158 Bool_t fMoveParticleAccordingToVertex;
159 Bool_t fIsHeavyIon;
160 Bool_t fDoMesonAnalysis;
161
162 private:
163 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
164 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
165
166 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 2 );
167};
168
169#endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
170