]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.h
changes in AddTask pPb
[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       if (flag == 1 || flag ==2 ){
31          fIsHeavyIon = 1;    
32       } else {
33          fIsHeavyIon = 0;    
34       }
35    }
36
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){
54       fnCuts = nCuts;
55       fCutArray = CutArray;
56    }
57    void SetMesonCutList(Int_t nCuts, TList *CutArray){
58       fnCuts = nCuts;
59       fMesonCutArray = CutArray;
60    }
61
62    // BG HandlerSettings
63    void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
64    void CountTracks();
65    void FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
66    void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
67    void UpdateEventByEventData();
68
69  protected:
70    AliV0ReaderV1 *fV0Reader;
71    AliGammaConversionAODBGHandler **fBGHandler;
72    AliConversionAODBGHandlerRP    **fBGHandlerRP;
73    AliVEvent *fInputEvent;
74    AliMCEvent *fMCEvent;
75    AliStack *fMCStack;
76    TList **fCutFolder;
77    TList **fESDList;
78    TList **fBackList;
79    TList **fMotherList;
80    TList **fMotherRapList;
81    TList **fTrueList;
82    TList **fTrueMotherRapList;
83    TList **fMCList;
84    TList **fHeaderNameList;
85    TList *fOutputContainer;
86    TClonesArray *fReaderGammas;
87    TList *fGammaCandidates;
88    TList *fCutArray;
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;
100    TH1I **hMCHeaders;
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;
115    TH1F **hMCPi0Pt;
116    TH1F **hMCPi0WOWeightPt;
117    TH1F **hMCEtaPt;
118    TH1F **hMCPi0InAccPt;
119    TH1F **hMCEtaInAccPt;
120    TH2F **hMCPi0PtY;
121    TH2F **hMCEtaPtY;
122    TH1F **hMCK0sPt;
123    TH1F **hMCK0sWOWeightPt;
124    TH2F **hMCK0sPtY;
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;
150    TH1I **hNEvents;
151    TH1I **hNGoodESDTracks;
152    TH1I **hNGammaCandidates;
153    TH1I **hNV0Tracks;
154    TH1F **hEtaShift;
155    
156    TRandom3 fRandom;
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]
166    Int_t fnCuts;
167    Int_t fiCut;
168    Int_t fNumberOfESDTracks;
169    Bool_t fMoveParticleAccordingToVertex;
170    Bool_t fIsHeavyIon;
171    Bool_t fDoMesonAnalysis;
172    Bool_t fDoMesonQA;
173    Bool_t fDoPhotonQA;
174    Bool_t fIsFromMBHeader;
175    Bool_t fIsMC;
176
177 private:
178
179    AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
180    AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
181
182
183    ClassDef(AliAnalysisTaskGammaConvV1, 7);
184 };
185
186 #endif