]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/AliFlowTasks/AliAnalysisTaskFlowEvent.h
f8fa3a2cd9971e9a0b53ed11fc0843f9b010c17f
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowTasks / AliAnalysisTaskFlowEvent.h
1 /////////////////////////////////////////////////////
2 // AliAnalysisTaskFlowEvent:
3 // analysis task to fill the flow event 
4 // and make it available to the flow analysis methods.
5 //////////////////////////////////////////////////////
6
7 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
8 * See cxx source for full Copyright notice */
9 /* $Id: $ */
10
11 #ifndef AliAnalysisTaskFlowEvent_H
12 #define AliAnalysisTaskFlowEvent_H
13
14 class AliCFManager;
15 class AliFlowEventCuts;
16 class AliFlowTrackCuts;
17 class AliFlowEventSimpleMaker;
18 class TList;
19 class TRandom3;
20 class AliAnalysisTaskSE;
21 class TString;
22 class AliESDpid;
23 class AliTOFcalib;
24 class AliTOFT0maker;
25
26 class AliAnalysisTaskFlowEvent : public AliAnalysisTaskSE {
27  public:
28   AliAnalysisTaskFlowEvent();
29   AliAnalysisTaskFlowEvent(const char *name, TString RPtype, Bool_t QAon, UInt_t seed=666);
30   virtual ~AliAnalysisTaskFlowEvent();
31   
32   virtual void   UserCreateOutputObjects();
33   virtual void   UserExec(Option_t *option);
34   virtual void   Terminate(Option_t *);
35   virtual void   NotifyRun();
36
37   void    SetAnalysisType(TString type) { this->fAnalysisType = type; }
38   TString GetAnalysisType() const       { return this->fAnalysisType; }
39
40   void    SetRPType(TString rptype) { this->fRPType = rptype; }
41   TString GetRPType() const         { return this->fRPType; }
42
43   void    SetMinMult(Int_t multmin)    {this->fMinMult = multmin; }
44   Int_t   GetMinMult() const           {return this->fMinMult; }
45   void    SetMaxMult(Int_t multmax)    {this->fMaxMult = multmax; }
46   Int_t   GetMaxMult() const           {return this->fMaxMult; }
47
48   void SetSubeventEtaRange(Double_t minA, Double_t maxA, Double_t minB, Double_t maxB)
49     {this->fMinA = minA; this->fMaxA = maxA; this->fMinB = minB; this->fMaxB = maxB; }
50   Double_t GetMinA() const {return this->fMinA;}
51   Double_t GetMaxA() const {return this->fMaxA;}
52   Double_t GetMinB() const {return this->fMinB;}
53   Double_t GetMaxB() const {return this->fMaxB;}
54   
55   void DefineDeadZone( Double_t etaMin, Double_t etaMax, Double_t phiMin, Double_t phiMax )
56   {this->fExcludedEtaMin = etaMin; this->fExcludedEtaMax = etaMax; 
57     this->fExcludedPhiMin = phiMin; this->fExcludedPhiMax = phiMax; }
58
59   void          SetCutsEvent(AliFlowEventCuts* cutsEvent) {fCutsEvent=cutsEvent;}
60   AliFlowEventCuts* GetCutsEvent() const {return fCutsEvent;}
61   void          SetCutsRP(AliFlowTrackCuts* cutsRP) {fCutsRP=cutsRP;}
62   AliFlowTrackCuts* GetCutsRP() const {return fCutsRP;}
63   void          SetCutsPOI(AliFlowTrackCuts* cutsPOI) {fCutsPOI=cutsPOI;}
64   AliFlowTrackCuts* GetCutsPOI() const {return fCutsPOI;}
65
66   void          SetCFManager1(AliCFManager* cfmgr) {this->fCFManager1 = cfmgr; } 
67   AliCFManager* GetCFManager1()           {return this->fCFManager1; }
68   void          SetCFManager2(AliCFManager* cfmgr) {this->fCFManager2 = cfmgr; } 
69   AliCFManager* GetCFManager2()           {return this->fCFManager2; }
70   void          SetQAList1(TList* list)   {this->fQAInt = list; }
71   TList*        GetQAList1()              {return this->fQAInt; }
72   void          SetQAList2(TList* list)   {this->fQADiff = list; }
73   TList*        GetQAList2()              {return this->fQADiff; }
74   void          SetQAOn(Bool_t kt)        {this->fQA = kt; }
75   Bool_t        GetQAOn()                 {return this->fQA; }
76
77   // setters for common constants
78   void SetNbinsMult( Int_t i ) { fNbinsMult = i; }
79   void SetNbinsPt( Int_t i )   { fNbinsPt = i; }
80   void SetNbinsPhi( Int_t i )  { fNbinsPhi = i; }
81   void SetNbinsEta( Int_t i )  { fNbinsEta = i; }
82   void SetNbinsQ( Int_t i )    { fNbinsQ = i; }
83    
84   void SetMultMin( Double_t i ) { fMultMin = i; }
85   void SetMultMax( Double_t i ) { fMultMax = i; }
86   void SetPtMin( Double_t i )   { fPtMin = i; }
87   void SetPtMax( Double_t i )   { fPtMax = i; }
88   void SetPhiMin( Double_t i )  { fPhiMin = i; }
89   void SetPhiMax( Double_t i )  { fPhiMax = i; }
90   void SetEtaMin( Double_t i )  { fEtaMin = i; }
91   void SetEtaMax( Double_t i )  { fEtaMax = i; }
92   void SetQMin( Double_t i )    { fQMin = i; }
93   void SetQMax( Double_t i )    { fQMax = i; }
94   // end setters common constants
95
96   // setters for adding by hand flow values (afterburner)
97   void SetAfterburnerOn(Bool_t b=kTRUE) {fAfterburnerOn=b;}
98   void SetNonFlowNumberOfTrackClones(Int_t n) {fNonFlowNumberOfTrackClones=n;}
99   void SetFlow(Double_t v1, Double_t v2, Double_t v3, Double_t v4) {fV1=v1;fV2=v2;fV3=v3;fV4=v4;}
100   // end setters afterburner
101
102   //PID
103   void recalibTOF(AliESDEvent *event);
104   void SetTOFresolution(Float_t res) {fTOFresolution=res;}
105
106  private:
107
108   AliAnalysisTaskFlowEvent(const AliAnalysisTaskFlowEvent& aAnalysisTask);
109   AliAnalysisTaskFlowEvent& operator=(const AliAnalysisTaskFlowEvent& aAnalysisTask); 
110
111   //  TFile*        fOutputFile;    // temporary output file for testing
112   //  AliESDEvent*  fESD;           // ESD object
113   //  AliAODEvent*  fAOD;           // AOD object
114   TString       fAnalysisType;      // can be MC, ESD or AOD
115   TString       fRPType;            // can be Global or Tracklet or FMD
116   AliCFManager* fCFManager1;        // correction framework manager
117   AliCFManager* fCFManager2;        // correction framework manager
118   AliFlowEventCuts* fCutsEvent;     //event cuts
119   AliFlowTrackCuts* fCutsRP;        //cuts for RPs
120   AliFlowTrackCuts* fCutsPOI;       //cuts for POIs
121   TList*        fQAInt;             // QA histogram list
122   TList*        fQADiff;            // QA histogram list
123   Int_t         fMinMult;           // Minimum multiplicity from tracks selected using CORRFW
124   Int_t         fMaxMult;           // Maximum multiplicity from tracks selected using CORRFW 
125   Double_t      fMinA;              // Minimum of eta range for subevent A
126   Double_t      fMaxA;              // Maximum of eta range for subevent A
127   Double_t      fMinB;              // Minimum of eta range for subevent B
128   Double_t      fMaxB;              // Maximum of eta range for subevent B
129
130   Bool_t fQA;                       // flag to set the filling of the QA hostograms
131
132   // setters for common constants
133   //histogram sizes
134   Int_t  fNbinsMult; // histogram size
135   Int_t  fNbinsPt;   // histogram size
136   Int_t  fNbinsPhi;  // histogram size
137   Int_t  fNbinsEta;  // histogram size
138   Int_t  fNbinsQ;    // histogram size
139  
140   // Histograms limits
141   Double_t  fMultMin;  // histogram limit 
142   Double_t  fMultMax;  // histogram limit
143   Double_t  fPtMin;    // histogram limit
144   Double_t  fPtMax;    // histogram limit
145   Double_t  fPhiMin;   // histogram limit
146   Double_t  fPhiMax;   // histogram limit
147   Double_t  fEtaMin;   // histogram limit
148   Double_t  fEtaMax;   // histogram limit
149   Double_t  fQMin;     // histogram limit
150   Double_t  fQMax;     // histogram limit
151   // end common constants
152
153   // Excluding a range
154   Double_t  fExcludedEtaMin;  // excluded region limit 
155   Double_t  fExcludedEtaMax;  // excluded region limit 
156   Double_t  fExcludedPhiMin;  // excluded region limit 
157   Double_t  fExcludedPhiMax;  // excluded region limit 
158   // End of excluding a range
159
160   // values afterburner
161   Bool_t    fAfterburnerOn;              // do we afterburn?
162   Int_t     fNonFlowNumberOfTrackClones; // number of times to clone the particles (nonflow) 
163   Double_t  fV1;        // Add Flow. Must be in range [0,0.5].
164   Double_t  fV2;        // Add Flow. Must be in range [0,0.5].
165   Double_t  fV3;        // Add Flow. Must be in range [0,0.5].
166   Double_t  fV4;        // Add Flow. Must be in range [0,0.5].
167     
168   TRandom3* fMyTRandom3;     // TRandom3 generator
169   // end afterburner
170   
171   //PID stuff
172   AliESDpid *fESDpid;//pid object
173   Float_t       fTOFresolution;
174   AliTOFcalib*   fTOFcalib;
175   AliTOFT0maker* ftofT0maker; 
176
177   ClassDef(AliAnalysisTaskFlowEvent, 1); // example of analysis
178 };
179
180 #endif
181