1 #ifndef ALIANALYSISTASKETATOPIPLPIMIGAMMA_H
2 #define ALIANALYSISTASKETATOPIPLPIMIGAMMA_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
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"
17 class AliESDInputHandler;
18 class AliMCEventHandler;
21 class AliESDtrackCuts;
24 class AliTriggerAnalysis;
26 class AliAnalysisTaskEtaToPiPlPiMiGamma: public AliAnalysisTaskSE
30 AliAnalysisTaskEtaToPiPlPiMiGamma();
31 AliAnalysisTaskEtaToPiPlPiMiGamma( const char* name );
32 virtual ~AliAnalysisTaskEtaToPiPlPiMiGamma();
34 virtual void UserExec(Option_t *);
35 virtual void UserCreateOutputObjects();
36 virtual Bool_t Notify();
37 virtual void Terminate(const Option_t *);
40 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
42 void SetIsHeavyIon(Int_t flag){
43 if (flag == 1 || flag ==2 ){
50 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
51 void SetConversionCutList(Int_t nCuts, TList *CutArray){
53 fGammaCutArray = CutArray;
55 void SetEventCutList(Int_t nCuts, TList *CutArray){
57 fEventCutArray = CutArray;
60 void SetPionCutList(TList *CutArray){
61 fPionCutArray = CutArray;
63 void SetMesonCutList(TList *CutArray){
64 fMesonCutArray = CutArray;
66 void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
72 void ProcessPhotonCandidates();
73 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
74 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
75 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
76 void ProcessPionCandidates();
77 void ProcessMCParticles();
78 void CalculateMesonCandidates();
79 void CalculateBackground();
80 void UpdateEventByEventData();
82 Bool_t IsPiPlPiMiGammaDecay(TParticle *fMCMother) const;
83 Bool_t IsEtaPiPlPiMiGammaDaughter( Int_t label ) const;
87 AliV0ReaderV1 *fV0Reader; //
88 AliPrimaryPionSelector *fPionSelector; //
89 AliGammaConversionAODBGHandler **fBGHandler; //
90 AliESDEvent *fESDEvent; //
91 AliMCEvent *fMCEvent; //
92 AliStack *fMCStack; //
93 TList **fCutFolder; //
96 TList **fMotherList; //
99 TList *fOutputContainer; //
100 TClonesArray *fReaderGammas; //
101 vector<Int_t> fSelectorNegPionIndex; //
102 vector<Int_t> fSelectorPosPionIndex; //
103 TList *fGoodGammas; //
104 TList *fGoodVirtualParticles; //
105 TList *fEventCutArray; //
106 TList *fGammaCutArray; //
107 TList *fPionCutArray; //
108 TList *fMesonCutArray; //
109 AliConvEventCuts *fEventCuts; //
110 AliConversionPhotonCuts *fConversionCuts; //
112 // reconstructed particles
113 TH1F **fHistoConvGammaPt; //
114 TH1F **fHistoConvGammaEta; //
115 TH1F **fHistoNegPionPt; //
116 TH1F **fHistoPosPionPt; //
117 TH1F **fHistoNegPionPhi; //
118 TH1F **fHistoPosPionPhi; //
119 TH1F **fHistoNegPionEta; //
120 TH1F **fHistoPosPionEta; //
121 TH2F **fHistoNegPionClsTPC; //
122 TH2F **fHistoPosPionClsTPC; //
123 TH2F **fHistoPionDCAxy; //
124 TH2F **fHistoPionDCAz; //
125 TH2F **fHistoPionTPCdEdxNSigma; //
126 TH2F **fHistoPionTPCdEdx; //
127 TH2F **fHistoPionPionInvMassPt; //
128 TH2F **fHistoMotherInvMassPt; //
129 THnSparseF **fTHnSparseMotherInvMassPtZM; //
130 TH2F **fHistoMotherBackInvMassPt; //
131 THnSparseF **fTHnSparseMotherBackInvMassPtZM; //
133 // pure MC properties
134 TH1F **fHistoMCAllGammaPt; //
135 TH1F **fHistoMCConvGammaPt; //
136 TH1F **fHistoMCAllPosPionsPt; //
137 TH1F **fHistoMCAllNegPionsPt; //
138 TH1F **fHistoMCGammaFromEtaPt; //
139 TH1F **fHistoMCPosPionsFromEtaPt; //
140 TH1F **fHistoMCNegPionsFromEtaPt; //
141 TH1F **fHistoMCEtaPiPlPiMiGammaPt; //
142 TH1F **fHistoMCEtaGGPt; //
143 TH1F **fHistoMCEtaDalitzPt; //
144 TH1F **fHistoMCEtaPiPlPiMiGammaInAccPt; //
146 // reconstructed particles MC validated
147 TH2F **fHistoTrueMotherPiPlPiMiGammaInvMassPt; //
148 TH2F **fHistoTrueMotherGammaGammaInvMassPt; //
149 TH2F **fHistoTrueMotherDalitzInvMassPt; //
150 TH1F **fHistoTrueConvGammaPt; //
151 TH1F **fHistoTrueConvGammaFromEtaPt; //
152 TH1F **fHistoTruePosPionPt; //
153 TH1F **fHistoTruePosPionFromEtaPt; //
154 TH1F **fHistoTrueNegPionPt; //
155 TH1F **fHistoTrueNegPionFromEtaPt; //
156 TH2F **fHistoTruePionPionInvMassPt; //
157 TH2F **fHistoTruePionPionFromEtaInvMassPt; //
159 TH1I **fHistoNEvents; //
160 TH1I **fHistoNGoodESDTracks; //
161 TProfile **fProfileEtaShift; //
166 Int_t fNumberOfESDTracks;
167 Bool_t fMoveParticleAccordingToVertex;
169 Bool_t fDoMesonAnalysis;
171 Bool_t fIsFromMBHeader;
173 Bool_t fIsGammaEtaCand;
175 AliAnalysisTaskEtaToPiPlPiMiGamma( const AliAnalysisTaskEtaToPiPlPiMiGamma& ); // Not implemented
176 AliAnalysisTaskEtaToPiPlPiMiGamma& operator=( const AliAnalysisTaskEtaToPiPlPiMiGamma& ); // Not implemented
178 ClassDef( AliAnalysisTaskEtaToPiPlPiMiGamma, 2 );
181 #endif // ALIANALYSISTASKETATOPIPLPIMIGAMMA_H