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