]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/FLOW/Tasks/AliAnalysisTaskFlowEvent.h
initial checkin of the new flow development - from an OLD diff!
[u/mrichter/AliRoot.git] / PWG / FLOW / Tasks / AliAnalysisTaskFlowEvent.h
CommitLineData
fdff44c8 1/////////////////////////////////////////////////////
2// AliAnalysisTaskFlowEvent:
3// analysis task to fill the flow event
4// and make it available to the flow analysis methods.
5//////////////////////////////////////////////////////
6
1c1d4332 7/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
8* See cxx source for full Copyright notice */
9/* $Id: $ */
10
cc0afcfc 11#ifndef ALIANALYSISTASKFLOWEVENT_H
12#define ALIANALYSISTASKFLOWEVENT_H
94cd9888 13
8eca5d19 14#include "AliFlowTrackSimple.h"
15
1c1d4332 16class AliCFManager;
daf66719 17class AliFlowEventCuts;
18class AliFlowTrackCuts;
1c1d4332 19class AliFlowEventSimpleMaker;
cfdbb54f 20class AliFlowEvent;
1c1d4332 21class TList;
c926fac9 22class TF1;
489fdf79 23class TRandom3;
fbdb53fa 24class AliAnalysisTaskSE;
25class TString;
32b846cd 26class AliESDpid;
1c1d4332 27
65201059 28class AliAnalysisTaskFlowEvent : public AliAnalysisTaskSE {
1c1d4332 29 public:
30 AliAnalysisTaskFlowEvent();
6e214c87 31 AliAnalysisTaskFlowEvent(const char *name, TString RPtype, Bool_t QAon, UInt_t seed=666, Bool_t bCandidates=kFALSE);
1c1d4332 32 virtual ~AliAnalysisTaskFlowEvent();
33
65201059 34 virtual void UserCreateOutputObjects();
35 virtual void UserExec(Option_t *option);
1c1d4332 36 virtual void Terminate(Option_t *);
32b846cd 37 virtual void NotifyRun();
1c1d4332 38
f6f8c3fc 39 void SetAnalysisType(TString type) { this->fAnalysisType = type; }
40 TString GetAnalysisType() const { return this->fAnalysisType; }
1c1d4332 41
f6f8c3fc 42 void SetRPType(TString rptype) { this->fRPType = rptype; }
43 TString GetRPType() const { return this->fRPType; }
ef4799a7 44
fdff44c8 45 void SetMinMult(Int_t multmin) {this->fMinMult = multmin; }
46 Int_t GetMinMult() const {return this->fMinMult; }
47 void SetMaxMult(Int_t multmax) {this->fMaxMult = multmax; }
48 Int_t GetMaxMult() const {return this->fMaxMult; }
fdff44c8 49
7a01f4a7 50 void SetSubeventEtaRange(Double_t minA, Double_t maxA, Double_t minB, Double_t maxB)
51 {this->fMinA = minA; this->fMaxA = maxA; this->fMinB = minB; this->fMaxB = maxB; }
52 Double_t GetMinA() const {return this->fMinA;}
53 Double_t GetMaxA() const {return this->fMaxA;}
54 Double_t GetMinB() const {return this->fMinB;}
55 Double_t GetMaxB() const {return this->fMaxB;}
56
f6f8c3fc 57 void DefineDeadZone( Double_t etaMin, Double_t etaMax, Double_t phiMin, Double_t phiMax )
58 {this->fExcludedEtaMin = etaMin; this->fExcludedEtaMax = etaMax;
59 this->fExcludedPhiMin = phiMin; this->fExcludedPhiMax = phiMax; }
60
daf66719 61 void SetCutsEvent(AliFlowEventCuts* cutsEvent) {fCutsEvent=cutsEvent;}
62 AliFlowEventCuts* GetCutsEvent() const {return fCutsEvent;}
8fa6a5fa 63 void SetCutsRP(AliFlowTrackCuts* cutsRP) {fCutContainer->Add(cutsRP); fCutsRP=cutsRP;}
8eca5d19 64 AliFlowTrackCuts* GetCutsRP() const {return fCutsRP;} //to be reimplemented
8fa6a5fa 65 void SetCutsPOI(AliFlowTrackCuts* cutsPOI) {fCutContainer->Add(cutsPOI); fCutsPOI=cutsPOI;}
8eca5d19 66 AliFlowTrackCuts* GetCutsPOI() const {return fCutsPOI;} //to be reimplemented
daf66719 67
7183fe85 68 void SetCFManager1(AliCFManager* cfmgr) {this->fCFManager1 = cfmgr; }
cc0afcfc 69 AliCFManager* GetCFManager1() const {return this->fCFManager1; }
7183fe85 70 void SetCFManager2(AliCFManager* cfmgr) {this->fCFManager2 = cfmgr; }
cc0afcfc 71 AliCFManager* GetCFManager2() const {return this->fCFManager2; }
72 TList* GetQAList() const {return fQAList; }
499fe731 73 void SetQAOn(Bool_t kt) {fQAon = kt; }
cc0afcfc 74 Bool_t GetQAOn() const {return fQAon; }
7a01f4a7 75
ad4d7e4e 76 void SetShuffleTracks(Bool_t b) {fShuffleTracks=b;}
77
d459546b 78 // setters for common constants
79 void SetNbinsMult( Int_t i ) { fNbinsMult = i; }
80 void SetNbinsPt( Int_t i ) { fNbinsPt = i; }
81 void SetNbinsPhi( Int_t i ) { fNbinsPhi = i; }
82 void SetNbinsEta( Int_t i ) { fNbinsEta = i; }
83 void SetNbinsQ( Int_t i ) { fNbinsQ = i; }
15725198 84 void SetNbinsMass( Int_t i ) { fNbinsMass = i; }
d459546b 85
86 void SetMultMin( Double_t i ) { fMultMin = i; }
87 void SetMultMax( Double_t i ) { fMultMax = i; }
88 void SetPtMin( Double_t i ) { fPtMin = i; }
89 void SetPtMax( Double_t i ) { fPtMax = i; }
90 void SetPhiMin( Double_t i ) { fPhiMin = i; }
91 void SetPhiMax( Double_t i ) { fPhiMax = i; }
92 void SetEtaMin( Double_t i ) { fEtaMin = i; }
93 void SetEtaMax( Double_t i ) { fEtaMax = i; }
94 void SetQMin( Double_t i ) { fQMin = i; }
95 void SetQMax( Double_t i ) { fQMax = i; }
15725198 96 void SetMassMin( Double_t i ) { fMassMin = i; }
97 void SetMassMax( Double_t i ) { fMassMax = i; }
644f1368 98 void SetHistWeightvsPhiMin( Double_t i ) {fHistWeightvsPhiMin=i;}
99 void SetHistWeightvsPhiMax( Double_t i ) {fHistWeightvsPhiMax=i;}
d459546b 100 // end setters common constants
101
102 // setters for adding by hand flow values (afterburner)
54089829 103 void SetAfterburnerOn(Bool_t b=kTRUE) {fAfterburnerOn=b;}
104 void SetNonFlowNumberOfTrackClones(Int_t n) {fNonFlowNumberOfTrackClones=n;}
c926fac9 105 void SetPtDifferentialV2( TF1 *gPtV2) {
106 fDifferentialV2 = gPtV2;}
1a80f9f6 107 void SetFlow( Double_t v1, Double_t v2, Double_t v3=0.0, Double_t v4=0.0, Double_t v5=0.0)
108 {fV1=v1;fV2=v2;fV3=v3;fV4=v4;fV5=v5;}
d459546b 109 // end setters afterburner
1c1d4332 110
111 private:
112
113 AliAnalysisTaskFlowEvent(const AliAnalysisTaskFlowEvent& aAnalysisTask);
114 AliAnalysisTaskFlowEvent& operator=(const AliAnalysisTaskFlowEvent& aAnalysisTask);
115
d459546b 116 // TFile* fOutputFile; // temporary output file for testing
117 // AliESDEvent* fESD; // ESD object
118 // AliAODEvent* fAOD; // AOD object
119 TString fAnalysisType; // can be MC, ESD or AOD
120 TString fRPType; // can be Global or Tracklet or FMD
121 AliCFManager* fCFManager1; // correction framework manager
122 AliCFManager* fCFManager2; // correction framework manager
daf66719 123 AliFlowEventCuts* fCutsEvent; //event cuts
124 AliFlowTrackCuts* fCutsRP; //cuts for RPs
125 AliFlowTrackCuts* fCutsPOI; //cuts for POIs
8eca5d19 126 TList* fCutContainer; //contains the cut objects
499fe731 127 TList* fQAList; // QA histogram list
d459546b 128 Int_t fMinMult; // Minimum multiplicity from tracks selected using CORRFW
129 Int_t fMaxMult; // Maximum multiplicity from tracks selected using CORRFW
130 Double_t fMinA; // Minimum of eta range for subevent A
131 Double_t fMaxA; // Maximum of eta range for subevent A
132 Double_t fMinB; // Minimum of eta range for subevent B
133 Double_t fMaxB; // Maximum of eta range for subevent B
134
499fe731 135 Bool_t fQAon; // flag to set the filling of the QA hostograms
6e214c87 136 Bool_t fLoadCandidates; // true if reciving candidates collection
d459546b 137
138 // setters for common constants
139 //histogram sizes
140 Int_t fNbinsMult; // histogram size
141 Int_t fNbinsPt; // histogram size
142 Int_t fNbinsPhi; // histogram size
143 Int_t fNbinsEta; // histogram size
144 Int_t fNbinsQ; // histogram size
15725198 145 Int_t fNbinsMass; // histogram size
d459546b 146
147 // Histograms limits
148 Double_t fMultMin; // histogram limit
149 Double_t fMultMax; // histogram limit
150 Double_t fPtMin; // histogram limit
151 Double_t fPtMax; // histogram limit
152 Double_t fPhiMin; // histogram limit
153 Double_t fPhiMax; // histogram limit
154 Double_t fEtaMin; // histogram limit
155 Double_t fEtaMax; // histogram limit
156 Double_t fQMin; // histogram limit
157 Double_t fQMax; // histogram limit
15725198 158 Double_t fMassMin; // histogram limit
159 Double_t fMassMax; // histogram limit
644f1368 160 Double_t fHistWeightvsPhiMin; //histogram limit
161 Double_t fHistWeightvsPhiMax; //histogram limit
d459546b 162 // end common constants
163
f6f8c3fc 164 // Excluding a range
165 Double_t fExcludedEtaMin; // excluded region limit
166 Double_t fExcludedEtaMax; // excluded region limit
167 Double_t fExcludedPhiMin; // excluded region limit
168 Double_t fExcludedPhiMax; // excluded region limit
169 // End of excluding a range
170
489fdf79 171 // values afterburner
54089829 172 Bool_t fAfterburnerOn; // do we afterburn?
173 Int_t fNonFlowNumberOfTrackClones; // number of times to clone the particles (nonflow)
174 Double_t fV1; // Add Flow. Must be in range [0,0.5].
175 Double_t fV2; // Add Flow. Must be in range [0,0.5].
176 Double_t fV3; // Add Flow. Must be in range [0,0.5].
177 Double_t fV4; // Add Flow. Must be in range [0,0.5].
1a80f9f6 178 Double_t fV5; // Add Flow. Must be in range [0,0.5].
c926fac9 179 TF1 *fDifferentialV2; // pt-differential v2
7d27a354 180
181 AliFlowEvent* fFlowEvent; //flowevent
ad4d7e4e 182 Bool_t fShuffleTracks; //serve the tracks shuffled
489fdf79 183
d459546b 184 TRandom3* fMyTRandom3; // TRandom3 generator
489fdf79 185 // end afterburner
186
587b0a35 187 ClassDef(AliAnalysisTaskFlowEvent, 1); // example of analysis
1c1d4332 188};
189
190#endif
489fdf79 191