]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.h
Merge branch 'master' into TRDdev
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskGammaConvV1.h
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"
9 #include "AliConversionAODBGHandlerRP.h"
10 #include "AliConversionMesonCuts.h"
11 #include "AliAnalysisManager.h"
12 #include "TProfile2D.h"
13 #include "TH3.h"
14 #include "TH3F.h"
15
16 class AliAnalysisTaskGammaConvV1 : public AliAnalysisTaskSE {
17  public:
18
19    AliAnalysisTaskGammaConvV1();
20    AliAnalysisTaskGammaConvV1(const char *name);
21    virtual ~AliAnalysisTaskGammaConvV1();
22
23    virtual void   UserCreateOutputObjects();
24    virtual Bool_t Notify();
25    virtual void   UserExec(Option_t *);
26    virtual void   Terminate(const Option_t*);
27    void InitBack();
28
29    void SetIsHeavyIon(Int_t flag){
30       fIsHeavyIon = flag;    
31       
32    }
33
34    void SetIsMC(Bool_t isMC){fIsMC=isMC;}
35    void SetDoMesonAnalysis(Bool_t flag){fDoMesonAnalysis = flag;}
36    void SetDoMesonQA(Int_t flag){fDoMesonQA = flag;}
37    void SetDoPhotonQA(Int_t flag){fDoPhotonQA = flag;}
38    void ProcessPhotonCandidates();
39    void CalculatePi0Candidates();
40    void CalculateBackground();
41    void CalculateBackgroundRP();
42    void ProcessMCParticles();
43    void ProcessAODMCParticles();
44    void RelabelAODPhotonCandidates(Bool_t mode);
45    void ProcessTruePhotonCandidates( AliAODConversionPhoton* TruePhotonCandidate);
46    void ProcessTruePhotonCandidatesAOD( AliAODConversionPhoton* TruePhotonCandidate);
47    void ProcessTrueMesonCandidates( AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
48    void ProcessTrueMesonCandidatesAOD(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate0, AliAODConversionPhoton *TrueGammaCandidate1);
49    void RotateParticle(AliAODConversionPhoton *gamma);
50    void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP);
51    void SetConversionCutList(Int_t nCuts, TList *CutArray){
52       fnCuts = nCuts;
53       fCutArray = CutArray;
54    }
55    void SetMesonCutList(Int_t nCuts, TList *CutArray){
56       fnCuts = nCuts;
57       fMesonCutArray = CutArray;
58    }
59
60    // BG HandlerSettings
61    void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
62    void FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
63    void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
64    void UpdateEventByEventData();
65    void SetLogBinningXTH2(TH2* histoRebin);
66    Int_t GetSourceClassification(Int_t daughter, Int_t pdgCode);
67    
68  protected:
69    AliV0ReaderV1 *fV0Reader;
70    AliGammaConversionAODBGHandler **fBGHandler;
71    AliConversionAODBGHandlerRP    **fBGHandlerRP;
72    AliVEvent *fInputEvent;
73    AliMCEvent *fMCEvent;
74    AliStack *fMCStack;
75    TList **fCutFolder;
76    TList **fESDList;
77    TList **fBackList;
78    TList **fMotherList;
79    TList **fPhotonDCAList;
80    TList **fMesonDCAList;        
81    TList **fTrueList;
82    TList **fMCList;
83    TList **fHeaderNameList;
84    TList *fOutputContainer;
85    TClonesArray *fReaderGammas;
86    TList *fGammaCandidates;
87    TList *fCutArray;
88    AliConversionCuts *fConversionCuts;
89    TList *fMesonCutArray;
90    AliConversionMesonCuts *fMesonCuts;
91    TH1F **hESDConvGammaPt;
92    TH1F **hESDConvGammaR;
93    TH1F **hESDConvGammaEta;
94    TTree **tESDConvGammaPtDcazCat;
95    Float_t fPtGamma;
96    Float_t fDCAzPhoton;
97    Float_t fRConvPhoton;
98    Float_t fEtaPhoton;
99    UChar_t iCatPhoton;
100    UChar_t iPhotonMCInfo; // 0: garbage,
101                          // 1: background
102                          // 2: secondary photon not from eta or k0s,
103                          // 3: secondary photon from eta, 
104                          // 4: secondary photon from k0s, 
105                          // 5: dalitz
106                          // 6: primary gamma
107    TH2F **hESDMotherInvMassPt;
108    THnSparseF **sESDMotherInvMassPtZM;
109    TH2F **hESDMotherBackInvMassPt;
110    THnSparseF **sESDMotherBackInvMassPtZM;
111    TH2F **hESDMotherInvMassEalpha;
112    TH2F **hESDMotherPi0PtY;
113    TH2F **hESDMotherEtaPtY;
114    TH2F **hESDMotherPi0PtAlpha;
115    TH2F **hESDMotherEtaPtAlpha;
116    TH2F **hESDMotherPi0PtOpenAngle;
117    TH2F **hESDMotherEtaPtOpenAngle;
118    TH1I **hMCHeaders;
119    TH1F **hMCAllGammaPt;
120    TH1F **hMCDecayGammaPi0Pt;
121    TH1F **hMCDecayGammaRhoPt;
122    TH1F **hMCDecayGammaEtaPt;
123    TH1F **hMCDecayGammaOmegaPt;
124    TH1F **hMCDecayGammaEtapPt;
125    TH1F **hMCDecayGammaPhiPt;
126    TH1F **hMCDecayGammaSigmaPt;
127    TH1F **hMCConvGammaPt;
128    TH1F **hMCConvGammaR;
129    TH1F **hMCConvGammaEta;
130    TH1F **hMCPi0Pt;
131    TH1F **hMCPi0WOWeightPt;
132    TH1F **hMCEtaPt;
133    TH1F **hMCEtaWOWeightPt;
134    TH1F **hMCPi0InAccPt;
135    TH1F **hMCEtaInAccPt;
136    TH2F **hMCPi0PtY;
137    TH2F **hMCEtaPtY;
138    TH1F **hMCK0sPt;
139    TH1F **hMCK0sWOWeightPt;
140    TH2F **hMCK0sPtY;
141    TH2F **hMCSecPi0PtvsSource;
142    TH1F **hMCSecPi0Source;
143    TH1F **hMCSecEtaPt;
144    TH1F **hMCSecEtaSource;
145    TH2F **hESDTrueMotherInvMassPt;
146    TH2F **hESDTruePrimaryMotherInvMassPt;
147    TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt;
148    TProfile2D **pESDTruePrimaryMotherWeightsInvMassPt;
149    TH2F **hESDTruePrimaryPi0MCPtResolPt;
150    TH2F **hESDTruePrimaryEtaMCPtResolPt;
151    TH2F **hESDTrueSecondaryMotherInvMassPt;
152    TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
153    TH1F **hESDTrueK0sWithPi0DaughterMCPt;
154    TH2F **hESDTrueSecondaryMotherFromEtaInvMassPt;
155    TH1F **hESDTrueEtaWithPi0DaughterMCPt;
156    TH2F **hESDTrueSecondaryMotherFromLambdaInvMassPt;
157    TH1F **hESDTrueLambdaWithPi0DaughterMCPt;
158    TH2F **hESDTrueBckGGInvMassPt;
159    TH2F **hESDTrueBckContInvMassPt;
160    TH2F **hESDTruePi0PtY;
161    TH2F **hESDTrueEtaPtY;
162    TH2F **hESDTruePi0PtAlpha;
163    TH2F **hESDTrueEtaPtAlpha;
164    TH2F **hESDTruePi0PtOpenAngle;
165    TH2F **hESDTrueEtaPtOpenAngle;
166    TH2F **hESDTrueMotherDalitzInvMassPt;
167    TH1F **hESDTrueConvGammaPt;
168    TH1F **hESDTrueConvGammaEta;
169    TH2F **hESDCombinatorialPt;
170    TH1F **hESDTruePrimaryConvGammaPt;
171    TH2F **hESDTruePrimaryConvGammaESDPtMCPt;
172    TH1F **hESDTrueSecondaryConvGammaPt;
173    TH1F **hESDTrueSecondaryConvGammaFromXFromK0sPt;
174    TH1F **hESDTrueSecondaryConvGammaFromXFromLambdaPt;
175    TH2F **hESDTrueDalitzPsiPairDeltaPhi;
176    TH2F **hESDTrueGammaPsiPairDeltaPhi;
177    TH1I **hNEvents;
178    TH1I **hNGoodESDTracks;
179    TH1I **hNGammaCandidates;
180    TH2F **hNGoodESDTracksVsNGammaCanditates;
181    TH1I **hNV0Tracks;
182    TProfile **hEtaShift;
183    TTree **tESDMesonsInvMassPtDcazMinDcazMaxFlag;
184    Float_t fInvMass;
185    Float_t fPt;
186    Float_t fDCAzGammaMin;
187    Float_t fDCAzGammaMax;
188    UChar_t iFlag;
189    UChar_t iMesonMCInfo; // 0: garbage,
190                          // 1: background
191                          // 2: secondary meson not from eta or k0s,
192                          // 3: secondary meson from eta, 
193                          // 4: secondary meson from k0s, 
194                          // 5: dalitz
195                          // 6: primary meson gamma-gamma-channel
196    Double_t fEventPlaneAngle; // EventPlaneAngle
197    TRandom3 fRandom;
198    Int_t fnGammaCandidates;
199    Double_t *fUnsmearedPx; //[fnGammaCandidates]
200    Double_t *fUnsmearedPy; //[fnGammaCandidates]
201    Double_t *fUnsmearedPz; //[fnGammaCandidates]
202    Double_t *fUnsmearedE;  //[fnGammaCandidates]
203    Int_t *fMCStackPos;     //[fnGammaCandidates]
204    Int_t *fMCStackNeg;     //[fnGammaCandidates]
205    Int_t *fESDArrayPos;    //[fnGammaCandidates]
206    Int_t *fESDArrayNeg;    //[fnGammaCandidates]
207    Int_t fnCuts;
208    Int_t fiCut;
209    Bool_t fMoveParticleAccordingToVertex;
210    Int_t fIsHeavyIon;
211    Bool_t fDoMesonAnalysis;
212    Int_t fDoMesonQA;
213    Int_t fDoPhotonQA;
214    Bool_t fIsFromMBHeader;
215    Bool_t fIsMC;
216
217 private:
218
219    AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
220    AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
221
222
223    ClassDef(AliAnalysisTaskGammaConvV1, 11);
224 };
225
226 #endif