]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskGammaConvFlow.h
Fixed new version
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskGammaConvFlow.h
1 #ifndef ALIANLYSISTASKGAMMACONVFLOW_cxx
2 #define ALIANLYSISTASKGAMMACONVFLOW_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
18 class AliFlowTrackCuts;
19 class AliFlowTrack;
20 class AliFlowEvent;
21 class AliFlowCandidateTrack;
22 class AliFlowEventSimple;
23
24
25 class AliAnalysisTaskGammaConvFlow : public AliAnalysisTaskSE {
26     
27 public:
28     AliAnalysisTaskGammaConvFlow();
29     AliAnalysisTaskGammaConvFlow(const char *name);
30     virtual ~AliAnalysisTaskGammaConvFlow();
31     
32     virtual void   UserCreateOutputObjects();
33     virtual Bool_t Notify();
34     virtual void   UserExec(Option_t *);
35     virtual void   Terminate(const Option_t*);
36     
37     void SetIsHeavyIon(Int_t flag){
38         fIsHeavyIon = flag;
39         
40     }
41     
42     void SetDoMesonAnalysis(Bool_t flag){fDoMesonAnalysis = flag;}
43     void SetDoMesonQA(Int_t flag){fDoMesonQA = flag;}
44     void SetDoPhotonQA(Int_t flag){fDoPhotonQA = flag;}
45     void ProcessPhotonCandidates();
46   //  void CalculatePi0Candidates();
47     //void CalculateBackground();
48   //  void CalculateBackgroundRP();
49
50 //     void RelabelAODPhotonCandidates(Bool_t mode);
51
52     //void RotateParticle(AliAODConversionPhoton *gamma);
53     //void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP);
54     
55     void SetEventCutList(Int_t nCuts, TList *CutArray){
56         fnCuts = nCuts;
57         fEventCutArray = CutArray;
58     }
59     void SetConversionCutList(Int_t nCuts, TList *CutArray){
60         fnCuts = nCuts;
61         fCutArray = CutArray;
62     }
63  //   void SetMesonCutList(Int_t nCuts, TList *CutArray){
64  //       fnCuts = nCuts;
65  //       fMesonCutArray = CutArray;
66  //   }
67     
68     // BG HandlerSettings
69    // void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
70 //     void FillPhotonCombinatorialBackgroundHist(AliAODConversionPhoton *TruePhotonCandidate, Int_t pdgCode[]);
71    // void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
72     void UpdateEventByEventData();
73     void SetLogBinningXTH2(TH2* histoRebin);
74   //  Int_t GetSourceClassification(Int_t daughter, Int_t pdgCode);
75     
76     
77     template <typename T> void           SetNullCuts(T* aod);
78     void                                 PrepareFlowEvent(Int_t iMulti, AliFlowEvent *FlowEv) const;
79     void                                 SetRPCuts(AliFlowTrackCuts *cutsRP) { fCutsRP = cutsRP; }
80     void                                 ProcessPhotonCandidatesforV2();
81     
82     
83 protected:
84         AliV0ReaderV1                                           *fV0Reader;                                                                                     //
85         AliGammaConversionAODBGHandler          **fBGHandler;                                                                           //
86         AliConversionAODBGHandlerRP             **fBGHandlerRP;                                                                         //
87         AliVEvent                                                       *fInputEvent;                                                                           //
88 //    AliMCEvent                                                        *fMCEvent;                                                                                      //
89 //    AliStack                                                  *fMCStack;                                                                                      //
90         TList                                                           **fCutFolder;                                                                           //
91         TList                                                           **fESDList;                                                                                     //
92         TList                                                           **fBackList;                                                                            //
93         TList                                                           **fMotherList;                                                                          //
94         TList                                                           **fPhotonDCAList;                                                                       //
95         TList                                                           **fMesonDCAList;                                                                        //
96 //   TList                                                              **fTrueList;                                                                            //
97 //   TList                                                              **fMCList;                                                                                      //
98         TList                                                           **fHeaderNameList;                                                                      //
99         TList                                                           *fOutputContainer;                                                                      //
100         TClonesArray                                            *fReaderGammas;                                                                         //
101         TList                                                           *fGammaCandidates;                                                                      //
102         TList                                                           *fEventCutArray;                                                                        //
103         AliConvEventCuts                                        *fEventCuts;                                                                            //
104         TList                                                           *fCutArray;                                                                                     //
105         AliConversionPhotonCuts                         *fConversionCuts;                                                                       //
106         TList                                                           *fMesonCutArray;                                                                        //
107         AliConversionMesonCuts                          *fMesonCuts;                                                                            //
108         TH1F                                                            **hESDConvGammaPt;                                                                      //
109         TH1F                                                            **hESDConvGammaR;                                                                       //
110         TH1F                                                            **hESDConvGammaEta;                                                                     //
111         Float_t                                                         fPtGamma;                                                                                       //
112         Float_t                                                         fDCAzPhoton;                                                                            //
113         Float_t                                                         fRConvPhoton;                                                                           //
114         Float_t                                                         fEtaPhoton;                                                                                     //
115         UChar_t                                                         iCatPhoton;                                                                                     //
116         UChar_t                                                         iPhotonMCInfo;                                                                          //
117         // 0: garbage,
118         // 1: background
119         // 2: secondary photon not from eta or k0s,
120         // 3: secondary photon from eta,
121         // 4: secondary photon from k0s,
122         // 5: dalitz
123         // 6: primary gamma
124         TH2F                                                            **hESDMotherInvMassPt;                                                          //
125 //  THnSparseF                                                  **sESDMotherInvMassPtZM;                                                        //
126         TH2F                                                            **hESDMotherBackInvMassPt;                                                      //
127 //  THnSparseF                                                  **sESDMotherBackInvMassPtZM;                                            //
128         TH2F                                                            **hESDMotherInvMassEalpha;                                                      //
129         TH2F                                                            **hESDMotherPi0PtY;                                                                     //
130         TH2F                                                            **hESDMotherEtaPtY;                                                                     //
131         TH2F                                                            **hESDMotherPi0PtAlpha;                                                         //
132         TH2F                                                            **hESDMotherEtaPtAlpha;                                                         //
133         TH2F                                                            **hESDMotherPi0PtOpenAngle;                                                     //
134         TH2F                                                            **hESDMotherEtaPtOpenAngle;                                                     //
135
136         TH1I                                                            **hNEvents;                                                                                     //
137         TH1I                                                            **hNGoodESDTracks;                                                                      //
138         TH1I                                                            **hNGammaCandidates;                                                            //
139         TH2F                                                            **hNGoodESDTracksVsNGammaCanditates;                            //
140         TH1I                                                            **hNV0Tracks;                                                                           //
141         TProfile                                                        **hEtaShift;                                                                            //
142         TTree                                                           **tESDMesonsInvMassPtDcazMinDcazMaxFlag;                        //
143         Float_t                                                         fInvMass;                                                                                       //
144         Float_t                                                         fPt;                                                                                            //
145         Float_t                                                         fDCAzGammaMin;                                                                          //
146         Float_t                                                         fDCAzGammaMax;                                                                          //
147         UChar_t                                                         iFlag;                                                                                          //
148         UChar_t                                                         iMesonMCInfo;                                                                           //
149         // 0: garbage,
150         // 1: background
151         // 2: secondary meson not from eta or k0s,
152         // 3: secondary meson from eta,
153         // 4: secondary meson from k0s,
154         // 5: dalitz
155         // 6: primary meson gamma-gamma-channel
156         Double_t                                                        fEventPlaneAngle;                                                                       // EventPlaneAngle
157         TRandom3                                                        fRandom;                                                                                        //
158         Int_t                                                           fnGammaCandidates;                                                                      //
159         Double_t                                                        *fUnsmearedPx;                                                                          //[fnGammaCandidates]
160         Double_t                                                        *fUnsmearedPy;                                                                          //[fnGammaCandidates]
161         Double_t                                                        *fUnsmearedPz;                                                                          //[fnGammaCandidates]
162         Double_t                                                        *fUnsmearedE;                                                                           //[fnGammaCandidates]
163         Int_t                                                           *fMCStackPos;                                                                           //[fnGammaCandidates]
164         Int_t                                                           *fMCStackNeg;                                                                           //[fnGammaCandidates]
165         Int_t                                                           *fESDArrayPos;                                                                          //[fnGammaCandidates]
166         Int_t                                                           *fESDArrayNeg;                                                                          //[fnGammaCandidates]
167         Int_t                                                           fnCuts;                                                                                         //
168         Int_t                                                           fiCut;                                                                                          //
169         Bool_t                                                          fMoveParticleAccordingToVertex;                                         //
170         Int_t                                                           fIsHeavyIon;                                                                            //
171         Bool_t                                                          fDoMesonAnalysis;                                                                       //
172         Int_t                                                           fDoMesonQA;                                                                                     //
173         Int_t                                                           fDoPhotonQA;                                                                            //
174         Bool_t                                                          fIsFromMBHeader;                                                                        //
175         TH1D                                    *fhistoEPVZ;                                                                            //!
176
177     
178 private:
179         Bool_t               fDebug; //! enable debug mode
180         AliFlowTrackCuts     *fCutsRP; // track cuts for reference particles
181         AliFlowTrackCuts     *fNullCuts; // dummy cuts for flow event tracks
182         AliFlowEvent         *fFlowEvent; //! flow events Inclusive e
183
184         AliAnalysisTaskGammaConvFlow(const AliAnalysisTaskGammaConvFlow&); // Prevent copy-construction
185         AliAnalysisTaskGammaConvFlow &operator=(const AliAnalysisTaskGammaConvFlow&); // Prevent assignment
186         ClassDef(AliAnalysisTaskGammaConvFlow, 2);
187 };
188
189 #endif