1 #ifndef ALIANALYSISTASKHEAVYMESONTHREEBODY_H
2 #define ALIANALYSISTASKHEAVYMESONTHREEBODY_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 // Analysis task for pi0->e+e-gamma (Dalitz decay)
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"
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 SetPionCutList(TList *CutArray){
56 fPionCutArray = CutArray;
58 void SetMesonCutList(TList *CutArray){
59 fMesonCutArray = CutArray;
61 void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
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();
77 Bool_t IsPiPlPiMiGammaDecay(TParticle *fMCMother) const;
78 Bool_t IsEtaPiPlPiMiGammaDaughter( Int_t label ) const;
82 AliV0ReaderV1 *fV0Reader;
83 AliPrimaryPionSelector* fPionSelector;
84 AliGammaConversionAODBGHandler **fBGHandler;
85 AliESDEvent *fESDEvent;
94 TList *fOutputContainer;
95 TClonesArray *fReaderGammas;
96 vector<Int_t> fSelectorNegPionIndex;
97 vector<Int_t> fSelectorPosPionIndex;
99 TList *fGoodVirtualParticles;
100 TList *fGammaCutArray;
101 TList *fPionCutArray;
102 TList *fMesonCutArray;
103 AliConversionCuts *fConversionCuts;
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;
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;
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;
152 TH1I **fHistoNEvents;
153 TH1I **fHistoNGoodESDTracks;
154 TProfile **fProfileEtaShift;
159 Int_t fNumberOfESDTracks;
160 Bool_t fMoveParticleAccordingToVertex;
162 Bool_t fDoMesonAnalysis;
164 Bool_t fIsFromMBHeader;
166 Bool_t fIsGammaEtaCand;
168 AliAnalysisTaskEtaToPiPlPiMiGamma( const AliAnalysisTaskEtaToPiPlPiMiGamma& ); // Not implemented
169 AliAnalysisTaskEtaToPiPlPiMiGamma& operator=( const AliAnalysisTaskEtaToPiPlPiMiGamma& ); // Not implemented
171 ClassDef( AliAnalysisTaskEtaToPiPlPiMiGamma, 1 );
174 #endif // ALIANALYSISTASKHEAVYMESONTHREEBODY_H