]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskEtaToPiPlPiMiGamma.h
97b7c19aeede31943df3fe214a813c4907eda39a
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskEtaToPiPlPiMiGamma.h
1 #ifndef ALIANALYSISTASKHEAVYMESONTHREEBODY_H
2 #define ALIANALYSISTASKHEAVYMESONTHREEBODY_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 "AliPrimaryPionSelector.h"
13 #include "AliConversionMesonCuts.h"
14 #include "AliGammaConversionAODBGHandler.h"
15 #include "TProfile2D.h"
16
17 class AliESDInputHandler;
18 class AliMCEventHandler;
19 class AliESDEvent;
20 class AliESDtrack;
21 class AliESDtrackCuts;
22 class AliESDpidCuts;
23 class AliV0Reader;
24 class AliTriggerAnalysis;
25
26 class AliAnalysisTaskEtaToPiPlPiMiGamma: public AliAnalysisTaskSE
27 {
28         public:
29
30                 AliAnalysisTaskEtaToPiPlPiMiGamma();
31                 AliAnalysisTaskEtaToPiPlPiMiGamma( const char* name );
32                 virtual ~AliAnalysisTaskEtaToPiPlPiMiGamma();
33
34                 virtual void UserExec(Option_t *);
35                 virtual void UserCreateOutputObjects();
36                 virtual Bool_t Notify();
37                 virtual void Terminate(const Option_t *);
38
39                         
40                 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
41                         
42                 void SetIsHeavyIon(Int_t flag){
43                         if (flag == 1 || flag ==2 ){
44                                 fIsHeavyIon = 1;    
45                         } else {
46                                 fIsHeavyIon = 0;    
47                         }
48                 }
49                 
50                 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
51                 void SetConversionCutList(Int_t nCuts, TList *CutArray){
52                         fnCuts= nCuts;
53                         fGammaCutArray = CutArray;
54                 }
55                 void SetPionCutList(TList *CutArray){
56                         fPionCutArray = CutArray;
57                 }
58                 void SetMesonCutList(TList *CutArray){
59                         fMesonCutArray = CutArray;
60                 }
61                 void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
62         
63
64         private:
65
66                 void InitBack();
67                 void ProcessPhotonCandidates();
68                 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
69                 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
70                 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
71         void ProcessPionCandidates();
72                 void ProcessMCParticles();
73                 void CalculateMesonCandidates();
74         void CalculateBackground();
75                 void UpdateEventByEventData();
76         
77                 Bool_t IsPiPlPiMiGammaDecay(TParticle *fMCMother) const;
78                 Bool_t IsEtaPiPlPiMiGammaDaughter( Int_t label ) const;
79                 
80                 
81
82                 AliV0ReaderV1 *fV0Reader;
83                 AliPrimaryPionSelector* fPionSelector;
84                 AliGammaConversionAODBGHandler **fBGHandler;
85                 AliESDEvent *fESDEvent;
86                 AliMCEvent *fMCEvent;
87                 AliStack *fMCStack;
88                 TList **fCutFolder;
89                 TList **fESDList;
90                 TList **fBackList;
91                 TList **fMotherList;
92                 TList **fTrueList;
93                 TList **fMCList;
94                 TList *fOutputContainer;
95                 TClonesArray *fReaderGammas;
96                 vector<Int_t> fSelectorNegPionIndex;
97                 vector<Int_t> fSelectorPosPionIndex;
98                 TList *fGoodGammas;
99                 TList *fGoodVirtualParticles;
100                 TList *fGammaCutArray;
101                 TList *fPionCutArray;
102                 TList *fMesonCutArray;
103                 AliConversionCuts *fConversionCuts;
104                 
105                 // reconstructed particles
106                 TH1F **fHistoConvGammaPt;
107                 TH1F **fHistoConvGammaEta;
108                 TH1F **fHistoNegPionPt;
109                 TH1F **fHistoPosPionPt;
110                 TH1F **fHistoNegPionPhi;
111                 TH1F **fHistoPosPionPhi;
112                 TH1F **fHistoNegPionEta;
113                 TH1F **fHistoPosPionEta;
114                 TH2F **fHistoNegPionClsTPC;
115                 TH2F **fHistoPosPionClsTPC;
116                 TH2F **fHistoPionDCAxy;
117                 TH2F **fHistoPionDCAz;
118                 TH2F **fHistoPionTPCdEdxNSigma;
119                 TH2F **fHistoPionTPCdEdx;
120                 TH2F **fHistoPionPionInvMassPt;
121                 TH2F **fHistoMotherInvMassPt;
122                 THnSparseF **fTHnSparseMotherInvMassPtZM;
123                 TH2F **fHistoMotherBackInvMassPt;
124                 THnSparseF **fTHnSparseMotherBackInvMassPtZM;
125                 
126                 // pure MC properties
127                 TH1F **fHistoMCAllGammaPt;
128                 TH1F **fHistoMCConvGammaPt;
129                 TH1F **fHistoMCAllPosPionsPt;
130                 TH1F **fHistoMCAllNegPionsPt;
131                 TH1F **fHistoMCGammaFromEtaPt;
132                 TH1F **fHistoMCPosPionsFromEtaPt;
133                 TH1F **fHistoMCNegPionsFromEtaPt;
134                 TH1F **fHistoMCEtaPiPlPiMiGammaPt;
135                 TH1F **fHistoMCEtaGGPt;
136                 TH1F **fHistoMCEtaDalitzPt;
137                 TH1F **fHistoMCEtaPiPlPiMiGammaInAccPt;
138                 
139                 // reconstructed particles MC validated
140                 TH2F **fHistoTrueMotherPiPlPiMiGammaInvMassPt;
141                 TH2F **fHistoTrueMotherGammaGammaInvMassPt;
142                 TH2F **fHistoTrueMotherDalitzInvMassPt;
143                 TH1F **fHistoTrueConvGammaPt;
144                 TH1F **fHistoTrueConvGammaFromEtaPt;
145                 TH1F **fHistoTruePosPionPt;
146                 TH1F **fHistoTruePosPionFromEtaPt;
147                 TH1F **fHistoTrueNegPionPt;
148                 TH1F **fHistoTrueNegPionFromEtaPt;
149                 TH2F **fHistoTruePionPionInvMassPt;
150                 TH2F **fHistoTruePionPionFromEtaInvMassPt;
151                 // Event properties
152                 TH1I **fHistoNEvents;
153                 TH1I **fHistoNGoodESDTracks;
154                 TProfile **fProfileEtaShift;
155                         
156                 TRandom3 fRandom;
157                 Int_t fnCuts;
158                 Int_t fiCut;
159                 Int_t fNumberOfESDTracks;
160                 Bool_t fMoveParticleAccordingToVertex;
161                 Bool_t fIsHeavyIon;
162                 Bool_t fDoMesonAnalysis;
163                 Bool_t fDoMesonQA;
164                 Bool_t fIsFromMBHeader;
165                 Bool_t fIsMC;
166                 Bool_t fIsGammaEtaCand;
167         private:
168                 AliAnalysisTaskEtaToPiPlPiMiGamma( const AliAnalysisTaskEtaToPiPlPiMiGamma& ); // Not implemented
169                 AliAnalysisTaskEtaToPiPlPiMiGamma& operator=( const AliAnalysisTaskEtaToPiPlPiMiGamma& ); // Not implemented
170
171                 ClassDef( AliAnalysisTaskEtaToPiPlPiMiGamma, 1 );
172 };
173
174 #endif // ALIANALYSISTASKHEAVYMESONTHREEBODY_H
175