]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero.h
CommitLineData
cb287740 1#ifndef ALIANALYSISTASKNEUTRALMESONTOPIPLPIMIPIZERO_H
2#define ALIANALYSISTASKNEUTRALMESONTOPIPLPIMIPIZERO_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7
8#include "AliAnalysisTaskSE.h"
9#include "AliV0ReaderV1.h"
10#include "AliKFConversionPhoton.h"
11#include "AliPrimaryPionSelector.h"
12#include "AliConversionMesonCuts.h"
13#include "AliConvEventCuts.h"
14#include "AliGammaConversionAODBGHandler.h"
15#include "TProfile2D.h"
16
17class AliESDInputHandler;
18class AliMCEventHandler;
19class AliESDEvent;
20class AliESDtrack;
21class AliESDtrackCuts;
22class AliESDpidCuts;
23class AliV0Reader;
24class AliTriggerAnalysis;
25
26class AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero: public AliAnalysisTaskSE
27{
28 public:
29
30 AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero();
31 AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero( const char* name );
32 virtual ~AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero();
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 SetEventCutList(Int_t nCuts, TList *CutArray){
56 fnCuts= nCuts;
57 fEventCutArray = CutArray;
58 }
59
60 void SetPionCutList(TList *CutArray){
61 fPionCutArray = CutArray;
62 }
63 void SetNeutralPionCutList(TList *CutArray){
64 fNeutralPionMesonCutArray = CutArray;
65 }
66 void SetMesonCutList(TList *CutArray){
67 fMesonCutArray = CutArray;
68 }
69 void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
70
71
72 private:
73
74 void InitBack();
75 void ProcessPhotonCandidates();
76 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
77 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionMother *TrueNeutralPionCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
f61c548e 78 void MoveParticleAccordingToVertex(AliAODConversionMother* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
cb287740 79 void ProcessNeutralPionCandidatesPureConversions();
80 void ProcessTrueNeutralPionCandidatesPureConversions(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
81 void ProcessTrueNeutralPionCandidatesPureConversionsAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
82 void ProcessPionCandidates();
83 void ProcessMCParticles();
84 void CalculateMesonCandidates();
85 void CalculateBackground();
86 void UpdateEventByEventData();
87
88 Bool_t IsPiPlPiMiPiZeroDecay(TParticle *fMCMother) const;
89 Bool_t IsEtaPiPlPiMiPiZeroDaughter( Int_t label ) const;
90 Bool_t IsOmegaPiPlPiMiPiZeroDaughter( Int_t label ) const;
6671ffac 91 Bool_t GammaIsNeutralMesonPiPlPiMiPiZeroDaughter( Int_t label ) const;
cb287740 92
93 AliV0ReaderV1 *fV0Reader; //
94 AliPrimaryPionSelector *fPionSelector; //
95 AliGammaConversionAODBGHandler **fBGHandler; //
96 AliESDEvent *fESDEvent; //
97 AliMCEvent *fMCEvent; //
98 AliStack *fMCStack; //
99 TList **fCutFolder; //
100 TList **fESDList; //
101 TList **fBackList; //
102 TList **fMotherList; //
103 TList **fTrueList; //
104 TList **fMCList; //
105 TList *fOutputContainer; //
106 TClonesArray *fReaderGammas; //
107 vector<Int_t> fSelectorNegPionIndex; //
108 vector<Int_t> fSelectorPosPionIndex; //
109 TList *fGoodGammas; //
110 TList *fNeutralPionCandidates; //
111 TList *fGoodVirtualParticles; //
112 TList *fEventCutArray; //
113 TList *fGammaCutArray; //
114 TList *fPionCutArray; //
115 TList *fNeutralPionMesonCutArray; //
116 TList *fMesonCutArray; //
117 AliConvEventCuts *fEventCuts; //
118 AliConversionPhotonCuts *fConversionCuts; //
119
120 // reconstructed particles
121 TH1F **fHistoConvGammaPt; //
122 TH1F **fHistoConvGammaEta; //
123 TH1F **fHistoNegPionPt; //
124 TH1F **fHistoPosPionPt; //
125 TH1F **fHistoNegPionPhi; //
126 TH1F **fHistoPosPionPhi; //
127 TH1F **fHistoNegPionEta; //
128 TH1F **fHistoPosPionEta; //
129 TH2F **fHistoNegPionClsTPC; //
130 TH2F **fHistoPosPionClsTPC; //
131 TH2F **fHistoPionDCAxy; //
132 TH2F **fHistoPionDCAz; //
133 TH2F **fHistoPionTPCdEdxNSigma; //
134 TH2F **fHistoPionTPCdEdx; //
135 TH2F **fHistoPionPionInvMassPt; //
136 TH2F **fHistoGammaGammaInvMassPt; //
137 TH2F **fHistoMotherInvMassPt; //
138 THnSparseF **fTHnSparseMotherInvMassPtZM; //
139 TH2F **fHistoMotherBackInvMassPt; //
140 THnSparseF **fTHnSparseMotherBackInvMassPtZM; //
141
142 // pure MC properties
143 TH1F **fHistoMCAllGammaPt; //
144 TH1F **fHistoMCConvGammaPt; //
145 TH1F **fHistoMCAllPosPionsPt; //
146 TH1F **fHistoMCAllNegPionsPt; //
147 TH1F **fHistoMCGammaFromNeutralMesonPt; //
148 TH1F **fHistoMCPosPionsFromNeutralMesonPt; //
149 TH1F **fHistoMCNegPionsFromNeutralMesonPt; //
150 TH1F **fHistoMCEtaPiPlPiMiPiZeroPt; //
151 TH1F **fHistoMCEtaPiPlPiMiPiZeroInAccPt; //
152 TH1F **fHistoMCOmegaPiPlPiMiPiZeroPt; //
153 TH1F **fHistoMCOmegaPiPlPiMiPiZeroInAccPt; //
154
155 // reconstructed particles MC validated
156 TH2F **fHistoTrueMotherPiPlPiMiPiZeroInvMassPt; // histos with reconstructed validated eta or omega, inv mass, pT
157 TH2F **fHistoTrueMotherGammaGammaInvMassPt; // histos with reconstructed validated pi0, inv mass, pT
158 TH1F **fHistoTrueConvGammaPt; // histos with reconstructed validated gamma, pT
159 TH1F **fHistoTrueConvGammaFromNeutralMesonPt; // histos with reconstructed validated gamma from eta or omega via pi0, pT
160 TH1F **fHistoTruePosPionPt; // histos with reconstructed validated positive pion, pT
161 TH1F **fHistoTruePosPionFromNeutralMesonPt; // histos with reconstructed validated positive pion from eta or omega, pT
162 TH1F **fHistoTrueNegPionPt; // histos with reconstructed validated negative pion, pT
163 TH1F **fHistoTrueNegPionFromNeutralMesonPt; // histos with reconstructed validated negative pion from eta or omega, pT
164 TH2F **fHistoTruePionPionInvMassPt; // histos with reconstructed validated two pion, invariant mass, pT
95bd6d60 165 TH2F **fHistoTruePionPionFromSameMotherInvMassPt;// histos with reconstructed validated two pion from same mother, invariant mass, pT
cb287740 166 TH2F **fHistoTruePionPionFromNeutralMesonInvMassPt;// histos with reconstructed validated two pion from eta or omega, invariant mass, pT
167 // Event properties
168 TH1I **fHistoNEvents; // histo for event counting
169 TH1I **fHistoNGoodESDTracks; // histo number of reconstructed primary tracks
170 TProfile **fProfileEtaShift; // profile for eta shift bookkeeping
171
172 TRandom3 fRandom; // random number
173 Int_t fnCuts; // number of cuts to be run in parallel
174 Int_t fiCut; // current cut
175 Int_t fNumberOfESDTracks; // integer with number of primary tracks in this event
176 Bool_t fMoveParticleAccordingToVertex; // Flag to move parice to the vertex
177 Int_t fIsHeavyIon; // Flag for collision system 0: pp, 1: PbPb, 2: pPb
178 Bool_t fDoMesonAnalysis; // Flag for switching on meson analysis
179 Bool_t fDoMesonQA; // Flag for switching on small meson QA
180 Bool_t fIsFromMBHeader; // Flag for particle whether it belongs to accepted header
181 Bool_t fIsMC; // Flag for MC
182
183 private:
184 AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero( const AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero& ); // Not implemented
185 AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero& operator=( const AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero& ); // Not implemented
186
187 ClassDef( AliAnalysisTaskNeutralMesonToPiPlPiMiPiZero, 1 );
188};
189
190#endif // ALIANALYSISTASKNEUTRALMESONTOPIPLPIMIPIZERO_H
191