]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.h
modified psi-pair cut for GG-Task
[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 FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
65    void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
66    void UpdateEventByEventData();
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 **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    TTree **tESDConvGammaPtDcazCat;
94    Float_t fPtGamma;
95    Float_t fDCAzPhoton;
96    Float_t fRConvPhoton;
97    Float_t fEtaPhoton;
98    UChar_t iCatPhoton;
99    UChar_t iPhotonMCInfo; // 0: garbage,
100                          // 1: background
101                          // 2: secondary photon not from eta or k0s,
102                          // 3: secondary photon from eta, 
103                          // 4: secondary photon from k0s, 
104                          // 5: dalitz
105                          // 6: primary gamma
106    TH2F **hESDMotherInvMassPt;
107    THnSparseF **sESDMotherInvMassPtZM;
108    TH2F **hESDMotherBackInvMassPt;
109    THnSparseF **sESDMotherBackInvMassPtZM;
110    TH2F **hESDMotherInvMassEalpha;
111    TH1I **hMCHeaders;
112    TH1F **hMCAllGammaPt;
113    TH1F **hMCDecayGammaPi0Pt;
114    TH1F **hMCDecayGammaRhoPt;
115    TH1F **hMCDecayGammaEtaPt;
116    TH1F **hMCDecayGammaOmegaPt;
117    TH1F **hMCDecayGammaEtapPt;
118    TH1F **hMCDecayGammaPhiPt;
119    TH1F **hMCDecayGammaSigmaPt;
120    TH1F **hMCConvGammaPt;
121    TH1F **hMCConvGammaR;
122    TH1F **hMCConvGammaEta;
123    TH1F **hMCConvGammaRSPt;
124    TH1F **hMCConvGammaRSR;
125    TH1F **hMCConvGammaRSEta;
126    TH1F **hMCPi0Pt;
127    TH1F **hMCPi0WOWeightPt;
128    TH1F **hMCEtaPt;
129    TH1F **hMCPi0InAccPt;
130    TH1F **hMCEtaInAccPt;
131    TH2F **hMCPi0PtY;
132    TH2F **hMCEtaPtY;
133    TH1F **hMCK0sPt;
134    TH1F **hMCK0sWOWeightPt;
135    TH2F **hMCK0sPtY;
136    TH2F **hESDTrueMotherInvMassPt;
137    TH2F **hESDTruePrimaryMotherInvMassPt;
138    TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt;
139    TProfile2D **pESDTruePrimaryMotherWeightsInvMassPt;
140    TH2F **hESDTruePrimaryPi0MCPtResolPt;
141    TH2F **hESDTruePrimaryEtaMCPtResolPt;
142    TH2F **hESDTrueSecondaryMotherInvMassPt;
143    TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
144    TH1F **hESDTrueK0sWithPi0DaughterMCPt;
145    TH2F **hESDTrueSecondaryMotherFromEtaInvMassPt;
146    TH1F **hESDTrueEtaWithPi0DaughterMCPt;
147    TH2F **hESDTrueBckGGInvMassPt;
148    TH2F **hESDTrueBckContInvMassPt;
149    TH2F **hESDTrueMotherDalitzInvMassPt;
150    TH1F **hESDTrueConvGammaPt;
151    TH2F **hESDCombinatorialPt;
152    TH1F **hESDTruePrimaryConvGammaPt;
153    TH2F **hESDTruePrimaryConvGammaESDPtMCPt;
154    TH2F **hESDTruePrimaryConvGammaRSESDPtMCPt;
155    TH1F **hESDTrueSecondaryConvGammaPt;
156    TH1F **hESDTrueSecondaryConvGammaFromXFromK0sPt;
157    TH1F **hESDTrueSecondaryConvGammaFromXFromLambdaPt;
158    TH2F **hESDTrueDalitzPsiPairDeltaPhi;
159    TH2F **hESDTrueGammaPsiPairDeltaPhi;
160    TH1I **hNEvents;
161    TH1I **hNGoodESDTracks;
162    TH1I **hNGammaCandidates;
163    TH1I **hNV0Tracks;
164    TProfile **hEtaShift;
165    TTree **tESDMesonsInvMassPtDcazMinDcazMaxFlag;
166    Float_t fInvMass;
167    Float_t fPt;
168    Float_t fDCAzGammaMin;
169    Float_t fDCAzGammaMax;
170    UChar_t iFlag;
171    UChar_t iMesonMCInfo; // 0: garbage,
172                          // 1: background
173                          // 2: secondary meson not from eta or k0s,
174                          // 3: secondary meson from eta, 
175                          // 4: secondary meson from k0s, 
176                          // 5: dalitz
177                          // 6: primary meson gamma-gamma-channel
178    TRandom3 fRandom;
179    Int_t fnGammaCandidates;
180    Double_t *fUnsmearedPx; //[fnGammaCandidates]
181    Double_t *fUnsmearedPy; //[fnGammaCandidates]
182    Double_t *fUnsmearedPz; //[fnGammaCandidates]
183    Double_t *fUnsmearedE;  //[fnGammaCandidates]
184    Int_t *fMCStackPos;     //[fnGammaCandidates]
185    Int_t *fMCStackNeg;     //[fnGammaCandidates]
186    Int_t *fESDArrayPos;    //[fnGammaCandidates]
187    Int_t *fESDArrayNeg;    //[fnGammaCandidates]
188    Int_t fnCuts;
189    Int_t fiCut;
190    Bool_t fMoveParticleAccordingToVertex;
191    Bool_t fIsHeavyIon;
192    Bool_t fDoMesonAnalysis;
193    Bool_t fDoMesonQA;
194    Bool_t fDoPhotonQA;
195    Bool_t fIsFromMBHeader;
196    Bool_t fIsMC;
197
198 private:
199
200    AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
201    AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
202
203
204    ClassDef(AliAnalysisTaskGammaConvV1, 7);
205 };
206
207 #endif