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