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