1 #ifndef ALIANLYSISTASKGAMMACONVV1_cxx
2 #define ALIANLYSISTASKGAMMACONVV1_cxx
4 #include "AliAnalysisTaskSE.h"
5 #include "AliESDtrack.h"
6 #include "AliV0ReaderV1.h"
7 #include "AliKFConversionPhoton.h"
8 #include "AliGammaConversionAODBGHandler.h"
9 #include "AliConversionAODBGHandlerRP.h"
10 #include "AliConversionMesonCuts.h"
11 #include "AliAnalysisManager.h"
12 #include "TProfile2D.h"
16 class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE {
19 AliAnalysisTaskGammaConvV1();
20 AliAnalysisTaskGammaConvV1(const char *name);
21 virtual ~AliAnalysisTaskGammaConvV1();
23 virtual void UserCreateOutputObjects();
24 virtual Bool_t Notify();
25 virtual void UserExec(Option_t *);
26 virtual void Terminate(const Option_t*);
29 void SetIsHeavyIon(Int_t flag){
30 if (flag == 1 || flag ==2 ){
37 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
38 void SetDoMesonAnalysis(Bool_t flag){fDoMesonAnalysis = flag;}
39 void SetDoMesonQA(Bool_t flag){fDoMesonQA = flag;}
40 void SetDoPhotonQA(Bool_t flag){fDoPhotonQA = flag;}
41 void ProcessPhotonCandidates();
42 void CalculatePi0Candidates();
43 void CalculateBackground();
44 void CalculateBackgroundRP();
45 void ProcessMCParticles();
46 void ProcessAODMCParticles();
47 void RelabelAODPhotonCandidates(Bool_t mode);
48 void ProcessTruePhotonCandidates( AliAODConversionPhoton* TruePhotonCandidate);
49 void ProcessTruePhotonCandidatesAOD( AliAODConversionPhoton* TruePhotonCandidate);
50 void ProcessTrueMesonCandidates( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
51 void ProcessTrueMesonCandidatesAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
52 void RotateParticle(AliAODConversionPhoton *gamma);
53 void SetConversionCutList(Int_t nCuts, TList *CutArray){
57 void SetMesonCutList(Int_t nCuts, TList *CutArray){
59 fMesonCutArray = CutArray;
63 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
65 void FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
66 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
67 void UpdateEventByEventData();
70 AliV0ReaderV1 *fV0Reader;
71 AliGammaConversionAODBGHandler **fBGHandler;
72 AliConversionAODBGHandlerRP **fBGHandlerRP;
73 AliVEvent *fInputEvent;
80 TList **fMotherRapList;
82 TList **fTrueMotherRapList;
84 TList **fHeaderNameList;
85 TList *fOutputContainer;
86 TClonesArray *fReaderGammas;
87 TList *fGammaCandidates;
89 AliConversionCuts *fConversionCuts;
90 TList *fMesonCutArray;
91 AliConversionMesonCuts *fMesonCuts;
92 TH1F **hESDConvGammaPt;
93 TH1F **hESDConvGammaR;
94 TH2F **hESDMotherInvMassPt;
95 THnSparseF **sESDMotherInvMassPtZM;
96 THnSparseF **sESDMotherInvMassPtY;
97 TH2F **hESDMotherBackInvMassPt;
98 THnSparseF **sESDMotherBackInvMassPtZM;
99 TH2F **hESDMotherInvMassEalpha;
101 TH1F **hMCAllGammaPt;
102 TH1F **hMCDecayGammaPi0Pt;
103 TH1F **hMCDecayGammaRhoPt;
104 TH1F **hMCDecayGammaEtaPt;
105 TH1F **hMCDecayGammaOmegaPt;
106 TH1F **hMCDecayGammaEtapPt;
107 TH1F **hMCDecayGammaPhiPt;
108 TH1F **hMCDecayGammaSigmaPt;
109 TH1F **hMCConvGammaPt;
110 TH1F **hMCConvGammaR;
111 TH1F **hMCConvGammaEta;
112 TH1F **hMCConvGammaRSPt;
113 TH1F **hMCConvGammaRSR;
114 TH1F **hMCConvGammaRSEta;
116 TH1F **hMCPi0WOWeightPt;
118 TH1F **hMCPi0InAccPt;
119 TH1F **hMCEtaInAccPt;
123 TH1F **hMCK0sWOWeightPt;
125 TH2F **hESDTrueMotherInvMassPt;
126 TH2F **hESDTruePrimaryMotherInvMassPt;
127 TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt;
128 TProfile2D **pESDTruePrimaryMotherWeightsInvMassPt;
129 TH2F **hESDTruePrimaryPi0MCPtResolPt;
130 TH2F **hESDTruePrimaryEtaMCPtResolPt;
131 THnSparseF **sESDTruePrimaryMotherInvMassPtY;
132 TH2F **hESDTrueSecondaryMotherInvMassPt;
133 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
134 TH1F **hESDTrueK0sWithPi0DaughterMCPt;
135 TH2F **hESDTrueSecondaryMotherFromEtaInvMassPt;
136 TH1F **hESDTrueEtaWithPi0DaughterMCPt;
137 TH2F **hESDTrueBckGGInvMassPt;
138 TH2F **hESDTrueBckContInvMassPt;
139 TH2F **hESDTrueMotherDalitzInvMassPt;
140 TH1F **hESDTrueConvGammaPt;
141 TH2F **hESDCombinatorialPt;
142 TH1F **hESDTruePrimaryConvGammaPt;
143 TH1F **hESDTruePrimaryConvGammaR;
144 TH1F **hESDTruePrimaryConvGammaEta;
145 TH2F **hESDTruePrimaryConvGammaESDPtMCPt;
146 TH2F **hESDTruePrimaryConvGammaRSESDPtMCPt;
147 TH1F **hESDTrueSecondaryConvGammaPt;
148 TH1F **hESDTrueSecondaryConvGammaR;
149 TH1F **hESDTrueSecondaryConvGammaFromXFromK0sPt;
151 TH1I **hNGoodESDTracks;
152 TH1I **hNGammaCandidates;
157 Int_t fnGammaCandidates;
158 Double_t *fUnsmearedPx; //[fnGammaCandidates]
159 Double_t *fUnsmearedPy; //[fnGammaCandidates]
160 Double_t *fUnsmearedPz; //[fnGammaCandidates]
161 Double_t *fUnsmearedE; //[fnGammaCandidates]
162 Int_t *fMCStackPos; //[fnGammaCandidates]
163 Int_t *fMCStackNeg; //[fnGammaCandidates]
164 Int_t *fESDArrayPos; //[fnGammaCandidates]
165 Int_t *fESDArrayNeg; //[fnGammaCandidates]
168 Int_t fNumberOfESDTracks;
169 Bool_t fMoveParticleAccordingToVertex;
171 Bool_t fDoMesonAnalysis;
174 Bool_t fIsFromMBHeader;
179 AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
180 AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
183 ClassDef(AliAnalysisTaskGammaConvV1, 7);