]>
Commit | Line | Data |
---|---|---|
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 | 16 | class AliCFManager; |
daf66719 | 17 | class AliFlowEventCuts; |
18 | class AliFlowTrackCuts; | |
1c1d4332 | 19 | class AliFlowEventSimpleMaker; |
cfdbb54f | 20 | class AliFlowEvent; |
1c1d4332 | 21 | class TList; |
c926fac9 | 22 | class TF1; |
489fdf79 | 23 | class TRandom3; |
fbdb53fa | 24 | class AliAnalysisTaskSE; |
25 | class TString; | |
32b846cd | 26 | class AliESDpid; |
1c1d4332 | 27 | |
65201059 | 28 | class 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;} | |
dd294bb6 | 63 | void SetCutsRP(AliFlowTrackCuts* cutsRP) {fCutContainer->AddAt(cutsRP,0); fCutsRP=cutsRP; cutsRP->SetPOItype(0); } |
8eca5d19 | 64 | AliFlowTrackCuts* GetCutsRP() const {return fCutsRP;} //to be reimplemented |
dd294bb6 | 65 | void SetCutsPOI(AliFlowTrackCuts* cutsPOI) {fCutContainer->AddAt(cutsPOI,1); fCutsPOI=cutsPOI; cutsPOI->SetPOItype(1); } |
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 |