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