]>
Commit | Line | Data |
---|---|---|
a75aacd6 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | /* $Id: AliUEHistograms.cxx 20164 2007-08-14 15:31:50Z morsch $ */ | |
17 | ||
18 | // | |
19 | // | |
20 | // encapsulates several AliUEHist objects for a full UE analysis plus additional control histograms | |
21 | // | |
22 | // | |
23 | // Author: Jan Fiete Grosse-Oetringhaus, Sara Vallero | |
24 | ||
25 | #include "AliUEHistograms.h" | |
26 | ||
27 | #include "AliCFContainer.h" | |
28 | #include "AliVParticle.h" | |
29 | ||
30 | #include "TList.h" | |
31 | #include "TH2F.h" | |
32 | #include "TH1F.h" | |
33 | #include "TH3F.h" | |
34 | #include "TMath.h" | |
35 | ||
36 | ClassImp(AliUEHistograms) | |
37 | ||
38 | AliUEHistograms::AliUEHistograms() : | |
d1c75d06 | 39 | TObject(), |
a75aacd6 | 40 | fNumberDensitypT(0), |
41 | fSumpT(0), | |
42 | fNumberDensityPhi(0), | |
43 | fCorrelationpT(0), | |
44 | fCorrelationEta(0), | |
45 | fCorrelationPhi(0), | |
46 | fCorrelationR(0), | |
47 | fCorrelationLeading2Phi(0), | |
48 | fCorrelationMultiplicity(0), | |
49 | fEventCount(0), | |
50 | fEventCountDifferential(0), | |
51 | fVertexContributors(0) | |
52 | { | |
53 | // Constructor | |
54 | ||
55 | fNumberDensitypT = new AliUEHist("NumberDensitypT"); | |
56 | fSumpT = new AliUEHist("SumpT"); | |
57 | fNumberDensityPhi = new AliUEHist("NumberDensityPhi"); | |
58 | ||
59 | // do not add this hists to the directory | |
60 | Bool_t oldStatus = TH1::AddDirectoryStatus(); | |
61 | TH1::AddDirectory(kFALSE); | |
62 | ||
63 | fCorrelationpT = new TH2F("fCorrelationpT", ";p_{T,lead} (MC);p_{T,lead} (RECO)", 200, 0, 50, 200, 0, 50); | |
64 | fCorrelationEta = new TH2F("fCorrelationEta", ";#eta_{T,lead} (MC);#eta_{T,lead} (RECO)", 200, -1, 1, 200, -1, 1); | |
65 | fCorrelationPhi = new TH2F("fCorrelationPhi", ";#phi_{T,lead} (MC);#phi_{T,lead} (RECO)", 200, 0, TMath::TwoPi(), 200, 0, TMath::TwoPi()); | |
66 | fCorrelationR = new TH2F("fCorrelationR", ";R;p_{T,lead} (MC)", 200, 0, 2, 200, 0, 50); | |
67 | fCorrelationLeading2Phi = new TH2F("fCorrelationLeading2Phi", ";#Delta #phi;p_{T,lead} (MC)", 200, -TMath::Pi(), TMath::Pi(), 200, 0, 50); | |
68 | fCorrelationMultiplicity = new TH2F("fCorrelationMultiplicity", ";MC tracks;Reco tracks", 100, -0.5, 99.5, 100, -0.5, 99.5); | |
69 | ||
144bd037 | 70 | fEventCount = new TH2F("fEventCount", ";step;event type;count", AliUEHist::fgkCFSteps+2, -2.5, -0.5 + AliUEHist::fgkCFSteps, 3, -0.5, 2.5); |
a75aacd6 | 71 | fEventCount->GetYaxis()->SetBinLabel(1, "ND"); |
72 | fEventCount->GetYaxis()->SetBinLabel(2, "SD"); | |
73 | fEventCount->GetYaxis()->SetBinLabel(3, "DD"); | |
74 | ||
75 | fEventCountDifferential = new TH3F("fEventCountDifferential", ";p_{T,lead};step;event type", 100, 0, 50, AliUEHist::fgkCFSteps, -0.5, -0.5 + AliUEHist::fgkCFSteps, 3, -0.5, 2.5); | |
76 | fEventCountDifferential->GetZaxis()->SetBinLabel(1, "ND"); | |
77 | fEventCountDifferential->GetZaxis()->SetBinLabel(2, "SD"); | |
78 | fEventCountDifferential->GetZaxis()->SetBinLabel(3, "DD"); | |
79 | ||
80 | fVertexContributors = new TH1F("fVertexContributors", ";contributors;count", 100, -0.5, 99.5); | |
81 | ||
82 | TH1::AddDirectory(oldStatus); | |
83 | } | |
84 | ||
d1c75d06 | 85 | //_____________________________________________________________________________ |
86 | AliUEHistograms::AliUEHistograms(const AliUEHistograms &c) : | |
87 | TObject(), | |
88 | fNumberDensitypT(0), | |
89 | fSumpT(0), | |
90 | fNumberDensityPhi(0), | |
91 | fCorrelationpT(0), | |
92 | fCorrelationEta(0), | |
93 | fCorrelationPhi(0), | |
94 | fCorrelationR(0), | |
95 | fCorrelationLeading2Phi(0), | |
96 | fCorrelationMultiplicity(0), | |
97 | fEventCount(0), | |
98 | fEventCountDifferential(0), | |
99 | fVertexContributors(0) | |
100 | { | |
101 | // | |
102 | // AliUEHistograms copy constructor | |
103 | // | |
104 | ||
105 | ((AliUEHistograms &) c).Copy(*this); | |
106 | } | |
107 | ||
a75aacd6 | 108 | //____________________________________________________________________ |
109 | AliUEHistograms::~AliUEHistograms() | |
110 | { | |
111 | // Destructor | |
112 | ||
113 | if (fNumberDensitypT) | |
114 | { | |
115 | delete fNumberDensitypT; | |
116 | fNumberDensitypT = 0; | |
117 | } | |
118 | ||
119 | if (fSumpT) | |
120 | { | |
121 | delete fSumpT; | |
122 | fSumpT = 0; | |
123 | } | |
124 | ||
125 | if (fNumberDensityPhi) | |
126 | { | |
127 | delete fNumberDensityPhi; | |
128 | fNumberDensityPhi = 0; | |
129 | } | |
130 | ||
131 | if (fCorrelationpT) | |
132 | { | |
133 | delete fCorrelationpT; | |
134 | fCorrelationpT = 0; | |
135 | } | |
136 | ||
137 | if (fCorrelationEta) | |
138 | { | |
139 | delete fCorrelationEta; | |
140 | fCorrelationEta = 0; | |
141 | } | |
142 | ||
143 | if (fCorrelationPhi) | |
144 | { | |
145 | delete fCorrelationPhi; | |
146 | fCorrelationPhi = 0; | |
147 | } | |
148 | ||
149 | if (fCorrelationR) | |
150 | { | |
151 | delete fCorrelationR; | |
152 | fCorrelationR = 0; | |
153 | } | |
154 | ||
155 | if (fCorrelationLeading2Phi) | |
156 | { | |
157 | delete fCorrelationLeading2Phi; | |
158 | fCorrelationLeading2Phi = 0; | |
159 | } | |
160 | ||
161 | if (fCorrelationMultiplicity) | |
162 | { | |
163 | delete fCorrelationMultiplicity; | |
164 | fCorrelationMultiplicity = 0; | |
165 | } | |
166 | ||
167 | if (fEventCount) | |
168 | { | |
169 | delete fEventCount; | |
170 | fEventCount = 0; | |
171 | } | |
172 | ||
173 | if (fEventCountDifferential) | |
174 | { | |
175 | delete fEventCountDifferential; | |
176 | fEventCountDifferential = 0; | |
177 | } | |
178 | ||
179 | if (fVertexContributors) | |
180 | { | |
181 | delete fVertexContributors; | |
182 | fVertexContributors = 0; | |
183 | } | |
184 | } | |
185 | ||
ada1a03f | 186 | AliUEHist* AliUEHistograms::GetUEHist(Int_t id) |
187 | { | |
188 | // returns AliUEHist object, useful for loops | |
189 | ||
190 | switch (id) | |
191 | { | |
192 | case 0: return fNumberDensitypT; break; | |
193 | case 1: return fSumpT; break; | |
194 | case 2: return fNumberDensityPhi; break; | |
195 | } | |
196 | ||
197 | return 0; | |
198 | } | |
199 | ||
a75aacd6 | 200 | //____________________________________________________________________ |
201 | Int_t AliUEHistograms::CountParticles(TList* list, Float_t ptMin) | |
202 | { | |
203 | // counts the number of particles in the list with a pT above ptMin | |
204 | // TODO eta cut needed here? | |
205 | ||
206 | Int_t count = 0; | |
207 | for (Int_t j=0; j<list->GetEntries(); j++) | |
208 | if (((AliVParticle*) list->At(j))->Pt() > ptMin) | |
209 | count++; | |
210 | ||
211 | return count; | |
212 | } | |
213 | ||
214 | //____________________________________________________________________ | |
215 | void AliUEHistograms::Fill(Int_t eventType, AliUEHist::CFStep step, AliVParticle* leading, TList* toward, TList* away, TList* min, TList* max) | |
216 | { | |
217 | // fills the UE event histograms | |
218 | // | |
219 | // this function needs the leading (track or jet or ...) and four lists of AliVParticles which contain the particles/tracks to be filled in the four regions | |
220 | ||
221 | // if leading is not set, just fill event statistics | |
222 | if (leading) | |
223 | { | |
224 | Int_t multiplicity = 0; | |
225 | ||
226 | // TODO configurable? | |
227 | Float_t ptMin = 0.15; | |
228 | if (leading->Pt() > ptMin) | |
229 | multiplicity++; | |
230 | ||
231 | multiplicity += CountParticles(toward, ptMin); | |
232 | multiplicity += CountParticles(away, ptMin); | |
233 | multiplicity += CountParticles(min, ptMin); | |
234 | multiplicity += CountParticles(max, ptMin); | |
235 | ||
236 | FillRegion(AliUEHist::kToward, step, leading, toward, multiplicity); | |
237 | FillRegion(AliUEHist::kAway, step, leading, away, multiplicity); | |
238 | FillRegion(AliUEHist::kMin, step, leading, min, multiplicity); | |
239 | FillRegion(AliUEHist::kMax, step, leading, max, multiplicity); | |
b1831bcb | 240 | |
a75aacd6 | 241 | Double_t vars[2]; |
242 | vars[0] = leading->Pt(); | |
243 | vars[1] = multiplicity; | |
244 | fNumberDensitypT->GetEventHist()->Fill(vars, step); | |
245 | fSumpT->GetEventHist()->Fill(vars, step); | |
246 | fNumberDensityPhi->GetEventHist()->Fill(vars, step); | |
247 | ||
248 | fEventCountDifferential->Fill(leading->Pt(), step, eventType); | |
249 | } | |
250 | ||
251 | FillEvent(eventType, step); | |
252 | } | |
253 | ||
254 | //____________________________________________________________________ | |
255 | void AliUEHistograms::FillRegion(AliUEHist::Region region, AliUEHist::CFStep step, AliVParticle* leading, TList* list, Int_t multiplicity) | |
256 | { | |
257 | // loops over AliVParticles in list and fills the given region at the given step | |
258 | // | |
259 | // See also Fill(...) | |
260 | ||
261 | for (Int_t i=0; i<list->GetEntries(); i++) | |
262 | { | |
263 | AliVParticle* particle = (AliVParticle*) list->At(i); | |
264 | ||
265 | Double_t vars[5]; | |
266 | vars[0] = particle->Eta(); | |
267 | vars[1] = particle->Pt(); | |
268 | vars[2] = leading->Pt(); | |
269 | vars[3] = multiplicity; | |
270 | vars[4] = leading->Phi() - particle->Phi(); | |
2ac8dc5c | 271 | if (vars[4] > 1.5 * TMath::Pi()) |
272 | vars[4] -= TMath::TwoPi(); | |
273 | if (vars[4] < -0.5 * TMath::Pi()) | |
274 | vars[4] += TMath::TwoPi(); | |
d4abbc90 | 275 | |
a75aacd6 | 276 | fNumberDensitypT->GetTrackHist(region)->Fill(vars, step); |
277 | fSumpT->GetTrackHist(region)->Fill(vars, step, particle->Pt()); | |
278 | ||
279 | // fill all in toward region (is anyway as function of delta phi!) | |
280 | fNumberDensityPhi->GetTrackHist(AliUEHist::kToward)->Fill(vars, step); | |
281 | } | |
282 | } | |
283 | ||
284 | //____________________________________________________________________ | |
285 | void AliUEHistograms::Fill(AliVParticle* leadingMC, AliVParticle* leadingReco) | |
286 | { | |
287 | // fills the correlation histograms | |
288 | ||
289 | if (leadingMC) | |
290 | { | |
291 | fCorrelationpT->Fill(leadingMC->Pt(), leadingReco->Pt()); | |
292 | if (leadingMC->Pt() > 0.5) | |
293 | { | |
294 | fCorrelationEta->Fill(leadingMC->Eta(), leadingReco->Eta()); | |
295 | fCorrelationPhi->Fill(leadingMC->Phi(), leadingReco->Phi()); | |
296 | } | |
297 | ||
298 | Float_t phiDiff = leadingMC->Phi() - leadingReco->Phi(); | |
299 | if (phiDiff > TMath::Pi()) | |
300 | phiDiff -= TMath::TwoPi(); | |
301 | if (phiDiff < -TMath::Pi()) | |
302 | phiDiff += TMath::TwoPi(); | |
303 | ||
304 | Float_t etaDiff = leadingMC->Eta() - leadingReco->Eta(); | |
305 | ||
306 | fCorrelationR->Fill(TMath::Sqrt(phiDiff * phiDiff + etaDiff * etaDiff), leadingMC->Pt()); | |
307 | fCorrelationLeading2Phi->Fill(phiDiff, leadingMC->Pt()); | |
308 | } | |
309 | else | |
310 | { | |
311 | fCorrelationpT->Fill(1.0, leadingReco->Pt()); | |
312 | if (leadingReco->Pt() > 0.5) | |
313 | { | |
314 | fCorrelationEta->Fill(0.0, leadingReco->Eta()); | |
315 | fCorrelationPhi->Fill(0.0, leadingReco->Phi()); | |
316 | } | |
317 | } | |
318 | } | |
319 | ||
b1831bcb | 320 | //____________________________________________________________________ |
321 | void AliUEHistograms::FillTrackingEfficiency(TObjArray* mc, TObjArray* recoPrim, TObjArray* recoAll, Int_t particleType) | |
322 | { | |
323 | // fills the tracking efficiency objects | |
324 | // | |
325 | // mc: all primary MC particles | |
326 | // recoPrim: reconstructed primaries (again MC particles) | |
327 | // recoAll: reconstructed (again MC particles) | |
328 | // particleType is: 0 for pion, 1 for kaon, 2 for proton, 3 for others | |
329 | ||
330 | for (Int_t step=0; step<3; step++) | |
331 | { | |
332 | TObjArray* list = mc; | |
333 | if (step == 1) | |
334 | list = recoPrim; | |
335 | else if (step == 2) | |
336 | list = recoAll; | |
337 | ||
338 | for (Int_t i=0; i<list->GetEntries(); i++) | |
339 | { | |
340 | AliVParticle* particle = (AliVParticle*) list->At(i); | |
a700ef3a | 341 | Double_t vars[3]; |
b1831bcb | 342 | vars[0] = particle->Eta(); |
343 | vars[1] = particle->Pt(); | |
344 | vars[2] = particleType; | |
345 | ||
346 | fNumberDensitypT->GetTrackHistEfficiency()->Fill(vars, step); | |
347 | fSumpT->GetTrackHistEfficiency()->Fill(vars, step); | |
348 | fNumberDensityPhi->GetTrackHistEfficiency()->Fill(vars, step); | |
349 | } | |
350 | } | |
351 | } | |
352 | ||
a75aacd6 | 353 | //____________________________________________________________________ |
354 | void AliUEHistograms::FillEvent(Int_t eventType, Int_t step) | |
355 | { | |
356 | // fills the number of events at the given step and the given enty type | |
357 | // | |
358 | // WARNING: This function is called from Fill, so only call it for steps where Fill is not called | |
359 | ||
360 | fEventCount->Fill(step, eventType); | |
361 | } | |
362 | ||
363 | //____________________________________________________________________ | |
364 | void AliUEHistograms::SetEtaRange(Float_t etaMin, Float_t etaMax) | |
365 | { | |
366 | // sets eta min and max for all contained AliUEHist classes | |
367 | ||
368 | fNumberDensitypT->SetEtaRange(etaMin, etaMax); | |
369 | fSumpT->SetEtaRange(etaMin, etaMax); | |
370 | fNumberDensityPhi->SetEtaRange(etaMin, etaMax); | |
371 | } | |
372 | ||
373 | //____________________________________________________________________ | |
374 | void AliUEHistograms::SetPtRange(Float_t ptMin, Float_t ptMax) | |
375 | { | |
376 | // sets pT min and max for all contained AliUEHist classes | |
377 | ||
378 | fNumberDensitypT->SetPtRange(ptMin, ptMax); | |
379 | fSumpT->SetPtRange(ptMin, ptMax); | |
380 | fNumberDensityPhi->SetPtRange(ptMin, ptMax); | |
381 | } | |
382 | ||
144bd037 | 383 | //____________________________________________________________________ |
384 | void AliUEHistograms::SetContaminationEnhancement(TH1F* hist) | |
385 | { | |
386 | // sets the contamination enhancement histogram in all contained AliUEHist classes | |
387 | ||
388 | fNumberDensitypT->SetContaminationEnhancement(hist); | |
389 | fSumpT->SetContaminationEnhancement(hist); | |
390 | fNumberDensityPhi->SetContaminationEnhancement(hist); | |
391 | } | |
392 | ||
a75aacd6 | 393 | //____________________________________________________________________ |
394 | void AliUEHistograms::SetCombineMinMax(Bool_t flag) | |
395 | { | |
396 | // sets pT min and max for all contained AliUEHist classes | |
397 | ||
398 | fNumberDensitypT->SetCombineMinMax(flag); | |
399 | fSumpT->SetCombineMinMax(flag); | |
400 | fNumberDensityPhi->SetCombineMinMax(flag); | |
401 | } | |
402 | ||
403 | //____________________________________________________________________ | |
404 | void AliUEHistograms::Correct(AliUEHistograms* corrections) | |
405 | { | |
406 | // corrects the contained histograms by calling AliUEHist::Correct | |
407 | ||
408 | fNumberDensitypT->Correct(corrections->fNumberDensitypT); | |
409 | fSumpT->Correct(corrections->fSumpT); | |
ada1a03f | 410 | fNumberDensityPhi->Correct(corrections->fNumberDensityPhi); |
a75aacd6 | 411 | } |
412 | ||
413 | //____________________________________________________________________ | |
414 | AliUEHistograms &AliUEHistograms::operator=(const AliUEHistograms &c) | |
415 | { | |
416 | // assigment operator | |
417 | ||
418 | if (this != &c) | |
419 | ((AliUEHistograms &) c).Copy(*this); | |
420 | ||
421 | return *this; | |
422 | } | |
423 | ||
424 | //____________________________________________________________________ | |
425 | void AliUEHistograms::Copy(TObject& c) const | |
426 | { | |
427 | // copy function | |
428 | ||
429 | AliUEHistograms& target = (AliUEHistograms &) c; | |
430 | ||
431 | if (fNumberDensitypT) | |
432 | target.fNumberDensitypT = dynamic_cast<AliUEHist*> (fNumberDensitypT->Clone()); | |
433 | ||
434 | if (fSumpT) | |
435 | target.fSumpT = dynamic_cast<AliUEHist*> (fSumpT->Clone()); | |
436 | ||
437 | if (fNumberDensityPhi) | |
438 | target.fNumberDensityPhi = dynamic_cast<AliUEHist*> (fNumberDensityPhi->Clone()); | |
439 | ||
440 | if (fCorrelationpT) | |
441 | target.fCorrelationpT = dynamic_cast<TH2F*> (fCorrelationpT->Clone()); | |
442 | ||
443 | if (fCorrelationEta) | |
444 | target.fCorrelationEta = dynamic_cast<TH2F*> (fCorrelationEta->Clone()); | |
445 | ||
446 | if (fCorrelationPhi) | |
447 | target.fCorrelationPhi = dynamic_cast<TH2F*> (fCorrelationPhi->Clone()); | |
448 | ||
449 | if (fCorrelationR) | |
450 | target.fCorrelationR = dynamic_cast<TH2F*> (fCorrelationR->Clone()); | |
451 | ||
452 | if (fCorrelationLeading2Phi) | |
453 | target.fCorrelationLeading2Phi = dynamic_cast<TH2F*> (fCorrelationLeading2Phi->Clone()); | |
454 | ||
455 | if (fCorrelationMultiplicity) | |
456 | target.fCorrelationMultiplicity = dynamic_cast<TH2F*> (fCorrelationMultiplicity->Clone()); | |
457 | ||
458 | if (fEventCount) | |
459 | target.fEventCount = dynamic_cast<TH2F*> (fEventCount->Clone()); | |
460 | ||
461 | if (fEventCountDifferential) | |
462 | target.fEventCountDifferential = dynamic_cast<TH3F*> (fEventCountDifferential->Clone()); | |
463 | ||
464 | if (fVertexContributors) | |
465 | target.fVertexContributors = dynamic_cast<TH1F*> (fVertexContributors->Clone()); | |
466 | } | |
467 | ||
468 | //____________________________________________________________________ | |
469 | Long64_t AliUEHistograms::Merge(TCollection* list) | |
470 | { | |
471 | // Merge a list of AliUEHistograms objects with this (needed for | |
472 | // PROOF). | |
473 | // Returns the number of merged objects (including this). | |
474 | ||
475 | if (!list) | |
476 | return 0; | |
477 | ||
478 | if (list->IsEmpty()) | |
479 | return 1; | |
480 | ||
481 | TIterator* iter = list->MakeIterator(); | |
482 | TObject* obj; | |
483 | ||
484 | // collections of objects | |
485 | const Int_t kMaxLists = 12; | |
486 | TList* lists[kMaxLists]; | |
487 | ||
488 | for (Int_t i=0; i<kMaxLists; i++) | |
489 | lists[i] = new TList; | |
490 | ||
491 | Int_t count = 0; | |
492 | while ((obj = iter->Next())) { | |
493 | ||
494 | AliUEHistograms* entry = dynamic_cast<AliUEHistograms*> (obj); | |
495 | if (entry == 0) | |
496 | continue; | |
497 | ||
498 | lists[0]->Add(entry->fNumberDensitypT); | |
499 | lists[1]->Add(entry->fSumpT); | |
500 | lists[2]->Add(entry->fNumberDensityPhi); | |
501 | lists[3]->Add(entry->fCorrelationpT); | |
502 | lists[4]->Add(entry->fCorrelationEta); | |
503 | lists[5]->Add(entry->fCorrelationPhi); | |
504 | lists[6]->Add(entry->fCorrelationR); | |
505 | lists[7]->Add(entry->fCorrelationLeading2Phi); | |
506 | lists[8]->Add(entry->fCorrelationMultiplicity); | |
507 | lists[9]->Add(entry->fEventCount); | |
508 | lists[10]->Add(entry->fEventCountDifferential); | |
509 | lists[11]->Add(entry->fVertexContributors); | |
510 | ||
511 | count++; | |
512 | } | |
513 | ||
514 | fNumberDensitypT->Merge(lists[0]); | |
515 | fSumpT->Merge(lists[1]); | |
516 | fNumberDensityPhi->Merge(lists[2]); | |
517 | fCorrelationpT->Merge(lists[3]); | |
518 | fCorrelationEta->Merge(lists[4]); | |
519 | fCorrelationPhi->Merge(lists[5]); | |
520 | fCorrelationR->Merge(lists[6]); | |
521 | fCorrelationLeading2Phi->Merge(lists[7]); | |
522 | fCorrelationMultiplicity->Merge(lists[8]); | |
523 | fEventCount->Merge(lists[9]); | |
524 | fEventCountDifferential->Merge(lists[10]); | |
525 | fVertexContributors->Merge(lists[11]); | |
526 | ||
527 | for (Int_t i=0; i<kMaxLists; i++) | |
528 | delete lists[i]; | |
529 | ||
530 | return count+1; | |
531 | } | |
b1831bcb | 532 | |
533 | void AliUEHistograms::CopyReconstructedData(AliUEHistograms* from) | |
534 | { | |
535 | // copies those histograms extracted from ESD to this object | |
536 | ||
537 | fNumberDensitypT->CopyReconstructedData(from->fNumberDensitypT); | |
538 | fSumpT->CopyReconstructedData(from->fSumpT); | |
539 | fNumberDensityPhi->CopyReconstructedData(from->fNumberDensityPhi); | |
540 | } | |
6f803f6c | 541 | |
542 | void AliUEHistograms::ExtendTrackingEfficiency() | |
543 | { | |
544 | // delegates to AliUEHists | |
545 | ||
546 | for (Int_t i=0; i<3; i++) | |
547 | GetUEHist(i)->ExtendTrackingEfficiency(); | |
548 | } | |
549 |