]>
Commit | Line | Data |
---|---|---|
5cc1aee2 | 1 | #ifndef ALIDNDPTANALYSISPPB_H |
2 | #define ALIDNDPTANALYSISPPB_H | |
3 | ||
4 | //------------------------------------------------------------------------------ | |
5 | // AlidNdPtAnalysispPb class used for dNdPt analysis in p-Pb collisions | |
6 | // based on AlidNdPtAnalysis class | |
7 | // | |
8 | // Author: J.Otwinowski 04/11/2008 | |
545628c3 | 9 | // last change: 2013-06-19 by M.Knichel |
5cc1aee2 | 10 | //------------------------------------------------------------------------------ |
11 | ||
12 | class iostream; | |
13 | ||
14 | class TFile; | |
15 | class TCint; | |
16 | class TProfile; | |
17 | class TFolder; | |
18 | class TObjArray; | |
19 | class TString; | |
20 | class THnSparse; | |
21 | ||
22 | class AliESDtrackCuts; | |
23 | class AliVertexerTracks; | |
24 | class AliESD; | |
25 | class AliESDfriend; | |
26 | class AliESDfriendTrack; | |
27 | class AlidNdPtHelper; | |
545628c3 | 28 | class AliAnalysisUtils; |
5cc1aee2 | 29 | |
30 | #include "AlidNdPt.h" | |
31 | #include "TObjString.h" | |
32 | ||
33 | class AlidNdPtAnalysispPb : public AlidNdPt { | |
34 | public : | |
35 | AlidNdPtAnalysispPb(); | |
36 | AlidNdPtAnalysispPb(Char_t* name, Char_t* title); | |
37 | ~AlidNdPtAnalysispPb(); | |
38 | ||
39 | // Init data members | |
40 | virtual void Init(); | |
41 | ||
42 | // Process events | |
43 | virtual void Process(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0); | |
44 | ||
45 | // Merge output objects (needed by PROOF) | |
46 | virtual Long64_t Merge(TCollection* const list); | |
47 | ||
48 | // Analyse output histograms | |
49 | virtual void Analyse(); | |
50 | ||
51 | // Export objects to folder | |
52 | virtual TFolder *ExportToFolder(TObjArray * const array=0); | |
53 | ||
54 | // Get analysis folder | |
55 | TFolder* GetAnalysisFolder() const {return fAnalysisFolder;} | |
56 | ||
57 | // Fill control histograms | |
c5e5fe8c | 58 | void SetHistogramsOn(Bool_t histOn=kTRUE) {fHistogramsOn = histOn;} |
5cc1aee2 | 59 | Bool_t IsHistogramsOn() const {return fHistogramsOn;} |
60 | ||
61 | // Define 0-multiplicity bin for LHC | |
62 | // background calculation | |
63 | static Bool_t IsBinZeroSPDvtx(const AliESDEvent* esdEvent); | |
64 | static Bool_t IsBinZeroTrackSPDvtx(const AliESDEvent* esdEvent); | |
65 | ||
66 | // Create folder for analysed histograms | |
67 | TFolder *CreateFolder(TString folder = "folderdNdPtAnalysis",TString title = "Analysed dNdPt histograms"); | |
68 | ||
69 | // Set binning for Histograms (if not set default binning is used) | |
70 | void SetBinsMult(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fMultNbins = nbins; fBinsMult = CloneArray(fMultNedges = nbins+1,edges); } } | |
df1c0513 | 71 | void SetBinsMultTE(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fMultNbinsTE = nbins; fBinsMultTE = CloneArray(fMultNedgesTE = nbins+1,edges); } } |
5cc1aee2 | 72 | void SetBinsPt(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fPtNbins = nbins; fBinsPt = CloneArray(fPtNedges = nbins+1,edges); } } |
73 | void SetBinsPtCorr(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fPtCorrNbins = nbins; fBinsPtCorr = CloneArray(fPtCorrNedges = nbins+1,edges); } } | |
74 | void SetBinsEta(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fEtaNbins = nbins; fBinsEta = CloneArray(fEtaNedges = nbins+1,edges); } } | |
75 | void SetBinsZv(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fZvNbins = nbins; fBinsZv = CloneArray(fZvNedges = nbins+1,edges); } } | |
76 | ||
77 | // Fill histograms | |
78 | void FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj, Int_t multMB); | |
79 | void FillHistograms(AliStack *const stack, Int_t label, AlidNdPtHelper::TrackObject trackObj); | |
80 | void FillHistograms(TObjArray *const allChargedTracks,Int_t *const labelsAll,Int_t multAll,Int_t *const labelsAcc,Int_t multAcc,Int_t *const labelsRec,Int_t multRec); | |
81 | ||
82 | // Getters | |
83 | THnSparseF *GetEventMultCorrelationMatrix() const {return fEventMultCorrelationMatrix;} | |
84 | THnSparseF *GetTrackPtCorrelationMatrix() const {return fTrackPtCorrelationMatrix;} | |
df1c0513 | 85 | |
5cc1aee2 | 86 | |
87 | //NOTE: for now in p-Pb ND and NSD are the same, DD is empty! | |
88 | //kNSD would have to be added to PWG0Helper, now kND is used to signal NSD! | |
89 | THnSparseF *GetGenEventMatrix() const {return fGenEventMatrix;} | |
90 | THnSparseF *GetGenSDEventMatrix() const {return fGenSDEventMatrix;} | |
91 | THnSparseF *GetGenDDEventMatrix() const {return fGenDDEventMatrix;} | |
92 | THnSparseF *GetGenNDEventMatrix() const {return fGenNDEventMatrix;} | |
93 | THnSparseF *GetGenNSDEventMatrix() const {return fGenNSDEventMatrix;} | |
94 | ||
95 | //NOTE: for now in p-Pb ND and NSD are the same, DD is empty! | |
96 | THnSparseF *GetTriggerEventMatrix() const {return fTriggerEventMatrix;} | |
97 | THnSparseF *GetTriggerSDEventMatrix() const {return fTriggerSDEventMatrix;} | |
98 | THnSparseF *GetTriggerDDEventMatrix() const {return fTriggerDDEventMatrix;} | |
99 | THnSparseF *GetTriggerNDEventMatrix() const {return fTriggerNDEventMatrix;} | |
100 | THnSparseF *GetTriggerNSDEventMatrix() const {return fTriggerNSDEventMatrix;} | |
101 | ||
102 | //NOTE: for now in p-Pb ND and NSD are the same, DD is empty! | |
103 | THnSparseF *GetRecEventMatrix() const {return fRecEventMatrix;} | |
104 | THnSparseF *GetRecSDEventMatrix() const {return fRecSDEventMatrix;} | |
105 | THnSparseF *GetRecDDEventMatrix() const {return fRecDDEventMatrix;} | |
106 | THnSparseF *GetRecNDEventMatrix() const {return fRecNDEventMatrix;} | |
107 | THnSparseF *GetRecNSDEventMatrix() const {return fRecNSDEventMatrix;} | |
108 | ||
109 | // | |
110 | THnSparseF *GetRecCandleEventMatrix() const {return fRecCandleEventMatrix;} | |
111 | ||
112 | //NOTE: for now in p-Pb ND and NSD are the same, DD is empty! | |
113 | THnSparseF *GetGenTrackEventMatrix() const {return fGenTrackEventMatrix;} | |
114 | THnSparseF *GetGenTrackSDEventMatrix() const {return fGenTrackSDEventMatrix;} | |
115 | THnSparseF *GetGenTrackDDEventMatrix() const {return fGenTrackDDEventMatrix;} | |
116 | THnSparseF *GetGenTrackNDEventMatrix() const {return fGenTrackNDEventMatrix;} | |
117 | THnSparseF *GetGenTrackNSDEventMatrix() const {return fGenTrackNSDEventMatrix;} | |
118 | ||
119 | //NOTE: for now in p-Pb ND and NSD are the same, DD is empty! | |
120 | THnSparseF *GetTriggerTrackEventMatrix() const {return fTriggerTrackEventMatrix;} | |
121 | THnSparseF *GetTriggerTrackSDEventMatrix() const {return fTriggerTrackSDEventMatrix;} | |
122 | THnSparseF *GetTriggerTrackDDEventMatrix() const {return fTriggerTrackDDEventMatrix;} | |
123 | THnSparseF *GetTriggerTrackNDEventMatrix() const {return fTriggerTrackNDEventMatrix;} | |
124 | THnSparseF *GetTriggerTrackNSDEventMatrix() const {return fTriggerTrackNSDEventMatrix;} | |
125 | ||
126 | //NOTE: for now in p-Pb ND and NSD are the same, DD is empty! | |
127 | THnSparseF *GetRecTrackEventMatrix() const {return fRecTrackEventMatrix;} | |
128 | THnSparseF *GetRecTrackSDEventMatrix() const {return fRecTrackSDEventMatrix;} | |
129 | THnSparseF *GetRecTrackDDEventMatrix() const {return fRecTrackDDEventMatrix;} | |
130 | THnSparseF *GetRecTrackNDEventMatrix() const {return fRecTrackNDEventMatrix;} | |
131 | THnSparseF *GetRecTrackNSDEventMatrix() const {return fRecTrackNSDEventMatrix;} | |
132 | ||
133 | // | |
134 | THnSparseF *GetGenTrackMatrix() const {return fGenTrackMatrix;} | |
135 | THnSparseF *GetGenPrimTrackMatrix() const {return fGenPrimTrackMatrix;} | |
136 | THnSparseF *GetRecPrimTrackMatrix() const {return fRecPrimTrackMatrix;} | |
137 | ||
138 | THnSparseF *GetRecTrackMatrix() const {return fRecTrackMatrix;} | |
139 | THnSparseF *GetRecSecTrackMatrix() const {return fRecSecTrackMatrix;} | |
140 | THnSparseF *GetRecMultTrackMatrix() const {return fRecMultTrackMatrix;} | |
141 | ||
142 | // | |
143 | // control histograms | |
144 | // | |
145 | THnSparseF *GetMCEventHist1() const {return fMCEventHist1;} | |
146 | THnSparseF *GetRecEventHist1() const {return fRecEventHist1;} | |
147 | THnSparseF *GetRecEventHist2() const {return fRecEventHist2;} | |
148 | THnSparseF *GetRecMCEventHist1() const {return fRecMCEventHist1;} | |
149 | THnSparseF *GetRecMCEventHist2() const {return fRecMCEventHist2;} | |
150 | THnSparseF *GetRecMCEventHist3() const {return fRecMCEventHist3;} | |
151 | ||
152 | THnSparseF *GetMCTrackHist1(Int_t i) const {return fMCTrackHist1[i];} | |
153 | THnSparseF *GetMCPrimTrackHist1(Int_t i) const {return fMCPrimTrackHist1[i];} | |
154 | THnSparseF *GetMCPrimTrackHist2(Int_t i) const {return fMCPrimTrackHist2[i];} | |
155 | THnSparseF *GetMCSecTrackHist1(Int_t i) const {return fMCSecTrackHist1[i];} | |
156 | ||
157 | THnSparseF *GetRecTrackHist1(Int_t i) const {return fRecTrackHist1[i];} | |
158 | THnSparseF *GetRecTrackMultHist1(Int_t i) const {return fRecTrackMultHist1[i];} | |
159 | ||
160 | THnSparseF *GetRecMCTrackHist1() const {return fRecMCTrackHist1;} | |
161 | THnSparseF *GetMCMultRecTrackHist1() const {return fMCMultRecTrackHist1;} | |
162 | ||
163 | THnSparseF *GetRecTrackHist2() const {return fRecTrackHist2;} | |
164 | THnSparseF *GetEventCount() const {return fEventCount;} | |
165 | ||
166 | // | |
167 | // Generic histograms to be corrected | |
168 | // | |
169 | THnSparseF* GetRecEventHist() const {return fRecEventHist;} | |
170 | THnSparseF* GetRecTrackHist() const {return fRecTrackHist;} | |
171 | THnSparseF* GetEventMultHist() const {return fEventMultHist;} | |
95a71a5c | 172 | THnSparseF* GetMCPrimTrackHist() const {return fMCPrimTrackHist;} |
173 | ||
5cc1aee2 | 174 | // |
175 | // centrality histograms etc. getter+setter | |
176 | // | |
177 | THnSparseF* GetCentralityEventHist() const {return fCentralityEventHist;} | |
178 | THnSparseF* GetCentralityTrackHist() const {return fCentralityTrackHist;} | |
179 | const char* GetCentralityEstimator(Int_t i) {return ((i > 0) && (i <= fDimensionsCentralityEstimators)) ? ((TObjString*)fCentralityEstimatorsList->At(i-1))->GetName() : 0; } | |
180 | Int_t GetNCentralityEstimators() {return fDimensionsCentralityEstimators;} | |
181 | void SetBinsCentrality(Int_t nbins, Double_t* edges) { if (CanChangeBins()) { fCentralityNbins = nbins; fBinsCentrality = CloneArray(fCentralityNedges = nbins+1,edges); } } | |
182 | void SetCentralityEstimators(const char* estimators); | |
df1c0513 | 183 | |
184 | //rapidity shift getter+setter | |
185 | void SetRapidityShift(Double_t yShift) { fRapidityShift = yShift;} | |
186 | Double_t GetRapidityShift() { return fRapidityShift; } | |
545628c3 | 187 | |
188 | void Set2013pA(Bool_t is2013 = kTRUE) { fIs2013pA = is2013; } | |
189 | Double_t Get2013pA() { return fIs2013pA; } | |
190 | ||
5cc1aee2 | 191 | |
192 | private: | |
193 | ||
194 | // analysis folder | |
195 | TFolder *fAnalysisFolder; // folder for analysed histograms | |
196 | Bool_t fHistogramsOn; // switch on/off filling of control histograms | |
197 | ||
198 | // | |
199 | // correlation matrices (histograms) | |
200 | // | |
201 | ||
202 | // event rec. track vs true track multiplicity correlation matrix | |
df1c0513 | 203 | THnSparseF *fEventMultCorrelationMatrix; //-> multRecMult:multTrueMC:multMB |
5cc1aee2 | 204 | |
205 | // rec. track pt vs true track pt correlation matrix for given eta | |
206 | THnSparseF *fTrackPtCorrelationMatrix; //-> Pt:mcPt:mcEta | |
207 | ||
208 | // | |
209 | // event level correction | |
210 | // | |
211 | ||
212 | // all genertated | |
df1c0513 | 213 | THnSparseF *fGenEventMatrix; //-> mcZv:multTrueMC (inelastic) |
214 | THnSparseF *fGenSDEventMatrix; //-> mcZv:multTrueMC (single diffractive) | |
215 | THnSparseF *fGenDDEventMatrix; //-> mcZv:multTrueMC (single diffractive) | |
216 | THnSparseF *fGenNDEventMatrix; //-> mcZv:multTrueMC (non diffractive) | |
217 | THnSparseF *fGenNSDEventMatrix; //-> mcZv:multTrueMC (non single diffractive) | |
5cc1aee2 | 218 | |
219 | // trigger bias corrections (fTriggerEventMatrix / fGenEventMatrix) | |
df1c0513 | 220 | THnSparseF *fTriggerEventMatrix; //-> mcZv:multTrueMC |
221 | THnSparseF *fTriggerSDEventMatrix; //-> mcZv:multTrueMC | |
222 | THnSparseF *fTriggerDDEventMatrix; //-> mcZv:multTrueMC | |
223 | THnSparseF *fTriggerNDEventMatrix; //-> mcZv:multTrueMC | |
224 | THnSparseF *fTriggerNSDEventMatrix; //-> mcZv:multTrueMC | |
5cc1aee2 | 225 | |
226 | // event vertex rec. eff correction (fRecEventMatrix / fTriggerEventMatrix) | |
df1c0513 | 227 | THnSparseF *fRecEventMatrix; //-> mcZv:multTrueMC:Centrality |
228 | THnSparseF *fRecSDEventMatrix; //-> mcZv:multTrueMC | |
229 | THnSparseF *fRecDDEventMatrix; //-> mcZv:multTrueMC | |
230 | THnSparseF *fRecNDEventMatrix; //-> mcZv:multTrueMC | |
231 | THnSparseF *fRecNSDEventMatrix; //-> mcZv:multTrueMC | |
5cc1aee2 | 232 | |
233 | // | |
df1c0513 | 234 | // track-event level correction |
5cc1aee2 | 235 | // |
236 | ||
df1c0513 | 237 | THnSparseF *fGenTrackEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC |
238 | THnSparseF *fGenTrackSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC | |
239 | THnSparseF *fGenTrackDDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC | |
240 | THnSparseF *fGenTrackNDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC | |
241 | THnSparseF *fGenTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC | |
5cc1aee2 | 242 | |
243 | // trigger bias corrections (fTriggerTrackEventMatrix / fGenTrackEventMatrix) | |
df1c0513 | 244 | THnSparseF *fTriggerTrackEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC |
245 | THnSparseF *fTriggerTrackSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC | |
246 | THnSparseF *fTriggerTrackDDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC | |
247 | THnSparseF *fTriggerTrackNDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC | |
248 | THnSparseF *fTriggerTrackNSDEventMatrix; //-> mcZv:mcPt:mcEta:multTrueMC | |
5cc1aee2 | 249 | |
250 | // event vertex rec. corrections (fRecTrackEventMatrix / fTriggerTrackEventMatrix) | |
df1c0513 | 251 | THnSparseF *fRecTrackEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC |
252 | THnSparseF *fRecTrackSDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC | |
253 | THnSparseF *fRecTrackDDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC | |
254 | THnSparseF *fRecTrackNDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC | |
255 | THnSparseF *fRecTrackNSDEventMatrix; //-> mcZv:Pt:mcEta:multTrueMC | |
5cc1aee2 | 256 | |
257 | // | |
258 | // track level correction | |
259 | // | |
260 | ||
261 | // track rec. efficiency correction (fRecPrimTrackMatrix / fGenPrimTrackMatrix) | |
262 | THnSparseF *fGenTrackMatrix; //-> mcZv:mcPt:mcEta | |
df1c0513 | 263 | THnSparseF *fGenPrimTrackMatrix; //-> mcZv:mcPt:mcEta:Centrality |
264 | THnSparseF *fRecPrimTrackMatrix; //-> mcZv:mcPt:mcEta:Centrality | |
5cc1aee2 | 265 | |
266 | // secondary track contamination correction (fRecSecTrackMatrix / fRecTrackMatrix) | |
df1c0513 | 267 | THnSparseF *fRecTrackMatrix; //-> mcZv:mcPt:mcEta:Centrality |
268 | THnSparseF *fRecSecTrackMatrix; //-> mcZv:mcPt:mcEta:Centrality | |
5cc1aee2 | 269 | |
270 | // multiple rec. track corrections (fRecMultTrackMatrix / fRecTrackMatrix) | |
271 | THnSparseF *fRecMultTrackMatrix; //-> mcZv:Pt:mcEta | |
272 | ||
273 | // | |
274 | // ESD and MC control analysis histograms | |
275 | // | |
276 | ||
277 | // THnSparse event histograms | |
278 | THnSparseF *fMCEventHist1; //-> mcXv:mcYv:mcZv | |
279 | THnSparseF *fRecEventHist1; //-> Xv:Yv:Zv | |
df1c0513 | 280 | THnSparseF *fRecEventHist2; //-> Zv:multMB:multRecMult |
5cc1aee2 | 281 | THnSparseF *fRecMCEventHist1; //-> Xv-mcXv:Yv-mcYv:Zv-mcZv |
df1c0513 | 282 | THnSparseF *fRecMCEventHist2; //-> Xv-mcXv:Zv-mcZv:multMB |
283 | THnSparseF *fRecMCEventHist3; //-> multRec:EventType (ND, DD, SD) | |
5cc1aee2 | 284 | |
285 | // THnSparse track histograms | |
286 | // [0] - after charged track selection, [1] - after acceptance cuts, [2] - after esd track cuts | |
287 | ||
288 | THnSparseF *fMCTrackHist1[AlidNdPtHelper::kCutSteps]; //-> mcPt:mcEta:mcPhi | |
289 | THnSparseF *fMCPrimTrackHist1[AlidNdPtHelper::kCutSteps]; //-> mcPt:mcEta:pid:mech:mother | |
290 | THnSparseF *fMCPrimTrackHist2[AlidNdPtHelper::kCutSteps]; //-> pdg:mech:mother | |
291 | THnSparseF *fMCSecTrackHist1[AlidNdPtHelper::kCutSteps]; //-> mcPt:mcEta:pid:mech:mother | |
292 | ||
293 | THnSparseF *fRecTrackHist1[AlidNdPtHelper::kCutSteps]; //-> Pt:Eta:Phi | |
294 | THnSparseF *fRecTrackMultHist1[AlidNdPtHelper::kCutSteps]; //-> Pt:mult | |
295 | ||
296 | THnSparseF *fRecMCTrackHist1; //-> mcPt:mcEta:(Pt-mcPt)/mcPt:(Eta-mcEta) | |
297 | ||
298 | //multple reconstructed tracks | |
299 | THnSparseF *fMCMultRecTrackHist1; //-> mcPt:mcEta:pid | |
300 | ||
301 | // track control histograms | |
302 | THnSparseF *fRecTrackHist2; //-> nclust:chi2:Pt:Eta:Phi | |
303 | ||
304 | // | |
305 | // Generic histograms to be corrected | |
306 | // | |
307 | THnSparseF *fRecEventHist; //-> Zv:multMB | |
df1c0513 | 308 | THnSparseF *fRecTrackHist; //-> Zv:pT:eta:multRecMult |
5cc1aee2 | 309 | THnSparseF *fEventCount; //-> trig, trig + vertex, selected event |
df1c0513 | 310 | THnSparseF *fEventMultHist; // event multiplicities multMB:multRecMult:multRec |
311 | THnSparseF *fMCPrimTrackHist; //-> Zv:mcpT:mceta:multTrueMC | |
5cc1aee2 | 312 | |
313 | // | |
314 | // candle events track corrections | |
315 | // | |
316 | THnSparseF *fRecCandleEventMatrix; // Zv:multMB | |
317 | ||
318 | // centrality test histograms | |
df1c0513 | 319 | THnSparseF *fCentralityEventHist; // rec event hist with centrality zv:multRecMult:multMB:cent:... |
320 | THnSparseF *fCentralityTrackHist; // rec track hist with centrality zv:pt:eta:multRecMult:multMB:cent:... | |
5cc1aee2 | 321 | TObjArray *fCentralityEstimatorsList; // TObjArray with TObjStrings containing cent. estimators |
322 | Int_t fDimensionsCentralityEstimators; // number of centrality estimators: if 0 hists are not filled | |
323 | Int_t fCentralityNbins; // number of centrality bins (common for all estimators) | |
324 | Int_t fCentralityNedges; // fCentralityNbins+1 uses for streaming dynamic array | |
325 | Double_t *fBinsCentrality; //[fCentralityNedges] | |
326 | ||
bc1c2f31 | 327 | Int_t fNVCentralityEvent; // |
328 | Int_t fNVCentralityTrack; // | |
5cc1aee2 | 329 | Double_t *fVCentralityEvent; //[fNVCentralityEvent] |
330 | Double_t *fVCentralityTrack; //[fNVCentralityTrack] | |
331 | ||
332 | //binning for THNsparse | |
333 | Int_t fMultNbins; | |
df1c0513 | 334 | Int_t fMultNbinsTE; |
5cc1aee2 | 335 | Int_t fPtNbins; |
336 | Int_t fPtCorrNbins; | |
337 | Int_t fEtaNbins; | |
338 | Int_t fZvNbins; | |
339 | Int_t fMultNedges; // fMultNbins+1 uses for streaming dynamic array | |
df1c0513 | 340 | Int_t fMultNedgesTE; // fMultNbinsTE+1 uses for streaming dynamic array |
5cc1aee2 | 341 | Int_t fPtNedges; // fPtNbins+1 uses for streaming dynamic array |
342 | Int_t fPtCorrNedges; // fCentralityNbins+1 uses for streaming dynamic array | |
343 | Int_t fEtaNedges; // fEtaNbins+1 uses for streaming dynamic array | |
344 | Int_t fZvNedges; // fZvNbins+1 uses for streaming dynamic array | |
345 | Double_t *fBinsMult; //[fMultNedges] | |
df1c0513 | 346 | Double_t *fBinsMultTE; //[fMultNedgesTE] |
5cc1aee2 | 347 | Double_t *fBinsPt; //[fPtNedges] |
348 | Double_t *fBinsPtCorr; //[fPtCorrNedges] | |
349 | Double_t *fBinsEta; //[fEtaNedges] | |
350 | Double_t *fBinsZv; //[fZvNedges] | |
351 | ||
df1c0513 | 352 | Double_t fRapidityShift; //y shift CMS vs. LAB |
545628c3 | 353 | AliAnalysisUtils* fUtils; |
354 | Bool_t fIs2013pA; | |
df1c0513 | 355 | |
5cc1aee2 | 356 | Bool_t fIsInit; |
545628c3 | 357 | |
5cc1aee2 | 358 | // generic function to change binning |
359 | Bool_t CanChangeBins(); | |
360 | ||
361 | AlidNdPtAnalysispPb(const AlidNdPtAnalysispPb&); // not implemented | |
362 | AlidNdPtAnalysispPb& operator=(const AlidNdPtAnalysispPb&); // not implemented | |
363 | ||
545628c3 | 364 | ClassDef(AlidNdPtAnalysispPb,6); |
5cc1aee2 | 365 | }; |
366 | ||
367 | #endif |