]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
added new conversion task (gamma, gamma & dalitz task) + corresponding dependencies
[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 "AliConversionMesonCuts.h"
14 #include "AliGammaConversionAODBGHandler.h"
15
16 class AliESDInputHandler;
17 class AliMCEventHandler;
18 class AliESDEvent;
19 class AliESDtrack;
20 class AliESDtrackCuts;
21 class AliESDpidCuts;
22 class AliV0Reader;
23 class AliGammaConversionHistograms;
24 class AliTriggerAnalysis;
25
26 class 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
57                 void AddTaskContainers();
58                 void InitBack();
59                 void ProcessPhotonCandidates();
60                 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
61                 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
62                 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
63                 void ProcessElectronCandidates();
64                 void ProcessMCParticles();
65                 void CountESDTracks();
66                 void CalculatePi0DalitzCandidates();
67                 void CalculateBackground();
68                 void UpdateEventByEventData();
69                 
70                 
71
72     AliV0ReaderV1 *fV0Reader;
73     AliDalitzElectronSelector* fElecSelector;
74     AliGammaConversionAODBGHandler **fBGHandler;
75     AliESDEvent *fESDEvent;
76     AliMCEvent *fMCEvent;
77     AliStack *fMCStack;
78     TList **fCutFolder;
79     TList **fESDList;
80     TList **fBackList;
81     TList **fTrueList;
82     TList **fMCList;
83     TList *fOutputContainer;
84     TClonesArray *fReaderGammas;
85     vector<Int_t> fSelectorElectronIndex;
86     vector<Int_t> fSelectorPositronIndex;
87     TList *fGoodGammas;
88     TList *fGoodVirtualGammas;
89     TList *fGoodElectrons;
90     TList *fGoodPositrons;
91     TList *fCutGammaArray;
92     TList *fCutElectronArray;
93     TList *fCutMesonArray;
94     TList **fGammasPool;
95     AliConversionCuts *fConversionCuts;
96     TH1F **hESDConvGammaPt;
97     TH1F **hESDDalitzElectronPt;
98     TH1F **hESDDalitzPositronPt;
99     TH2F **hESDEposEnegPsiPairDPhi;
100     TH2F **hESDMotherInvMassPt;
101     THnSparseF **sESDMotherInvMassPtZM;
102     TH2F **hESDMotherBackInvMassPt;
103     THnSparseF **sESDMotherBackInvMassPtZM;
104     TH1F **hMCPi0Pt;
105     TH1F **hMCEtaPt;
106     TH1F **hMCPi0InAccPt;
107     TH1F **hMCEtaInAccPt;
108     TH2F **hESDTrueMotherInvMassPt;
109     TH2F **hESDTrueMotherPi0GGInvMassPt;
110     TH2F **hESDTruePrimaryMotherInvMassMCPt;
111     TH2F **hESDTruePrimaryPi0DalitzESDPtMCPt;
112     TH2F **hESDTrueSecondaryMotherInvMassPt;
113     TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
114     TH2F **hESDTrueBckGGInvMassPt;
115     TH2F **hESDTrueBckContInvMassPt;
116     TH2F **hESDTrueMotherGGInvMassPt;
117     TH1F **hESDTrueConvGammaPt;
118     TH1I **hNEvents;
119     TH1I **hNGoodESDTracks;
120         
121     TRandom3 fRandom;
122     Double_t *fUnsmearedPx;
123     Double_t *fUnsmearedPy;
124     Double_t *fUnsmearedPz;
125     Double_t *fUnsmearedE;
126     Int_t fnCuts;
127     Int_t fiCut;
128     Int_t fNumberOfESDTracks;
129     Bool_t fMoveParticleAccordingToVertex;
130     Bool_t fIsHeavyIon;
131     Bool_t fDoMesonAnalysis;
132    
133         private:
134                 AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
135                 AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
136
137                 ClassDef( AliAnalysisTaskGammaConvDalitzV1, 2 );
138 };
139
140 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
141