]>
Commit | Line | Data |
---|---|---|
9777bfcb | 1 | ////////////////////////////////////////////////////////////////////// |
2 | // | |
3 | // $Id$ | |
4 | // | |
5 | // Author: Emanuele Simili | |
6 | // | |
7 | ////////////////////////////////////////////////////////////////////// | |
8 | // | |
327288af | 9 | // Description: ALICE flow analysis for AliFlowEvent(s), |
10 | // adapted from the STAR flow analysis . | |
9777bfcb | 11 | // Original Authors: Raimond Snellings & Art Poskanzer |
12 | // | |
13 | ////////////////////////////////////////////////////////////////////// | |
14 | ||
15 | #ifndef ALIFLOWANALYSER_H | |
16 | #define ALIFLOWANALYSER_H | |
17 | ||
92016a03 | 18 | #include <TVector2.h> |
9777bfcb | 19 | #include <TFile.h> |
20 | #include "AliFlowConstants.h" | |
21 | ||
22 | class TH1F; | |
23 | class TH1D; | |
24 | class TH2F; | |
25 | class TH2D; | |
26 | class TH3F; | |
27 | class TProfile; | |
28 | class TProfile2D; | |
29 | class TOrdCollection; | |
92016a03 | 30 | class TClonesArray; |
9777bfcb | 31 | |
32 | class AliFlowTrack; | |
33 | class AliFlowV0; | |
34 | class AliFlowEvent; | |
35 | class AliFlowSelection; | |
9777bfcb | 36 | |
37 | class AliFlowAnalyser { | |
38 | ||
39 | ||
40 | public: | |
41 | ||
42 | AliFlowAnalyser(const AliFlowSelection* flowSelect = 0); // Constructor with selection object (default selection if no one given) | |
43 | virtual ~AliFlowAnalyser(); // Default destructor (no actions) | |
44 | ||
45 | // Steps of the flow analysis | |
46 | Bool_t Init() ; // Books histograms for flow analysis | |
47 | Bool_t Finish() ; // Saves histograms, Closes stuff | |
48 | ||
49 | // Analysis of 1 event (can be called from outside) | |
4e566f2f | 50 | Bool_t Analyze(AliFlowEvent* flowEvent = 0) ; // Fills the defaults histograms (init them first!) and performs the calculation for the given event |
9777bfcb | 51 | |
52 | // Resolution corrections to v_n (call it at the end of the evts loop) | |
53 | Bool_t Resolution() ; // Calculates resolution and mean flow values | |
54 | ||
55 | // Weights calculation and saving (call it at the end of the evts loop) | |
56 | void Weightening() ; // Calculates weights and fills PhiWgt histograms | |
57 | ||
58 | // Options | |
da5aa0a0 | 59 | void SetSub(Int_t sub = 0) { fSub = sub ; } // Set subevents (1=eta,0=rnd,-1=charged) |
60 | void SetEtaSub() { SetSub(1) ; } // Set subevents (1=eta,0=rnd,-1=charged) | |
9777bfcb | 61 | void SetV1Ep1Ep2(Bool_t v1Ep1Ep2 = kTRUE) { fV1Ep1Ep2 = v1Ep1Ep2 ; } // Switches the v_1{EP1,EP2} calculation on/off |
62 | void SetShuffle(Bool_t sh = kTRUE) { fShuffle = sh ; } // Set to re-shuffle evt tracks | |
63 | void SetUsePhiWgt(Bool_t pw = kTRUE) { fReadPhiWgt = pw ; } // Set to use phi weights (true by default...if there) | |
64 | void SetUseBayWgt(Bool_t bw = kTRUE) { fBayWgt = bw ; } // Set to use bayesian weights for p.id. (false by default) | |
65 | void SetUsePtWgt(Bool_t ptw = kTRUE) { fPtWgt = ptw ; } // uses pT as a weight for RP determination | |
66 | void SetUseEtaWgt(Bool_t etw = kTRUE) { fEtaWgt = etw ; } // uses eta as a weight for RP determination | |
67 | void SetUseOnePhiWgt(Bool_t opw = kTRUE) { fOnePhiWgt = opw ; } // just one wgt histogram | |
68 | void SetUseFirstLastPhiWgt(Bool_t flw = kTRUE) { fOnePhiWgt = !flw ; } // uses 3 wgt histograms | |
69 | void SetFlowForV0(Bool_t v0 = kTRUE) { fV0loop = v0 ; } // Enables Flow study for v0 | |
70 | void SetTrackLoop(Bool_t trkl = kTRUE) { fTrackLoop = trkl ; } // Enables Tracks loop (keep it kTRUE) | |
4e566f2f | 71 | void SetCustomRespFunc(Bool_t crf = kTRUE) { fCustomRespFunc = crf ; } // Enables to use a custom detector response function |
9777bfcb | 72 | //void SetDebugg(Int_t db = 1) ; // set the cout's for debug (default is 1) |
73 | ||
74 | // Histograms | |
75 | void SetPtRangevEta(Float_t lo, Float_t hi) { fPtRangevEta[0] = lo ; fPtRangevEta[1] = hi ; } // Sets the pt range for the v(eta) histograms. | |
76 | void SetEtaRangevPt(Float_t lo, Float_t hi) { fEtaRangevPt[0] = lo ; fEtaRangevPt[1] = hi ; } // Sets the |eta| range for the v(pt) histograms. | |
77 | //void SetMaxLabel(Int_t lab = 100) { fMaxLabel = lab ; } | |
78 | ||
79 | // Output | |
80 | void SetHistFileName(TString name) { fHistFileName = name ; } // Sets output file name | |
81 | TString GetHistFileName() const { return fHistFileName ; } | |
82 | ||
83 | // Phi Weights | |
84 | TString GetWgtFileName() const { return (TString)fPhiWgtFile->GetName() ; } | |
85 | void FillWgtArrays(TFile* wgtFile) ; // Loads phi & bayesian weights from file (flowPhiWgt.hist.root) and fills the arrays | |
86 | ||
87 | // Results | |
327288af | 88 | Float_t GetRunBayesian(Int_t nPid=2, Int_t selN=0) const ; // Normalized Particle abundance (all events up to here) |
89 | void PrintRunBayesian(Int_t selN=0) const ; // Prints the normalized Particle abundance (up to here) | |
90 | void PrintEventQuantities() const ; // Prints event by event calculated quantities | |
9777bfcb | 91 | Float_t Res(Int_t eventN, Int_t harN) const { return fRes[eventN][harN]; } // Returns the calculated resolution for the RP |
92 | Float_t ResErr(Int_t eventN, Int_t harN) const { return fResErr[eventN][harN]; } // Returns the estimated error on the resolution | |
93 | ||
94 | ||
95 | protected: | |
96 | ||
97 | // Internal methods to fill the histogram | |
98 | Bool_t FillFromFlowEvent(AliFlowEvent* fFlowEvent) ; // Fills internal variables and array from Flow Events | |
99 | void FillEventHistograms(AliFlowEvent* fFlowEvent) ; // Fills Events' histograms (from AliFlowEvent) | |
92016a03 | 100 | void FillParticleHistograms(TClonesArray* fFlowTracks) ; // Fills Tracks' histograms (from AliFlowTrack) |
101 | void FillV0Histograms(TClonesArray* fFlowV0s) ; // Fills V0s' histograms | |
9777bfcb | 102 | Int_t HarmonicsLoop(AliFlowTrack* fFlowTrack) ; // Harmonics & Selections histograms (from AliFlowTracks) |
103 | //void FillLabels() ; // fills an histogram of Labels (the ones from ESD) | |
104 | ||
105 | // Weights plugged to the event | |
106 | void FillBayesianWgt(AliFlowEvent* fFlowEvent) ; // Plugs the bayesian weights (fBayesianWgt[0]*) into the AliFlowEvent | |
107 | void FillEvtPhiWgt(AliFlowEvent* fFlowEvent) ; // Plugs the PhiWeights (fPhiWgt*, etc.) into the AliFlowEvent | |
108 | ||
109 | // Resolution Calculation | |
110 | Double_t Chi(Double_t res) ; // Calculates chi from the event plane resolution | |
111 | Double_t ResEventPlane(Double_t chi) ; // Calculates the event plane resolution as a function of chi | |
112 | Double_t ResEventPlaneK2(Double_t chi) ; // Calculates the event plane resolution as a function of chi for the case k=2. | |
113 | Double_t ResEventPlaneK3(Double_t chi) ; // Calculates the event plane resolution as a function of chi for the case k=3. | |
114 | Double_t ResEventPlaneK4(Double_t chi) ; // Calculates the event plane resolution as a function of chi for the case k=4. | |
115 | ||
116 | ||
117 | private: | |
118 | ||
92016a03 | 119 | // to make the code checker happy |
120 | AliFlowAnalyser(const AliFlowAnalyser &flowAnal) ; // Copy Constructor (dummy) | |
121 | AliFlowAnalyser &operator=(const AliFlowAnalyser &flowAnal) ; // Assignment Operator | |
327288af | 122 | |
9777bfcb | 123 | // Flags |
124 | Bool_t fTrackLoop ; //! tracks main loop | |
125 | Bool_t fV0loop ; //! correlation analysis is done also for neutral secundary vertex | |
126 | Bool_t fShuffle ; //! to randomly reshuffle tracks | |
127 | Bool_t fV1Ep1Ep2; //! Flag for v_1{EP1,EP2} calculation on/off | |
128 | Bool_t fEtaSub; //! eta subevents | |
129 | Bool_t fReadPhiWgt ; //! Phi Weights are applied to Phi distrib. (default is false) | |
130 | Bool_t fBayWgt ; //! Bayesian Weights are applied to P.Id. (default is false) | |
131 | Bool_t fRePid ; //! Re-Calculates the P.Id. basing on the bayesian wgts (if plugged in) | |
4e566f2f | 132 | Bool_t fCustomRespFunc ; //! A custom "detector response function" is used for P.Id (default is false -> the combined response function from the ESD will be used) |
da5aa0a0 | 133 | Int_t fSub; //! subevents (1=eta,0=rnd,-1=charged) |
9777bfcb | 134 | |
135 | Bool_t fPtWgt ; //! flag to use pT as a weight for RP determination | |
136 | Bool_t fEtaWgt ; //! flag to use eta as a weight for RP determination | |
137 | Bool_t fOnePhiWgt ; //! if kTRUE: just one phi-wgt histogram, if kFALSE: three phi-wgt histogram (TPC+,TPC-,cross) | |
138 | ||
139 | // Files | |
140 | TFile* fHistFile ; //! histograms file (output) | |
141 | TFile* fPhiWgtFile ; //! phi weight file | |
142 | TString fHistFileName ; //! Output File Name (histograms from flow analysis) | |
143 | //TString fFlowEvtFileName ; //! Input file name (Flow Events) | |
144 | ||
145 | // enumerators | |
146 | Int_t fEventNumber ; //! progressive enumeration of AliFlowEvents | |
147 | Int_t fTrackNumber ; //! progressive enumeration of AliFlowTracks | |
148 | Int_t fV0Number ; //! progressive enumeration of AliFlowV0s | |
149 | //Int_t fNumberOfEvents ; //! total number of AliFlowEvents in file | |
150 | Int_t fNumberOfTracks ; //! total number of tracks in the current event | |
151 | Int_t fNumberOfV0s ; //! total number of v0s in the current event | |
152 | Int_t fPidId ; //! Particle Id hypothesys of the track (0..4 for e,mu,pi,k,p) | |
92016a03 | 153 | Int_t fSelParts ; //! n. of tracks selected for correlation analysis |
154 | Int_t fSelV0s ; //! n. of v0s selected for correlation analysis | |
9777bfcb | 155 | |
da5aa0a0 | 156 | Int_t fTotalNumberOfEvents ; //! total number of analyzed AliFlowEvents |
157 | Int_t fTotalNumberOfTracks ; //! total number of analyzed tracks | |
158 | Int_t fTotalNumberOfV0s ; //! total number of analyzed v0s | |
159 | ||
9777bfcb | 160 | // Internal pointers |
161 | AliFlowEvent* fFlowEvent ; //! pointer to AliFlowEvent | |
162 | AliFlowTrack* fFlowTrack ; //! pointer to AliFlowTrack | |
163 | AliFlowV0* fFlowV0 ; //! pointer to AliFlowV0 | |
164 | AliFlowSelection* fFlowSelect ; //! selection object | |
92016a03 | 165 | TClonesArray* fFlowTracks ; //! pointer to the TrackCollection |
166 | TClonesArray* fFlowV0s ; //! pointer to the V0Collection | |
9777bfcb | 167 | |
168 | Float_t fVertex[3] ; //! Event's Vertex position | |
169 | ||
170 | // For weights | |
171 | Int_t fPhiBins ; //! n. of phi bins | |
172 | Float_t fPhiMin ; //! wgt histo range (phi) | |
173 | Float_t fPhiMax ; //! wgt histo range (phi) | |
174 | ||
327288af | 175 | AliFlowConstants::PhiWgt_t fPhiWgt ; //! PhiWgt Array (all TPC) |
176 | AliFlowConstants::PhiWgt_t fPhiWgtPlus ; //! PhiWgt Array (TPC+) | |
177 | AliFlowConstants::PhiWgt_t fPhiWgtMinus ; //! PhiWgt Array (TPC-) | |
178 | AliFlowConstants::PhiWgt_t fPhiWgtCross ; //! PhiWgt Array (TPC/) | |
9777bfcb | 179 | |
180 | // For bayesian weights | |
327288af | 181 | Double_t fBayesianWgt[AliFlowConstants::kSels][AliFlowConstants::kPid] ; //! Bayesian weights (expected particle abundance) |
327288af | 182 | TVector2 fQ[AliFlowConstants::kSels][AliFlowConstants::kHars]; //! flow vector |
183 | Float_t fPsi[AliFlowConstants::kSels][AliFlowConstants::kHars]; //! event plane angle | |
184 | UInt_t fMult[AliFlowConstants::kSels][AliFlowConstants::kHars]; //! multiplicity | |
185 | Float_t fQnorm[AliFlowConstants::kSels][AliFlowConstants::kHars]; //! Q/Sqrt(Mult) | |
186 | TVector2 fQSub[AliFlowConstants::kSubs][AliFlowConstants::kSels][AliFlowConstants::kHars]; //! flow vector subs | |
187 | Float_t fPsiSub[AliFlowConstants::kSubs][AliFlowConstants::kSels][AliFlowConstants::kHars]; //! plane angle of subevents | |
188 | UInt_t fMultSub[AliFlowConstants::kSubs][AliFlowConstants::kSels][AliFlowConstants::kHars]; //! multiplicity subs | |
189 | Float_t fRes[AliFlowConstants::kSels][AliFlowConstants::kHars]; //! event plane resolution | |
190 | Float_t fResErr[AliFlowConstants::kSels][AliFlowConstants::kHars]; //! event plane resolution error | |
9777bfcb | 191 | |
192 | // for Histograms | |
193 | TString fLabel ; //! label axis : rapidity or pseudorapidity | |
194 | Float_t fEtaMin ; //! histo range (eta) | |
195 | Float_t fEtaMax ; //! histo range (eta) | |
196 | Float_t fPtMin ; //! histo range (pt) | |
197 | Float_t fPtMax ; //! histo range (pt) | |
198 | Float_t fPtMaxPart ; //! max pt for _part histo | |
199 | Int_t fEtaBins ; //! n. of eta bins | |
200 | Int_t fPtBins ; //! n. of pt bins | |
201 | Int_t fPtBinsPart ; //! n. of pt bins for _part histo | |
202 | Float_t fPtRangevEta[2] ; //! pt range for the v(eta) histograms. | |
203 | Float_t fEtaRangevPt[2] ; //! |eta| range for the v(pt) histograms. | |
204 | Int_t fMaxLabel ; //! for the MC labels histogram (max bin) | |
205 | ||
206 | TOrdCollection* fPhiWgtHistList ; //! Weights: histogram list | |
207 | TOrdCollection* fVnResHistList ; //! Resolution and Vn: histogram list | |
208 | ||
209 | // for Single histograms | |
210 | ||
211 | // ***************** | |
212 | // EVENTs HISTOGRAMS | |
213 | // ***************** | |
327288af | 214 | TH1F* fHistTrigger; //! histogram ... |
215 | TH1F* fHistMult; //! histogram ... | |
216 | TH1F* fHistV0Mult; //! histogram ... | |
217 | TH1F* fHistOrigMult; //! histogram ... | |
218 | TH1F* fHistMultOverOrig; //! histogram ... | |
219 | TH1F* fHistMultEta; //! histogram ... | |
220 | TH1F* fHistCent; //! histogram ... | |
221 | TH1F* fHistVertexZ; //! histogram ... | |
222 | TH2F* fHistVertexXY2D; //! histogram ... | |
223 | TH2F* fHistEnergyZDC; //! histogram ... | |
224 | TH1F* fHistPartZDC; //! histogram ... | |
225 | TProfile* fHistPidMult; //! histogram ... | |
226 | TH1F* fHistBayPidMult; //! histogram ... | |
227 | TH1F* fHistEtaSym; //! histogram ... | |
228 | TH1F* fHistEtaSymPart; //! histogram ... | |
229 | TH2F* fHistEtaSymVerZ2D; //! histogram ... | |
230 | TH2F* fHistEtaSymVerZ2DPart; //! histogram ... | |
9777bfcb | 231 | // selected (TR & V0) |
327288af | 232 | TH1F* fHistMultPart; //! histogram ... |
233 | TH1F* fHistV0MultPart; //! histogram ... | |
234 | TH1F* fHistBayPidMultPart; //! histogram ... | |
235 | TH1F* fHistMultPartUnit; //! histogram ... | |
9777bfcb | 236 | |
237 | // ***************** | |
238 | // TRACKs HISTOGRAMS (all tracks) | |
239 | // ***************** | |
327288af | 240 | TH1F* fHistPtot ; //! histogram ... |
241 | TH1F* fHistPt ; //! histogram ... | |
242 | TH1F* fHistCharge; //! histogram ... | |
243 | TH1F* fHistDcaGlobal; //! histogram ... | |
244 | TH1F* fHistDca; //! histogram ... | |
245 | TH1F* fHistTransDca; //! histogram ... | |
246 | TH1F* fHistChi2; //! histogram ... | |
247 | TH1F* fHistLenght; //! histogram ... | |
248 | TH1F* fHistInvMass ; //! histogram ... | |
249 | TH1F* fHistFitOverMax; //! histogram ... | |
250 | TH2D* fHistPhiPtCon ; //! histogram ... | |
251 | TH2D* fHistPhiPtUnc ; //! histogram ... | |
252 | TH2D* fHistPtPhiPos ; //! histogram ... | |
253 | TH2D* fHistPtPhiNeg ; //! histogram ... | |
254 | TH3F* fHistAllEtaPtPhi3D; //! histogram ... | |
255 | TProfile* fHistCosPhi; //! histogram ... | |
256 | TH2F* fHistPidPt; //! histogram ... | |
257 | TH1F* fHistPhi ; //! histogram ... | |
258 | TH1F* fHistPhiCons ; //! histogram ... | |
259 | TH2D* fHistYieldAll2D; //! histogram ... | |
260 | TH2D* fHistYieldCon2D; //! histogram ... | |
261 | TH2D* fHistYieldUnc2D; //! histogram ... | |
262 | TH3F* fHistConsEtaPtPhi3D; //! histogram ... | |
263 | TH3F* fHistGlobEtaPtPhi3D; //! histogram ... | |
264 | TH3F* fHistUncEtaPtPhi3D ; //! histogram ... | |
265 | // fit & dE/dX for each detector (all tracks) | |
266 | TH1F* fHistChi2ITS; //! histogram ... | |
267 | TH1F* fHistChi2normITS; //! histogram ... | |
268 | TH1F* fHistFitPtsITS; //! histogram ... | |
269 | TH1F* fHistMaxPtsITS; //! histogram ... | |
270 | TH2F* fHistMeanDedxPos2DITS; //! histogram ... | |
271 | TH2F* fHistMeanDedxNeg2DITS; //! histogram ... | |
9777bfcb | 272 | // - |
327288af | 273 | TH1F* fHistChi2TPC; //! histogram ... |
274 | TH1F* fHistChi2normTPC; //! histogram ... | |
275 | TH1F* fHistFitPtsTPC; //! histogram ... | |
276 | TH1F* fHistMaxPtsTPC; //! histogram ... | |
277 | TH1F* fHistFitOverMaxTPC; //! histogram ... | |
278 | TH2F* fHistMeanDedxPos2D; //! histogram ... | |
279 | TH2F* fHistMeanDedxNeg2D; //! histogram ... | |
9777bfcb | 280 | // - |
327288af | 281 | TH1F* fHistChi2TRD; //! histogram ... |
282 | TH1F* fHistChi2normTRD; //! histogram ... | |
283 | TH1F* fHistFitPtsTRD; //! histogram ... | |
284 | TH1F* fHistMaxPtsTRD; //! histogram ... | |
285 | TH2F* fHistMeanDedxPos2DTRD; //! histogram ... | |
286 | TH2F* fHistMeanDedxNeg2DTRD; //! histogram ... | |
9777bfcb | 287 | // - |
327288af | 288 | TH1F* fHistChi2TOF; //! histogram ... |
289 | TH1F* fHistChi2normTOF; //! histogram ... | |
290 | TH1F* fHistFitPtsTOF; //! histogram ... | |
291 | TH1F* fHistMaxPtsTOF; //! histogram ... | |
292 | TH2F* fHistMeanDedxPos2DTOF; //! histogram ... | |
293 | TH2F* fHistMeanDedxNeg2DTOF; //! histogram ... | |
9777bfcb | 294 | // detector response for particle type (all tracks, based on Pid) |
327288af | 295 | TH2F* fHistMeanTPCPiPlus ; //! histogram ... |
296 | TH2F* fHistMeanTPCPiMinus ; //! histogram ... | |
297 | TH2F* fHistMeanTPCProton ; //! histogram ... | |
298 | TH2F* fHistMeanTPCPbar ; //! histogram ... | |
299 | TH2F* fHistMeanTPCKplus ; //! histogram ... | |
300 | TH2F* fHistMeanTPCKminus ; //! histogram ... | |
301 | TH2F* fHistMeanTPCDeuteron ; //! histogram ... | |
302 | TH2F* fHistMeanTPCAntiDeuteron ; //! histogram ... | |
303 | TH2F* fHistMeanTPCPositron ; //! histogram ... | |
304 | TH2F* fHistMeanTPCElectron ; //! histogram ... | |
305 | TH2F* fHistMeanTPCMuonPlus ; //! histogram ... | |
306 | TH2F* fHistMeanTPCMuonMinus ; //! histogram ... | |
9777bfcb | 307 | // - |
327288af | 308 | TH2F* fHistMeanITSPiPlus ; //! histogram ... |
309 | TH2F* fHistMeanITSPiMinus ; //! histogram ... | |
310 | TH2F* fHistMeanITSProton ; //! histogram ... | |
311 | TH2F* fHistMeanITSPbar ; //! histogram ... | |
312 | TH2F* fHistMeanITSKplus ; //! histogram ... | |
313 | TH2F* fHistMeanITSKminus ; //! histogram ... | |
314 | TH2F* fHistMeanITSDeuteron ; //! histogram ... | |
315 | TH2F* fHistMeanITSAntiDeuteron ; //! histogram ... | |
316 | TH2F* fHistMeanITSPositron ; //! histogram ... | |
317 | TH2F* fHistMeanITSElectron ; //! histogram ... | |
318 | TH2F* fHistMeanITSMuonPlus ; //! histogram ... | |
319 | TH2F* fHistMeanITSMuonMinus ; //! histogram ... | |
9777bfcb | 320 | // - |
327288af | 321 | TH2F* fHistMeanTOFPiPlus ; //! histogram ... |
322 | TH2F* fHistMeanTOFPiMinus ; //! histogram ... | |
323 | TH2F* fHistMeanTOFProton ; //! histogram ... | |
324 | TH2F* fHistMeanTOFPbar ; //! histogram ... | |
325 | TH2F* fHistMeanTOFKplus ; //! histogram ... | |
326 | TH2F* fHistMeanTOFKminus ; //! histogram ... | |
327 | TH2F* fHistMeanTOFDeuteron ; //! histogram ... | |
328 | TH2F* fHistMeanTOFAntiDeuteron ; //! histogram ... | |
329 | TH2F* fHistMeanTOFPositron ; //! histogram ... | |
330 | TH2F* fHistMeanTOFElectron ; //! histogram ... | |
331 | TH2F* fHistMeanTOFMuonPlus ; //! histogram ... | |
332 | TH2F* fHistMeanTOFMuonMinus ; //! histogram ... | |
9777bfcb | 333 | // - |
327288af | 334 | TH2F* fHistMeanTRDPiPlus ; //! histogram ... |
335 | TH2F* fHistMeanTRDPiMinus ; //! histogram ... | |
336 | TH2F* fHistMeanTRDProton ; //! histogram ... | |
337 | TH2F* fHistMeanTRDPbar ; //! histogram ... | |
338 | TH2F* fHistMeanTRDKplus ; //! histogram ... | |
339 | TH2F* fHistMeanTRDKminus ; //! histogram ... | |
340 | TH2F* fHistMeanTRDDeuteron ; //! histogram ... | |
341 | TH2F* fHistMeanTRDAntiDeuteron ; //! histogram ... | |
342 | TH2F* fHistMeanTRDPositron ; //! histogram ... | |
343 | TH2F* fHistMeanTRDElectron ; //! histogram ... | |
344 | TH2F* fHistMeanTRDMuonPlus ; //! histogram ... | |
345 | TH2F* fHistMeanTRDMuonMinus ; //! histogram ... | |
9777bfcb | 346 | // pid probability for all particle (all tracks) |
327288af | 347 | TH1F* fHistPidPiPlus; //! histogram ... |
348 | TH1F* fHistPidPiMinus; //! histogram ... | |
349 | TH1F* fHistPidProton; //! histogram ... | |
350 | TH1F* fHistPidAntiProton; //! histogram ... | |
351 | TH1F* fHistPidKplus; //! histogram ... | |
352 | TH1F* fHistPidKminus; //! histogram ... | |
353 | TH1F* fHistPidDeuteron; //! histogram ... | |
354 | TH1F* fHistPidAntiDeuteron; //! histogram ... | |
355 | TH1F* fHistPidElectron; //! histogram ... | |
356 | TH1F* fHistPidPositron; //! histogram ... | |
357 | TH1F* fHistPidMuonMinus; //! histogram ... | |
358 | TH1F* fHistPidMuonPlus; //! histogram ... | |
9777bfcb | 359 | // pid probability for particle type (all tracks, based on Pid) |
327288af | 360 | TH1F* fHistPidPiPlusPart; //! histogram ... |
361 | TH1F* fHistPidPiMinusPart; //! histogram ... | |
362 | TH1F* fHistPidProtonPart; //! histogram ... | |
363 | TH1F* fHistPidAntiProtonPart; //! histogram ... | |
364 | TH1F* fHistPidKplusPart; //! histogram ... | |
365 | TH1F* fHistPidKminusPart; //! histogram ... | |
366 | TH1F* fHistPidDeuteronPart; //! histogram ... | |
367 | TH1F* fHistPidAntiDeuteronPart; //! histogram ... | |
368 | TH1F* fHistPidElectronPart; //! histogram ... | |
369 | TH1F* fHistPidPositronPart; //! histogram ... | |
370 | TH1F* fHistPidMuonMinusPart; //! histogram ... | |
371 | TH1F* fHistPidMuonPlusPart; //! histogram ... | |
9777bfcb | 372 | // MC labels from the simulation (all tracks) |
327288af | 373 | //TH2F* fLabHist; //! histogram ... |
9777bfcb | 374 | // ***************** |
375 | // selected TRACKS | |
376 | // ***************** | |
327288af | 377 | TProfile* fHistBinEta; //! histogram ... |
378 | TProfile* fHistBinPt; //! histogram ... | |
9777bfcb | 379 | // |
327288af | 380 | TH3F* fHistEtaPtPhi3DPart ; //! histogram ... |
381 | TH2D* fHistYieldPart2D; //! histogram ... | |
382 | TH1F* fHistDcaGlobalPart ; //! histogram ... | |
383 | TH1F* fHistInvMassPart ; //! histogram ... | |
384 | TH3F* fHistEtaPtPhi3DOut ; //! histogram ... | |
385 | TH2D* fHistYieldOut2D; //! histogram ... | |
386 | TH1F* fHistDcaGlobalOut ; //! histogram ... | |
387 | TH1F* fHistInvMassOut ; //! histogram ... | |
388 | TH3F* fHistMeanDedxPos3DPart ; //! histogram ... | |
389 | TH3F* fHistMeanDedxNeg3DPart ; //! histogram ... | |
390 | TH3F* fHistMeanDedxPos3DPartITS ; //! histogram ... | |
391 | TH3F* fHistMeanDedxNeg3DPartITS ; //! histogram ... | |
9777bfcb | 392 | // |
393 | ||
394 | // ***************** | |
395 | // V0s HISTOGRAMS (all v0s) | |
396 | // ***************** | |
327288af | 397 | TH1F* fHistV0Mass; //! histogram ... |
398 | TH3F* fHistV0EtaPtPhi3D; //! histogram ... | |
399 | TH2D* fHistV0YieldAll2D; //! histogram ... | |
400 | TH2D* fHistV0PYall2D; //! histogram ... | |
401 | TH1F* fHistV0Dca; //! histogram ... | |
402 | TH1F* fHistV0Chi2; //! histogram ... | |
403 | TH1F* fHistV0Lenght; //! histogram ... | |
404 | TH1F* fHistV0Sigma; //! histogram ... | |
405 | TProfile* fHistV0CosPhi; //! histogram ... | |
406 | TH2D* fHistV0MassPtSlices; //! histogram ... | |
9777bfcb | 407 | // ***************** |
408 | // selected V0s | |
409 | // ***************** | |
327288af | 410 | TProfile* fHistV0BinEta; //! histogram ... |
411 | TProfile* fHistV0BinPt; //! histogram ... | |
412 | TProfile* fHistV0sbBinEta; //! histogram ... | |
413 | TProfile* fHistV0sbBinPt; //! histogram ... | |
9777bfcb | 414 | // |
327288af | 415 | TH1F* fHistV0MassWin ; //! histogram ... |
416 | TH3F* fHistV0EtaPtPhi3DPart ; //! histogram ... | |
417 | TH2D* fHistV0YieldPart2D; //! histogram ... | |
418 | TH1F* fHistV0DcaPart ; //! histogram ... | |
419 | TH1F* fHistV0LenghtPart ; //! histogram ... | |
420 | TH1F* fHistV0sbMassSide ; //! histogram ... | |
421 | TH3F* fHistV0sbEtaPtPhi3DPart ; //! histogram ... | |
422 | TH2D* fHistV0sbYieldPart2D; //! histogram ... | |
423 | TH1F* fHistV0sbDcaPart ; //! histogram ... | |
424 | TH1F* fHistV0sbLenghtPart ; //! histogram ... | |
9777bfcb | 425 | |
426 | // for each harmonic, each selection, and each sub-event | |
427 | ||
428 | // ***************** | |
429 | // SUB-EVENTs HISTOGRAMS | |
430 | // ***************** | |
327288af | 431 | struct AliHistSubHars { |
432 | TH1F* fHistPsiSubs; //! histogram ... | |
9777bfcb | 433 | }; |
327288af | 434 | |
435 | struct AliHistSubs { | |
436 | struct AliHistSubHars fHistSubHar[AliFlowConstants::kHars]; //! structure array ... | |
9777bfcb | 437 | }; |
327288af | 438 | struct AliHistSubs fHistSub[AliFlowConstants::kSels*AliFlowConstants::kSubs]; //! structure ... |
9777bfcb | 439 | |
440 | // for each harmonic and each selection | |
441 | ||
327288af | 442 | struct AliHistFullHars |
9777bfcb | 443 | { |
444 | // weights | |
327288af | 445 | TH1D* fHistPhiPlus; //! histogram ... |
446 | TH1D* fHistPhiMinus; //! histogram ... | |
447 | TH1D* fHistPhiAll; //! histogram ... | |
448 | TH1D* fHistPhiWgtPlus; //! histogram ... | |
449 | TH1D* fHistPhiWgtMinus; //! histogram ... | |
450 | TH1D* fHistPhiWgtAll; //! histogram ... | |
451 | TH1D* fHistPhiFlatPlus; //! histogram ... | |
452 | TH1D* fHistPhiFlatMinus; //! histogram ... | |
453 | TH1D* fHistPhiFlatAll; //! histogram ... | |
454 | TH1D* fHistPhi; //! histogram ... | |
455 | TH1D* fHistPhiWgt; //! histogram ... | |
456 | TH1D* fHistPhiFlat; //! histogram ... | |
9777bfcb | 457 | // flow (events) |
327288af | 458 | TH1F* fHistPsi; //! histogram ... |
459 | TH1F* fHistPsiSubCorr; //! histogram ... | |
460 | TH1F* fHistPsiSubCorrDiff; //! histogram ... | |
461 | TH1F* fHistPsiDiff; //! histogram ... | |
462 | TH1F* fHistMult; //! histogram ... | |
463 | TH1F* fHistQnorm; //! histogram ... | |
9777bfcb | 464 | // flow (tracks) |
327288af | 465 | TH1F* fHistPhiCorr; //! histogram ... |
466 | TProfile2D* fHistvObs2D; //! histogram ... | |
467 | TProfile* fHistvObsEta; //! histogram ... | |
468 | TProfile* fHistvObsPt; //! histogram ... | |
469 | TH2D* fHistv2D; //! histogram ... | |
470 | TH1D* fHistvEta; //! histogram ... | |
471 | TH1D* fHistvPt; //! histogram ... | |
472 | // flow (v0s) | |
473 | TH1F* fHistV0PhiCorr; //! histogram ... | |
474 | TProfile2D* fHistV0vObs2D; //! histogram ... | |
475 | TProfile* fHistV0vObsEta; //! histogram ... | |
476 | TProfile* fHistV0vObsPt; //! histogram ... | |
477 | TH2D* fHistV0v2D; //! histogram ... | |
478 | TH1D* fHistV0vEta; //! histogram ... | |
479 | TH1D* fHistV0vPt; //! histogram ... | |
9777bfcb | 480 | // flow (v0s sidebands) |
327288af | 481 | TProfile* fHistV0sbvObsEtaSx ; //! histogram ... |
482 | TProfile* fHistV0sbvObsPtSx ; //! histogram ... | |
483 | TProfile* fHistV0sbvObsEtaDx ; //! histogram ... | |
484 | TProfile* fHistV0sbvObsPtDx ; //! histogram ... | |
485 | TH1F* fHistV0sbPhiCorr ; //! histogram ... | |
486 | TProfile2D* fHistV0sbvObs2D ; //! histogram ... | |
487 | TProfile* fHistV0sbvObsEta ; //! histogram ... | |
488 | TProfile* fHistV0sbvObsPt ; //! histogram ... | |
489 | TH2D* fHistV0sbv2D ; //! histogram ... | |
490 | TH1D* fHistV0sbvEta ; //! histogram ... | |
491 | TH1D* fHistV0sbvPt ; //! histogram ... | |
9777bfcb | 492 | // check (tracks used for R.P.) |
327288af | 493 | TH1F* fHistYieldPt ; //! histogram ... |
494 | TH3F* fHistEtaPtPhi3D ; //! histogram ... | |
495 | TH2D* fHistYield2D ; //! histogram ... | |
496 | TH1F* fHistDcaGlob ; //! histogram ... | |
9777bfcb | 497 | // check (tracks excluded) |
327288af | 498 | TH1F* fHistYieldPtout; //! histogram ... |
499 | TH3F* fHistEtaPtPhi3Dout ; //! histogram ... | |
500 | TH2D* fHistYield2Dout ; //! histogram ... | |
501 | TH1F* fHistDcaGlobout ; //! histogram ... | |
9777bfcb | 502 | }; |
503 | ||
504 | // for each selection | |
505 | ||
327288af | 506 | struct AliHistFulls |
9777bfcb | 507 | { |
327288af | 508 | TH1F* fHistBayPidMult; //! histogram ... |
9777bfcb | 509 | // flow (events) |
327288af | 510 | TProfile* fHistCos; //! histogram ... |
511 | TH1F* fHistRes; //! histogram ... | |
512 | TProfile* fHistvObs; //! histogram ... | |
513 | TH1D* fHistv; //! histogram ... | |
514 | TProfile* fHistV0vObs; //! histogram ... | |
515 | TProfile* fHistV0sbvObsSx; //! histogram ... | |
516 | TProfile* fHistV0sbvObsDx; //! histogram ... | |
517 | TH1D* fHistV0v; //! histogram ... | |
9777bfcb | 518 | // wgt, evts, trks, v0s (as defined above) |
327288af | 519 | struct AliHistFullHars fHistFullHar[AliFlowConstants::kHars]; //! structure array ... |
9777bfcb | 520 | }; |
327288af | 521 | struct AliHistFulls fHistFull[AliFlowConstants::kSels]; //! structure array ... |
9777bfcb | 522 | |
523 | ClassDef(AliFlowAnalyser,0) // macro for rootcint | |
524 | }; | |
525 | ||
526 | #endif | |
527 | ||
528 | ||
529 | ||
530 | // lame = not productive; poorly designed; uncool ... |