]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvV1.h
TENDER becomes Tender, removing .so
[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                 TH1F                                                            **hESDConvGammaPhi;                                                                     //!
102                 TTree                                                           **tESDConvGammaPtDcazCat;                                                       //!
103                 Float_t                                                         fPtGamma;                                                                                       //!
104                 Float_t                                                         fDCAzPhoton;                                                                            //!
105                 Float_t                                                         fRConvPhoton;                                                                           //!
106                 Float_t                                                         fEtaPhoton;                                                                                     //!
107                 UChar_t                                                         iCatPhoton;                                                                                     //!
108                 UChar_t                                                         iPhotonMCInfo;                                                                          //!
109                                                                                         // 0: garbage,
110                                                                                         // 1: background
111                                                                                         // 2: secondary photon not from eta or k0s,
112                                                                                         // 3: secondary photon from eta, 
113                                                                                         // 4: secondary photon from k0s, 
114                                                                                         // 5: dalitz
115                                                                                         // 6: primary gamma
116                 TH2F                                                            **hESDMotherInvMassPt;                                                          //!
117                 THnSparseF                                                      **sESDMotherInvMassPtZM;                                                        //!
118                 TH2F                                                            **hESDMotherBackInvMassPt;                                                      //!
119                 THnSparseF                                                      **sESDMotherBackInvMassPtZM;                                            //!
120                 TH2F                                                            **hESDMotherInvMassEalpha;                                                      //!
121                 TH2F                                                            **hESDMotherPi0PtY;                                                                     //!
122                 TH2F                                                            **hESDMotherEtaPtY;                                                                     //!
123                 TH2F                                                            **hESDMotherPi0PtAlpha;                                                         //!
124                 TH2F                                                            **hESDMotherEtaPtAlpha;                                                         //!
125                 TH2F                                                            **hESDMotherPi0PtOpenAngle;                                                     //!
126                 TH2F                                                            **hESDMotherEtaPtOpenAngle;                                                     //!
127                 TH1I                                                            **hMCHeaders;                                                                           //!
128                 TH1F                                                            **hMCAllGammaPt;                                                                        //!
129                 TH1F                                                            **hMCDecayGammaPi0Pt;                                                           //!
130                 TH1F                                                            **hMCDecayGammaRhoPt;                                                           //!
131                 TH1F                                                            **hMCDecayGammaEtaPt;                                                           //!
132                 TH1F                                                            **hMCDecayGammaOmegaPt;                                                         //!
133                 TH1F                                                            **hMCDecayGammaEtapPt;                                                          //!
134                 TH1F                                                            **hMCDecayGammaPhiPt;                                                           //!
135                 TH1F                                                            **hMCDecayGammaSigmaPt;                                                         //!
136                 TH1F                                                            **hMCConvGammaPt;                                                                       //!
137                 TH1F                                                            **hMCConvGammaR;                                                                        //!
138                 TH1F                                                            **hMCConvGammaEta;                                                                      //!
139                 TH1F                                                            **hMCPi0Pt;                                                                                     //!
140                 TH1F                                                            **hMCPi0WOWeightPt;                                                                     //!
141                 TH1F                                                            **hMCEtaPt;                                                                                     //!
142                 TH1F                                                            **hMCEtaWOWeightPt;                                                                     //!
143                 TH1F                                                            **hMCPi0InAccPt;                                                                        //!
144                 TH1F                                                            **hMCEtaInAccPt;                                                                        //!
145                 TH2F                                                            **hMCPi0PtY;                                                                            //!
146                 TH2F                                                            **hMCEtaPtY;                                                                            //!
147                 TH2F                                                            **hMCPi0PtAlpha;                                                                        //!
148                 TH2F                                                            **hMCEtaPtAlpha;                                                                        //!
149                 TH1F                                                            **hMCK0sPt;                                                                                     //!
150                 TH1F                                                            **hMCK0sWOWeightPt;                                                                     //!
151                 TH2F                                                            **hMCK0sPtY;                                                                            //!
152                 TH2F                                                            **hMCSecPi0PtvsSource;                                                          //!
153                 TH1F                                                            **hMCSecPi0Source;                                                                      //!
154                 TH1F                                                            **hMCSecEtaPt;                                                                          //!
155                 TH1F                                                            **hMCSecEtaSource;                                                                      //!
156                 TH2F                                                            **hESDTrueMotherInvMassPt;                                                      //!
157                 TH2F                                                            **hESDTruePrimaryMotherInvMassPt;                                       //!
158                 TH2F                                                            **hESDTruePrimaryMotherW0WeightingInvMassPt;            //!
159                 TProfile2D                                                      **pESDTruePrimaryMotherWeightsInvMassPt;                        //!
160                 TH2F                                                            **hESDTruePrimaryPi0MCPtResolPt;                                        //!
161                 TH2F                                                            **hESDTruePrimaryEtaMCPtResolPt;                                        //!
162                 TH2F                                                            **hESDTrueSecondaryMotherInvMassPt;                                     //!
163                 TH2F                                                            **hESDTrueSecondaryMotherFromK0sInvMassPt;                      //!
164                 TH1F                                                            **hESDTrueK0sWithPi0DaughterMCPt;                                       //!
165                 TH2F                                                            **hESDTrueSecondaryMotherFromEtaInvMassPt;                      //!
166                 TH1F                                                            **hESDTrueEtaWithPi0DaughterMCPt;                                       //!
167                 TH2F                                                            **hESDTrueSecondaryMotherFromLambdaInvMassPt;           //!
168                 TH1F                                                            **hESDTrueLambdaWithPi0DaughterMCPt;                            //!
169                 TH2F                                                            **hESDTrueBckGGInvMassPt;                                                       //!
170                 TH2F                                                            **hESDTrueBckContInvMassPt;                                                     //!
171                 TH2F                                                            **hESDTruePi0PtY;                                                                       //!
172                 TH2F                                                            **hESDTrueEtaPtY;                                                                       //!
173                 TH2F                                                            **hESDTruePi0PtAlpha;                                                           //!
174                 TH2F                                                            **hESDTrueEtaPtAlpha;                                                           //!
175                 TH2F                                                            **hESDTruePi0PtOpenAngle;                                                       //!
176                 TH2F                                                            **hESDTrueEtaPtOpenAngle;                                                       //!
177                 TH2F                                                            **hESDTrueMotherDalitzInvMassPt;                                        //!
178                 TH1F                                                            **hESDTrueConvGammaPt;                                                          //!
179                 TH1F                                                            **hESDTrueConvGammaR;                                                           //!
180                 TH1F                                                            **hESDTrueConvGammaPtMC;                                                        //!
181                 TH1F                                                            **hESDTrueConvGammaRMC;                                                 //!
182                 TH1F                                                            **hESDTrueConvGammaEta;                                                         //!
183                 TH2F                                                            **hESDCombinatorialPt;                                                          //!
184                 TH1F                                                            **hESDTruePrimaryConvGammaPt;                                           //!
185                 TH2F                                                            **hESDTruePrimaryConvGammaESDPtMCPt;                            //!
186                 TH1F                                                            **hESDTrueSecondaryConvGammaPt;                                         //!
187                 TH1F                                                            **hESDTrueSecondaryConvGammaFromXFromK0sPt;                     //!
188                 TH1F                                                            **hESDTrueSecondaryConvGammaFromXFromLambdaPt;          //!
189                 TH2F                                                            **hESDTrueDalitzPsiPairDeltaPhi;                                        //!
190                 TH2F                                                            **hESDTrueGammaPsiPairDeltaPhi;                                         //!
191                 TH1I                                                            **hNEvents;                                                                                     //!
192                 TH1I                                                            **hNGoodESDTracks;                                                                      //!
193                 TH1I                                                            **hNGammaCandidates;                                                            //!
194                 TH2F                                                            **hNGoodESDTracksVsNGammaCanditates;                            //!
195                 TH1I                                                            **hNV0Tracks;                                                                           //!
196                 TProfile                                                        **hEtaShift;                                                                            //!
197                 TTree                                                           **tESDMesonsInvMassPtDcazMinDcazMaxFlag;                        //!
198                 Float_t                                                         fInvMass;                                                                                       //!
199                 Float_t                                                         fPt;                                                                                            //!
200                 Float_t                                                         fDCAzGammaMin;                                                                          //!
201                 Float_t                                                         fDCAzGammaMax;                                                                          //!
202                 UChar_t                                                         iFlag;                                                                                          //!
203                 UChar_t                                                         iMesonMCInfo;                                                                           //!
204                                                                                         // 0: garbage,
205                                                                                         // 1: background
206                                                                                         // 2: secondary meson not from eta or k0s,
207                                                                                         // 3: secondary meson from eta, 
208                                                                                         // 4: secondary meson from k0s, 
209                                                                                         // 5: dalitz
210                                                                                         // 6: primary meson gamma-gamma-channel
211                 Double_t                                                        fEventPlaneAngle;                                                                       // EventPlaneAngle
212                 TRandom3                                                        fRandom;                                                                                        //
213                 Int_t                                                           fnGammaCandidates;                                                                      //
214                 Double_t                                                        *fUnsmearedPx;                                                                          //[fnGammaCandidates]
215                 Double_t                                                        *fUnsmearedPy;                                                                          //[fnGammaCandidates]
216                 Double_t                                                        *fUnsmearedPz;                                                                          //[fnGammaCandidates]
217                 Double_t                                                        *fUnsmearedE;                                                                           //[fnGammaCandidates]
218                 Int_t                                                           *fMCStackPos;                                                                           //[fnGammaCandidates]
219                 Int_t                                                           *fMCStackNeg;                                                                           //[fnGammaCandidates]
220                 Int_t                                                           *fESDArrayPos;                                                                          //[fnGammaCandidates]
221                 Int_t                                                           *fESDArrayNeg;                                                                          //[fnGammaCandidates]
222                 Int_t                                                           fnCuts;                                                                                         //
223                 Int_t                                                           fiCut;                                                                                          //
224                 Bool_t                                                          fMoveParticleAccordingToVertex;                                         //
225                 Int_t                                                           fIsHeavyIon;                                                                            //
226                 Bool_t                                                          fDoMesonAnalysis;                                                                       //
227                 Int_t                                                           fDoMesonQA;                                                                                     //
228                 Int_t                                                           fDoPhotonQA;                                                                            //
229                 Bool_t                                                          fIsFromMBHeader;                                                                        //
230                 Bool_t                                                          fIsMC;                                                                                          //
231
232         private:
233
234                 AliAnalysisTaskGammaConvV1(const AliAnalysisTaskGammaConvV1&); // Prevent copy-construction
235                 AliAnalysisTaskGammaConvV1 &operator=(const AliAnalysisTaskGammaConvV1&); // Prevent assignment
236                 ClassDef(AliAnalysisTaskGammaConvV1, 14);
237 };
238
239 #endif