]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/ESE/AliAnalysisTaskFemtoESE.h
Femto ESE update (Alice Ohlson)
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / ESE / AliAnalysisTaskFemtoESE.h
CommitLineData
698fcf10 1#ifndef AliAnalysisTaskFemtoESE_cxx
2#define AliAnalysisTaskFemtoESE_cxx
3
4
5class TH1F;
6class TH2F;
7class TH3F;
8class TH1D;
9class TH2D;
10class TH3D;
11
12class TProfile;
13class TProfile2D;
14
15class AliESDEvent;
16class AliAODEvent;
17class AliESDtrackCuts;
18class AliESDpid;
19class AliHelperPID;
20class AliEventPoolManager;
21class AliSpectraAODEventCuts;
22class AliSpectraAODTrackCuts;
23class AliAODTrack;
e7199f47 24class AliEventPool;
25
26//class TStopwatch;
27
28class AliFemtoESEBasicParticle;
698fcf10 29
30#include "AliAnalysisTask.h"
31#include "AliAnalysisTaskSE.h"
32#include "AliESDpid.h"
33#include "AliAODPid.h"
34
35#include "AliAODEvent.h"
36#include "AliAnalysisManager.h"
37#include "AliAODInputHandler.h"
38#include "AliSpectraAODEventCuts.h"
39#include "AliSpectraAODTrackCuts.h"
40
41class AliAnalysisTaskFemtoESE : public AliAnalysisTaskSE {
42 public:
43
44 AliAnalysisTaskFemtoESE();
45 AliAnalysisTaskFemtoESE(const char* name);
46 virtual ~AliAnalysisTaskFemtoESE();
47 AliAnalysisTaskFemtoESE(const AliAnalysisTaskFemtoESE &/*obj*/);
48 AliAnalysisTaskFemtoESE &operator=(const AliAnalysisTaskFemtoESE &/*obj*/);
49
50 virtual void UserCreateOutputObjects();
51 virtual void UserExec(Option_t *option);
3b2ee55b 52 void TrackLoop(TObjArray *tracks, AliEventPool *pool, Int_t z, Double_t psiEP, Float_t centralityPercentile);
698fcf10 53 virtual void Terminate(Option_t *);
54
55 AliHelperPID* GetHelperPID() { return fHelperPID; }
56 void SetHelperPID(AliHelperPID* pid){ fHelperPID = pid; }
57 AliSpectraAODEventCuts* GetEventCuts() {return fEventCuts;}
58 void SetEventCuts(AliSpectraAODEventCuts* cuts) {fEventCuts = cuts;}
59 AliSpectraAODTrackCuts* GetTrackCuts() {return fTrackCuts;}
60 void SetTrackCuts(AliSpectraAODTrackCuts* cuts) {fTrackCuts = cuts;}
61
62 Int_t GetTrackFilterBit(){return fFilterBit;}
63 void SetTrackFilterBit(Int_t bit){fFilterBit=bit;}
64 void SetEventSelectionBit( UInt_t val ) {fSelectBit = val;}
76082c53 65 void SetIsLHC10h(Bool_t val) {bIsLHC10h = val;}
698fcf10 66 void SetMinSepPair(Double_t eta,Double_t phi){fMinSepPairEta = eta; fMinSepPairPhi = phi;}
67 void SetShareFraction(Double_t val) {fShareFraction = val;}
68 Double_t GetShareFraction() {return fShareFraction;}
69 void SetShareQuality(Double_t val) {fShareQuality = val;}
70 Double_t GetShareQuality() {return fShareQuality;}
71 void SetQPercCuts(Double_t min, Double_t max) {fMinQPerc = min; fMaxQPerc = max;}
72 Double_t GetMinQPerc(){return fMinQPerc;}
73 Double_t GetMaxQPerc(){return fMaxQPerc;}
74 void SetQPercDetector(Int_t det){fQPercDet = det;};
75 void SetEPDetector(Int_t det){fEPDet = det;};
76082c53 76 void SetNMixingTracks(Int_t n){fMixingTracks = n;};
698fcf10 77
78 void SetKtBins(Int_t n, Double_t* bins);
79 void SetEPBins(Int_t n, Double_t min, Double_t max);
80 void SetCentBins(Int_t n, Double_t* bins);
81 void SetVzBins(Int_t n, Double_t* bins);
82
76082c53 83 Double_t GetQPercLHC11h(Double_t qvec);
84
f8caeea5 85 Double_t GetCentralityWeight(Double_t cent);
86
698fcf10 87 private:
f8caeea5 88 Double_t GetQinv(Double_t[], Double_t[]);
698fcf10 89 void GetQosl(Double_t[], Double_t[], Double_t&, Double_t&, Double_t&);
90 Bool_t TrackCut(AliAODTrack* ftrack);
91 Bool_t EventCut(/*AliAODEvent* fevent*/);
e7199f47 92 Bool_t PairCut(AliFemtoESEBasicParticle* ftrack1, AliFemtoESEBasicParticle* ftrack2, Bool_t mix);
698fcf10 93 Double_t DeltaPhiStar(AliAODTrack* ftrack1, AliAODTrack* ftrack2, Double_t r);
94 TObjArray* CloneAndReduceTrackList(TObjArray* tracks, Double_t psi);
95 Double_t GetDeltaPhiEP(Double_t px1, Double_t py1, Double_t px2, Double_t py2, Double_t psi);
aa5e3401 96 Bool_t FindBin(Double_t kt, Double_t phi, Double_t cent, Int_t& a, Int_t& b, Int_t&c);
698fcf10 97
98 AliAODEvent *fAOD; //! // AOD object
99 TList *fOutputList; //! Compact Output list
100 //AliPIDResponse *fPIDResponse; //! PID response object; equivalent to AliAODpidUtil
101 AliHelperPID* fHelperPID; // points to class for PID
f8caeea5 102 AliEventPoolManager** fPoolMgr; //![2] event pool manager
698fcf10 103 AliSpectraAODEventCuts* fEventCuts;
104 AliSpectraAODTrackCuts* fTrackCuts;
105
106 Int_t fFilterBit; // track selection cuts
76082c53 107 UInt_t fSelectBit; // Select events according to AliAnalysisTaskJetServices bit maps
108 Bool_t bIsLHC10h;
698fcf10 109 Int_t fEventCounter;
110 Int_t fMixingTracks;
111 Double_t fBfield;
112 Double_t fMinSepPairEta;
113 Double_t fMinSepPairPhi;
114 Double_t fShareQuality;
115 Double_t fShareFraction;
116
117 Int_t nCountSamePairs;
118 Int_t nCountMixedPairs;
119 Int_t nCountTracks;
120
121 Double_t fMinQPerc;
122 Double_t fMaxQPerc;
123
124 Int_t fQPercDet; // detector used for q-vector (0-V0A, 1-V0C)
125 Int_t fEPDet; // detector used for event plane (0-V0A, 1-V0C)
126
698fcf10 127 // binning for histograms
128 Int_t nKtBins;
129 Int_t nKtBins1;
130 Double_t* ktBins; //[nKtBins1]
131 Int_t nEPBins;
132 Int_t nEPBins1;
133 Double_t* epBins; //[nEPBins1]
f8caeea5 134 Int_t nEPBinsMix;
135 Int_t nEPBinsMix1;
136 Double_t* epBinsMix; //[nEPBinsMix1]
698fcf10 137 Int_t nCentBins;
138 Int_t nCentBins1;
139 Double_t* centBins; //[nCentBins1]
140 Int_t nVzBins;
141 Int_t nVzBins1;
142 Double_t* vzBins; //[nVzBins1]
143
144 Double_t vertex[3];
145
3b2ee55b 146 TH3F***** hq;
147 TH3F***** hqmix;
148 TH3F***** hqinv;
698fcf10 149
76082c53 150 Int_t nqPercBinsLHC11h;
151 Double_t* qPercBinsLHC11h; //[nqPercBinsLHC11h]
152
e7199f47 153 //TStopwatch *stopwatch;
154
155 // histograms
156 TH1D *hpx;
157 TH1D *hpy;
158 TH1D *hpz;
159 TH1D *hpt;
160 TH1D *hE;
161 TH2D *hphieta;
162 TH2D *hphieta_pid;
163 TH1D *hpt_pid;
164 TH2D *hvzcent;
165 TH1D *hcent;
f8caeea5 166 TH1D* hcentUnweighted;
e7199f47 167 TH2D *hcentn;
168 TH3D *hphistaretapair10;
169 TH3D *hphistaretapair16;
170 TH3D *hphistaretapair10a;
171 TH3D *hphistaretapair16a;
172 TH3D *hphistaretapair10b;
173 TH3D *hphistaretapair16b;
174 TH3D *hphietapair;
175 TH3D *hphietapair2;
176 TH1D *hpidid;
f8caeea5 177 TH2D *hkt;
e7199f47 178 TH1D *hktcheck;
179 TH3D *hkt3;
180 TH2D* hdcaxy;
181 TH1D* hdcaz;
182 TH1D* hsharequal;
183 TH1D* hsharefrac;
184 TH1D* hsharequalmix;
185 TH1D* hsharefracmix;
f8caeea5 186 TH2D *hPsiTPC;
187 TH2D *hPsiV0A;
188 TH2D *hPsiV0C;
189 TH2D* hShiftTPC;
190 TH2D* hShiftV0A;
191 TH2D* hShiftV0C;
192 TH2D *hPsiMix;
193 TH2D *hCheckEPA;
194 TH2D *hCheckEPC;
e7199f47 195 TH2D* hCheckEPmix;
f8caeea5 196 TH3D* hAvDphi;
197 TH3D* hNpairs;
198 TH1D* hPairDphi;
199 TH1D* hPairDphiMix;
e7199f47 200 TH2D *hcentq;
f8caeea5 201 TH2D* hMixedDistTracks;
202 TH2D* hMixedDistEvents;
e7199f47 203 TH2D *hQvecV0A;
204 TH2D *hQvecV0C;
205 TH1D *hresV0ATPC;
206 TH1D *hresV0CTPC;
207 TH1D *hresV0AV0C;
3b898cea 208 TH3F* hqinvcheck;
209
e7199f47 210 TH1F* hktbins;
211 TH1F* hcentbins;
212 TH1F* hepbins;
76082c53 213
698fcf10 214 ClassDef(AliAnalysisTaskFemtoESE, 1);
215};
216
217
218class AliFemtoESEBasicParticle : public AliAODTrack
219{
220 public:
221 AliFemtoESEBasicParticle(Double_t En, Double_t px, Double_t py, Double_t pz, Short_t charge, Double_t phi, Double_t eta)
222 : fE(En), fPx(px), fPy(py), fPz(pz), fCharge(charge), fPhi(phi), fEta(eta), fPsiEP(0.0)
223 {
224 }
225 ~AliFemtoESEBasicParticle() {}
226
227 // kinematics
228 virtual Double_t Px() const { return fPx;}
229 virtual Double_t Py() const { return fPy; }
230 virtual Double_t Pz() const { return fPz; }
231 virtual Double_t Pt() const { return sqrt(fPx*fPx+fPy*fPy); }
232 virtual Double_t P() const { return sqrt(fPx*fPx+fPy*fPy+fPz*fPz);; }
233 virtual Bool_t PxPyPz(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
234
235 virtual Double_t Xv() const { AliFatal("Not implemented"); return 0; }
236 virtual Double_t Yv() const { AliFatal("Not implemented"); return 0; }
237 virtual Double_t Zv() const { AliFatal("Not implemented"); return 0; }
238 virtual Bool_t XvYvZv(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
239
240 virtual Double_t OneOverPt() const { AliFatal("Not implemented"); return 0; }
241 virtual Double_t Phi() const { return fPhi; }
242 virtual Double_t Theta() const { AliFatal("Not implemented"); return 0; }
243
244 virtual Double_t E() const { return fE; }
245 virtual Double_t M() const { AliFatal("Not implemented"); return 0; }
246
247 virtual Double_t Eta() const { return fEta; }
248 virtual Double_t Y() const { AliFatal("Not implemented"); return 0; }
249
250 virtual Short_t Charge() const { return fCharge; }
251 virtual Int_t GetLabel() const { AliFatal("Not implemented"); return 0; }
252 // PID
253 virtual Int_t PdgCode() const { AliFatal("Not implemented"); return 0; }
254 virtual const Double_t *PID() const { AliFatal("Not implemented"); return 0; }
255
256 void SetPsiEP(Double_t psi) {fPsiEP = psi;}
257 Double_t GetPsiEP() {return fPsiEP;}
258
259 /*void SetTPCClusterMap(TBits b){fClusterMap = TBits(b);};
260 void SetTPCSharedMap(TBits b){fSharedMap = TBits(b);};
261 TBits GetTPCClusterMap(){return fClusterMap;};
262 TBits GetTPCSharedMap(){return fSharedMap;};*/
263
264private:
265 Double_t fE;
266 Double_t fPx;
267 Double_t fPy;
268 Double_t fPz;
269 Short_t fCharge;
270 Double_t fPhi;
271 Double_t fEta;
272 Double_t fPsiEP;
273 //TBits fClusterMap;
274 //TBits fSharedMap;
275
276
277 ClassDef( AliFemtoESEBasicParticle, 1);
278};
279
280#endif