]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.h
Conversion Task able to run on AOD's, added different trigger selection, implemented...
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskGammaConvV1.h
CommitLineData
2bb2434e 1#ifndef ALIANLYSISTASKGAMMACONVV1_cxx
2#define ALIANLYSISTASKGAMMACONVV1_cxx
3
4#include "AliAnalysisTaskSE.h"
5#include "AliESDtrack.h"
6#include "AliV0ReaderV1.h"
7#include "AliKFConversionPhoton.h"
8#include "AliGammaConversionAODBGHandler.h"
e5b6e8a6 9#include "AliConversionAODBGHandlerRP.h"
ca91a3e1 10#include "AliConversionMesonCuts.h"
11c1e680 11#include "AliAnalysisManager.h"
2bb2434e 12#include "TH3.h"
e5b6e8a6 13#include "TH3F.h"
2bb2434e 14
15class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE {
ca91a3e1 16 public:
2bb2434e 17
ca91a3e1 18 AliAnalysisTaskGammaConvV1();
19 AliAnalysisTaskGammaConvV1(const char *name);
20 virtual ~AliAnalysisTaskGammaConvV1();
2bb2434e 21
ca91a3e1 22 virtual void UserCreateOutputObjects();
11c1e680 23 virtual Bool_t Notify();
ca91a3e1 24 virtual void UserExec(Option_t *);
25 virtual void Terminate(const Option_t*);
26 void InitBack();
2bb2434e 27
0a2b2b4b 28 void SetIsHeavyIon(Int_t flag){
29 if (flag == 1 || flag ==2 ){
30 fIsHeavyIon = 1;
31 } else {
32 fIsHeavyIon = 0;
33 }
34 }
ae947965 35
36 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
ca91a3e1 37 void SetDoMesonAnalysis(Bool_t flag){fDoMesonAnalysis = flag;}
0a2b2b4b 38 void SetDoMesonQA(Bool_t flag){fDoMesonQA = flag;}
39 void SetDoPhotonQA(Bool_t flag){fDoPhotonQA = flag;}
ca91a3e1 40 void ProcessPhotonCandidates();
41 void CalculatePi0Candidates();
42 void CalculateBackground();
e5b6e8a6 43 void CalculateBackgroundRP();
ca91a3e1 44 void ProcessMCParticles();
ae947965 45 void ProcessAODMCParticles();
46 void RelabelAODPhotonCandidates(Bool_t mode);
ca91a3e1 47 void ProcessTruePhotonCandidates( AliAODConversionPhoton* TruePhotonCandidate);
ae947965 48 void ProcessTruePhotonCandidatesAOD( AliAODConversionPhoton* TruePhotonCandidate);
ca91a3e1 49 void ProcessTrueMesonCandidates( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
ae947965 50 void ProcessTrueMesonCandidatesAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
ca91a3e1 51 void RotateParticle(AliAODConversionPhoton *gamma);
52 void SetConversionCutList(Int_t nCuts, TList *CutArray){
53 fnCuts = nCuts;
54 fCutArray = CutArray;
55 }
56 void SetMesonCutList(Int_t nCuts, TList *CutArray){
57 fnCuts = nCuts;
58 fMesonCutArray = CutArray;
59 }
2bb2434e 60
ca91a3e1 61 // BG HandlerSettings
62 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
ae947965 63 void CountTracks();
64 void FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
ca91a3e1 65 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
66 void UpdateEventByEventData();
67
68 protected:
69 AliV0ReaderV1 *fV0Reader;
70 AliGammaConversionAODBGHandler **fBGHandler;
e5b6e8a6 71 AliConversionAODBGHandlerRP **fBGHandlerRP;
72 AliVEvent *fInputEvent;
ca91a3e1 73 AliMCEvent *fMCEvent;
74 AliStack *fMCStack;
75 TList **fCutFolder;
76 TList **fESDList;
77 TList **fBackList;
78 TList **fMotherList;
0a2b2b4b 79 TList **fMotherRapList;
ca91a3e1 80 TList **fTrueList;
0a2b2b4b 81 TList **fTrueMotherRapList;
ca91a3e1 82 TList **fMCList;
83 TList **fHeaderNameList;
ae947965 84 TList **fTriggerNameList;
ca91a3e1 85 TList *fOutputContainer;
86 TClonesArray *fReaderGammas;
a280ac15 87 TList *fGammaCandidates;
ca91a3e1 88 TList *fCutArray;
89 AliConversionCuts *fConversionCuts;
e5b6e8a6 90 TList *fMesonCutArray;
91 AliConversionMesonCuts *fMesonCuts;
ca91a3e1 92 TH1F **hESDConvGammaPt;
e5b6e8a6 93 TH1F **hESDConvGammaR;
ca91a3e1 94 TH2F **hESDMotherInvMassPt;
95 THnSparseF **sESDMotherInvMassPtZM;
0a2b2b4b 96 THnSparseF **sESDMotherInvMassPtY;
ca91a3e1 97 TH2F **hESDMotherBackInvMassPt;
98 THnSparseF **sESDMotherBackInvMassPtZM;
99 TH2F **hESDMotherInvMassEalpha;
100 TH1F **hMCAllGammaPt;
101 TH1F **hMCDecayGammaPi0Pt;
102 TH1F **hMCDecayGammaRhoPt;
103 TH1F **hMCDecayGammaEtaPt;
104 TH1F **hMCDecayGammaOmegaPt;
105 TH1F **hMCDecayGammaEtapPt;
106 TH1F **hMCDecayGammaPhiPt;
e5b6e8a6 107 TH1F **hMCDecayGammaSigmaPt;
ca91a3e1 108 TH1F **hMCConvGammaPt;
109 TH1F **hMCConvGammaR;
110 TH1F **hMCConvGammaEta;
e5b6e8a6 111 TH1F **hMCConvGammaRSPt;
112 TH1F **hMCConvGammaRSR;
113 TH1F **hMCConvGammaRSEta;
ca91a3e1 114 TH1F **hMCPi0Pt;
ae947965 115 TH1F **hMCPi0WOWeightPt;
ca91a3e1 116 TH1F **hMCEtaPt;
117 TH1F **hMCPi0InAccPt;
118 TH1F **hMCEtaInAccPt;
0a2b2b4b 119 TH2F **hMCPi0PtY;
120 TH2F **hMCEtaPtY;
ae947965 121 TH1F **hMCK0sPt;
122 TH1F **hMCK0sWOWeightPt;
123 TH2F **hMCK0sPtY;
ca91a3e1 124 TH2F **hESDTrueMotherInvMassPt;
a280ac15 125 TH2F **hESDTruePrimaryMotherInvMassPt;
0a2b2b4b 126 TH2F **hESDTruePrimaryPi0MCPtResolPt;
127 TH2F **hESDTruePrimaryEtaMCPtResolPt;
128 THnSparseF **sESDTruePrimaryMotherInvMassPtY;
ca91a3e1 129 TH2F **hESDTrueSecondaryMotherInvMassPt;
130 TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
e5b6e8a6 131 TH1F **hESDTrueK0sWithPi0DaughterMCPt;
132 TH2F **hESDTrueSecondaryMotherFromEtaInvMassPt;
133 TH1F **hESDTrueEtaWithPi0DaughterMCPt;
ca91a3e1 134 TH2F **hESDTrueBckGGInvMassPt;
135 TH2F **hESDTrueBckContInvMassPt;
136 TH2F **hESDTrueMotherDalitzInvMassPt;
137 TH1F **hESDTrueConvGammaPt;
e5b6e8a6 138 TH2F **hESDCombinatorialPt;
ca91a3e1 139 TH1F **hESDTruePrimaryConvGammaPt;
140 TH1F **hESDTruePrimaryConvGammaR;
141 TH1F **hESDTruePrimaryConvGammaEta;
142 TH2F **hESDTruePrimaryConvGammaESDPtMCPt;
e5b6e8a6 143 TH2F **hESDTruePrimaryConvGammaRSESDPtMCPt;
ca91a3e1 144 TH1F **hESDTrueSecondaryConvGammaPt;
e5b6e8a6 145 TH1F **hESDTrueSecondaryConvGammaR;
ca91a3e1 146 TH1F **hESDTrueSecondaryConvGammaFromXFromK0sPt;
147 TH1I **hNEvents;
148 TH1I **hNGoodESDTracks;
a280ac15 149 TH1I **hNGammaCandidates;
ca91a3e1 150 TH1I **hNV0Tracks;
ae947965 151 TH1F **hEtaShift;
11c1e680 152
ca91a3e1 153 TRandom3 fRandom;
a280ac15 154 Int_t fnGammaCandidates;
155 Double_t *fUnsmearedPx; //[fnGammaCandidates]
156 Double_t *fUnsmearedPy; //[fnGammaCandidates]
157 Double_t *fUnsmearedPz; //[fnGammaCandidates]
158 Double_t *fUnsmearedE; //[fnGammaCandidates]
ae947965 159 Int_t *fMCStackPos; //[fnGammaCandidates]
160 Int_t *fMCStackNeg; //[fnGammaCandidates]
ca91a3e1 161 Int_t fnCuts;
162 Int_t fiCut;
163 Int_t fNumberOfESDTracks;
ca91a3e1 164 Bool_t fMoveParticleAccordingToVertex;
165 Bool_t fIsHeavyIon;
166 Bool_t fDoMesonAnalysis;
0a2b2b4b 167 Bool_t fDoMesonQA;
168 Bool_t fDoPhotonQA;
a280ac15 169 Bool_t fIsFromMBHeader;
ae947965 170 Bool_t fIsMC;
ca91a3e1 171
a280ac15 172private:
173
174 AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
175 AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
176
177
ae947965 178 ClassDef(AliAnalysisTaskGammaConvV1, 7);
2bb2434e 179};
180
181#endif