1 const char* objectName = "PWG4_LeadingTrackUE/histosLeadingTrackUE";
2 Float_t gLeadingpTMin = 0.51;
3 //const char* objectName = "PWG4_LeadingTrackUE/histosLeadingTrackUE_filterbit32";
5 void SetRanges(TAxis* axis)
7 if (strcmp(axis->GetTitle(), "leading p_{T} (GeV/c)") == 0)
8 axis->SetRangeUser(0, 10);
10 if (strcmp(axis->GetTitle(), "multiplicity") == 0)
11 axis->SetRangeUser(0, 10);
14 void SetRanges(TH1* hist)
16 SetRanges(hist->GetXaxis());
17 SetRanges(hist->GetYaxis());
18 SetRanges(hist->GetZaxis());
21 void Prepare1DPlot(TH1* hist)
23 hist->SetLineWidth(2);
24 hist->SetStats(kFALSE);
26 hist->GetXaxis()->SetLabelOffset(0.02);
27 hist->GetXaxis()->SetTitleOffset(1.3);
28 hist->GetYaxis()->SetTitleOffset(1.3);
33 void DrawRatio(TH1* corr, TH1* mc, const char* name)
37 TCanvas* canvas3 = new TCanvas(name, name, 600, 600);
38 canvas3->Range(0, 0, 1, 1);
40 TPad* pad1 = new TPad(Form("%s_1", name), "", 0, 0.5, 0.98, 0.98);
43 TPad* pad2 = new TPad(Form("%s_2", name), "", 0, 0.02, 0.98, 0.5);
46 pad1->SetRightMargin(0.01);
47 pad2->SetRightMargin(0.01);
48 pad1->SetTopMargin(0.05);
49 pad1->SetLeftMargin(0.13);
50 pad2->SetLeftMargin(0.13);
51 pad2->SetBottomMargin(0.22);
53 // no border between them
54 pad1->SetBottomMargin(0);
55 pad2->SetTopMargin(0);
61 TLegend* legend = new TLegend(0.15, 0.65, 0.55, 0.90);
62 legend->SetFillColor(0);
63 legend->AddEntry(corr, "Corrected");
64 legend->AddEntry(mc, "MC prediction");
65 legend->SetTextSize(0.08);
69 TH2F* dummy = new TH2F("dummy", "", 100, corr->GetXaxis()->GetBinLowEdge(1), corr->GetXaxis()->GetBinUpEdge(corr->GetNbinsX()), 1000, 0, TMath::Max(corr->GetMaximum(), mc->GetMaximum()) * 1.1);
70 dummy->SetStats(kFALSE);
71 dummy->SetXTitle(corr->GetXaxis()->GetTitle());
72 dummy->SetYTitle(corr->GetYaxis()->GetTitle());
73 dummy->GetYaxis()->SetTitleOffset(1);
76 dummy->GetXaxis()->SetLabelSize(0.08);
77 dummy->GetYaxis()->SetLabelSize(0.08);
78 dummy->GetXaxis()->SetTitleSize(0.08);
79 dummy->GetYaxis()->SetTitleSize(0.08);
80 dummy->GetYaxis()->SetTitleOffset(0.8);
89 //pad2->SetBottomMargin(0.15);
93 TH1* ratio = (TH1*) mc->Clone("ratio");
96 Float_t minR = TMath::Min(0.91, ratio->GetMinimum() * 0.95);
97 Float_t maxR = TMath::Max(1.09, ratio->GetMaximum() * 1.05);
102 TH1F dummy3("dummy3", ";;Ratio: MC / corr", 100, corr->GetXaxis()->GetBinLowEdge(1), corr->GetXaxis()->GetBinUpEdge(corr->GetNbinsX()));
103 dummy3.SetXTitle(corr->GetXaxis()->GetTitle());
104 Prepare1DPlot(&dummy3);
105 dummy3.SetStats(kFALSE);
106 for (Int_t i=1; i<=100; ++i)
107 dummy3.SetBinContent(i, 1);
108 dummy3.GetYaxis()->SetRangeUser(minR, maxR);
109 dummy3.SetLineWidth(2);
110 dummy3.GetXaxis()->SetLabelSize(0.08);
111 dummy3.GetYaxis()->SetLabelSize(0.08);
112 dummy3.GetXaxis()->SetTitleSize(0.08);
113 dummy3.GetYaxis()->SetTitleSize(0.08);
114 dummy3.GetYaxis()->SetTitleOffset(0.8);
124 gSystem->Load("libANALYSIS");
125 gSystem->Load("libANALYSISalice");
126 gSystem->Load("libCORRFW");
127 gSystem->Load("libJETAN");
128 gSystem->Load("libPWG4JetTasks");
131 void CompareBias(const char* mcFile = "PWG4_JetTasksOutput.root", Int_t region, Int_t ueHist)
136 list = (TList*) gFile->Get(objectName);
137 AliUEHistograms* h = (AliUEHistograms*) list->FindObject("AliUEHistograms");
140 const char* axis = "z";
141 Float_t ptLeadMin = 0;
142 Float_t ptLeadMax = -1;
146 ptLeadMin = 0.51 + 0;
147 ptLeadMax = 1.99 + 0;
151 biasFromData = (TH1*) h->GetUEHist(ueHist)->GetBias(AliUEHist::kCFStepBiasStudy, AliUEHist::kCFStepReconstructed, region, axis, ptLeadMin, ptLeadMax)->Clone("biasFromData");
152 biasFromData2 = (TH1*) h->GetUEHist(ueHist)->GetBias(AliUEHist::kCFStepBiasStudy2, AliUEHist::kCFStepReconstructed, region, axis, ptLeadMin, ptLeadMax)->Clone("biasFromData2");
153 //biasFromData = (TH1*) h->GetUEHist(ueHist)->GetBias(AliUEHist::kCFStepReconstructed, AliUEHist::kCFStepRealLeading, region, axis)->Clone("biasFromData");
154 biasFromMC = (TH1*) h->GetUEHist(ueHist)->GetBias(AliUEHist::kCFStepReconstructed, AliUEHist::kCFStepTracked, region, axis, ptLeadMin, ptLeadMax)->Clone("biasFromMC");
155 //biasFromMC = (TH1*) h->GetUEHist(ueHist)->GetBias(AliUEHist::kCFStepReconstructed, AliUEHist::kCFStepRealLeading, region, axis)->Clone("biasFromMC");
157 /* biasFromData->Draw();
158 biasFromMC->SetLineColor(2);
159 biasFromMC->Draw("SAME");
162 DrawRatio(biasFromData, biasFromMC, "bias: data vs MC");
163 DrawRatio(biasFromData, biasFromData2, "bias: data vs data two step");
166 void CompareBiasWithData(const char* mcFile = "PWG4_JetTasksOutput.root", const char* dataFile = "esd.root")
170 file1 = TFile::Open(mcFile);
171 list = (TList*) file1->Get(objectName);
172 AliUEHistograms* h = (AliUEHistograms*) list->FindObject("AliUEHistograms");
175 biasFromMC = (TH1*) h->GetNumberDensitypT()->GetBias(AliUEHist::kCFStepReconstructed, AliUEHist::kCFStepTracked, "z")->Clone("biasFromMC");
177 file2 = TFile::Open(dataFile);
178 list = (TList*) file2->Get(objectName);
179 AliUEHistograms* h2 = (AliUEHistograms*) list->FindObject("AliUEHistograms");
182 biasFromData = (TH1*) h2->GetNumberDensitypT()->GetBias(AliUEHist::kCFStepBiasStudy, AliUEHist::kCFStepReconstructed, "z")->Clone("biasFromData");
183 biasFromData2 = (TH1*) h2->GetNumberDensitypT()->GetBias(AliUEHist::kCFStepBiasStudy2, AliUEHist::kCFStepReconstructed, "z")->Clone("biasFromData2");
185 DrawRatio(biasFromData, biasFromMC, "bias: data vs MC");
186 DrawRatio(biasFromData, biasFromData2, "bias: data vs data two step");
189 void Compare(const char* fileName1, const char* fileName2, Int_t id, Int_t step1, Int_t step2, Int_t region, Float_t ptLeadMin = -1, Float_t ptLeadMax = -1)
193 file1 = TFile::Open(fileName1);
194 list = (TList*) file1->Get(objectName);
195 AliUEHistograms* h = (AliUEHistograms*) list->FindObject("AliUEHistograms");
198 file2 = TFile::Open(fileName2);
199 list = (TList*) file2->Get(objectName);
200 AliUEHistograms* h2 = (AliUEHistograms*) list->FindObject("AliUEHistograms");
203 TH1* hist1 = h->GetUEHist(id)->GetUEHist(step1, region, ptLeadMin, ptLeadMax);
204 TH1* hist2 = h2->GetUEHist(id)->GetUEHist(step2, region, ptLeadMin, ptLeadMax);
206 DrawRatio(hist1, hist2, "compare");
209 void CompareEventHist(const char* fileName1, const char* fileName2, Int_t id, Int_t step, Int_t var)
213 file1 = TFile::Open(fileName1);
214 list = (TList*) file1->Get(objectName);
215 AliUEHistograms* h = (AliUEHistograms*) list->FindObject("AliUEHistograms");
218 file2 = TFile::Open(fileName2);
219 list = (TList*) file2->Get(objectName);
220 AliUEHistograms* h2 = (AliUEHistograms*) list->FindObject("AliUEHistograms");
223 TH1* hist1 = h->GetUEHist(id)->GetEventHist()->ShowProjection(var, step);
224 TH1* hist2 = h2->GetUEHist(id)->GetEventHist()->ShowProjection(var, step);
226 DrawRatio(hist1, hist2, "compare");
229 void CompareStep(const char* fileName1, const char* fileName2, Int_t id, Int_t step, Int_t region, Float_t ptLeadMin = -1, Float_t ptLeadMax = -1)
233 Compare(fileName1, fileName2, id, step, step, region, ptLeadMin, ptLeadMax);
236 void DrawStep(const char* fileName, Int_t id, Int_t step, Int_t region, Float_t ptLeadMin = -1, Float_t ptLeadMax = -1)
240 file1 = TFile::Open(fileName);
241 list = (TList*) file1->Get(objectName);
242 AliUEHistograms* h = (AliUEHistograms*) list->FindObject("AliUEHistograms");
246 h->GetUEHist(id)->GetUEHist(step, region, ptLeadMin, ptLeadMax)->Draw();
249 void ProfileMultiplicity(const char* fileName = "PWG4_JetTasksOutput.root")
253 TFile::Open(fileName);
254 list = (TList*) gFile->Get(objectName);
255 AliUEHistograms* h = (AliUEHistograms*) list->FindObject("AliUEHistograms");
258 h->GetCorrelationMultiplicity()->Draw("colz");
262 h->GetCorrelationMultiplicity()->ProfileX()->DrawCopy()->Fit("pol1", "", "", 1, 10);
265 void SetupRanges(void* obj)
267 ((AliUEHistograms*) obj)->SetEtaRange(-0.79, 0.79);
268 ((AliUEHistograms*) obj)->SetPtRange(gLeadingpTMin, 100);
269 ((AliUEHistograms*) obj)->SetCombineMinMax(kTRUE);
272 void DrawRatios(const char* name, void* correctedVoid, void* comparisonVoid, Int_t compareStep = -1, Int_t compareRegion = 2, Float_t ptLeadMin = -1, Float_t ptLeadMax = -1)
274 AliUEHist* corrected = (AliUEHist*) correctedVoid;
275 AliUEHist* comparison = (AliUEHist*) comparisonVoid;
277 Int_t beginStep = AliUEHist::kCFStepAll;
278 Int_t endStep = AliUEHist::kCFStepReconstructed;
280 if (compareStep != -1)
282 beginStep = compareStep;
283 endStep = compareStep;
286 Int_t beginRegion = 0;
289 if (compareRegion != -1)
291 beginRegion = compareRegion;
292 endRegion = compareRegion;
295 for (Int_t step=beginStep; step<=endStep; step++)
297 for (Int_t region=beginRegion; region <= endRegion; region++)
299 Printf("%f %f", ptLeadMin, ptLeadMax);
300 TH1* corrHist = corrected->GetUEHist(step, region, ptLeadMin, ptLeadMax);
301 TH1* mcHist = comparison->GetUEHist(step, region, ptLeadMin, ptLeadMax);
303 DrawRatio(corrHist, mcHist, TString(Form("%s: step %d %s %s", name, step, corrected->GetStepTitle(step), corrected->GetRegionTitle(region))));
308 void DrawRatios(void* correctedVoid, void* comparisonVoid, Int_t compareStep = -1, Int_t compareRegion = 2, Int_t compareUEHist = 0)
310 AliUEHistograms* corrected = (AliUEHistograms*) correctedVoid;
311 AliUEHistograms* comparison = (AliUEHistograms*) comparisonVoid;
313 if (compareUEHist == 2)
315 for (Float_t ptLeadMin = 1.01; ptLeadMin < 4; ptLeadMin += 2)
316 DrawRatios(TString(Form("UE %d pT %f", compareUEHist, ptLeadMin)), corrected->GetUEHist(compareUEHist), comparison->GetUEHist(compareUEHist), compareStep, compareRegion, ptLeadMin, ptLeadMin + 0.48);
320 if (compareUEHist == -1)
322 for (Int_t i=0; i<2; i++)
323 DrawRatios(TString(Form("UE %d", i)), corrected->GetUEHist(i), comparison->GetUEHist(i), compareStep, compareRegion);
326 DrawRatios(TString(Form("UE %d", compareUEHist)), corrected->GetUEHist(compareUEHist), comparison->GetUEHist(compareUEHist), compareStep, compareRegion);
329 void CompareEventsTracks(void* corrVoid, void* mcVoid, Int_t compareStep, Int_t compareRegion, Int_t compareUEHist = 0)
331 AliUEHist* corr = ((AliUEHistograms*) corrVoid)->GetUEHist(compareUEHist);
332 AliUEHist* mc = ((AliUEHistograms*) mcVoid)->GetUEHist(compareUEHist);
334 Float_t ptLeadMin = 0;
335 Float_t ptLeadMax = -1;
338 if (compareUEHist == 2)
345 TH1* corrHist = corr->GetUEHist(compareStep, compareRegion, ptLeadMin, ptLeadMax);
346 TH1* mcHist = mc ->GetUEHist(compareStep, compareRegion, ptLeadMin, ptLeadMax);
348 DrawRatio(corrHist, mcHist, Form("check"));
350 corr->SetBinLimits(corr->GetTrackHist(compareRegion)->GetGrid(compareStep));
351 mc->SetBinLimits(corr->GetTrackHist(compareRegion)->GetGrid(compareStep));
353 corrHist = corr->GetTrackHist(compareRegion)->GetGrid(compareStep)->Project(axis);
354 mcHist = mc ->GetTrackHist(compareRegion)->GetGrid(compareStep)->Project(axis);
355 DrawRatio(corrHist, mcHist, Form("check2"));
357 corrHist = corr->GetEventHist()->GetGrid(compareStep)->Project(0);
358 mcHist = mc ->GetEventHist()->GetGrid(compareStep)->Project(0);
359 DrawRatio(corrHist, mcHist, Form("check3"));
362 void correctMC(const char* fileNameCorrections, const char* fileNameESD = 0, Int_t compareStep = -1, Int_t compareRegion = 2, Int_t compareUEHist = 0)
364 // corrects the reconstructed step in fileNameESD with fileNameCorr
365 // if fileNameESD is 0 data from fileNameCorr is taken
366 // afterwards the corrected distributions are compared with the MC stored in fileNameESD
370 TFile::Open(fileNameCorrections);
371 list = (TList*) gFile->Get(objectName);
372 AliUEHistograms* corr = (AliUEHistograms*) list->FindObject("AliUEHistograms");
374 corr->ExtendTrackingEfficiency();
378 file2 = TFile::Open(fileNameESD);
379 list = (TList*) file2->Get(objectName);
381 AliUEHistograms* testSample = (AliUEHistograms*) list->FindObject("AliUEHistograms");
383 // copy to esd object
384 AliUEHistograms* esd = new AliUEHistograms;
385 esd->CopyReconstructedData(testSample);
388 SetupRanges(testSample);
393 DrawRatios(esd, testSample, compareStep, compareRegion, compareUEHist);
395 //CompareEventsTracks(esd, testSample, compareStep, compareRegion, compareUEHist);
398 // function to compare only final step for all regions and distributions
400 void correctData(const char* fileNameCorrections, const char* fileNameESD, Int_t compareStep = -1, Int_t compareRegion = 2, Int_t compareUEHist = 0)
402 // corrects fileNameESD with fileNameCorrections and compares the two
406 TFile::Open(fileNameCorrections);
407 list = (TList*) gFile->Get(objectName);
408 AliUEHistograms* corr = (AliUEHistograms*) list->FindObject("AliUEHistograms");
410 file2 = TFile::Open(fileNameESD);
411 list = (TList*) file2->Get(objectName);
412 AliUEHistograms* esd = (AliUEHistograms*) list->FindObject("AliUEHistograms");
417 corr->ExtendTrackingEfficiency();
421 file3 = TFile::Open("corrected.root", "RECREATE");
422 file3->mkdir("PWG4_LeadingTrackUE");
423 file3->cd("PWG4_LeadingTrackUE");
424 list->Write(0, TObject::kSingleKey);
427 DrawRatios(esd, corr, compareStep, compareRegion, compareUEHist);
430 void ITSTPCEfficiency(const char* fileNameData, Int_t id, Int_t itsTPC = 0)
434 // uncertainty from dN/dpT paper
435 Double_t pTBins[] = {0.0, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0, 100.0};
436 Float_t effITS[] = {0., 0., 0.995, 0.98, 0.986, 0.996, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; // the last three are the same because i don't have entries
437 Float_t effTPC[] = {0., 0, 1.042, 1.026,1.021, 1.018, 1.015, 1.015, 1.012, 1.012, 1.007, 1.0075,1.006, 1.006, 1.004, 1.004, 1.009 }; // the last bins put as if they were the same
439 TH1F* effHist = new TH1F("effHist", "effHist", 39, pTBins);
440 for (Int_t i=0; i<39; i++)
445 effHist->SetBinContent(i+1, (itsTPC == 0) ? effITS[bin] : effTPC[bin]);
448 new TCanvas; effHist->Draw();
450 EffectOfModifiedTrackingEfficiency(fileNameData, id, effHist, 1, -1, (itsTPC == 0) ? "ITS" : "TPC");
454 void EffectOfModifiedTrackingEfficiency(const char* fileNameData, Int_t id, TH1* trackingEff, Int_t axis1, Int_t axis2 = -1, const char* name = "EffectOfModifiedTrackingEfficiency")
456 // trackingEff should contain the change in tracking efficiency, i.e. between before and after in the eta-pT plane
460 TFile::Open(fileNameData);
461 list = (TList*) gFile->Get(objectName);
462 AliUEHistograms* corrected = (AliUEHistograms*) list->FindObject("AliUEHistograms");
463 SetupRanges(corrected);
465 AliUEHist* ueHist = corrected->GetUEHist(id);
469 TH1* before = ueHist->GetUEHist(AliUEHist::kCFStepAll, region);
472 // the CFStepTriggered step is overwritten here and cannot be used for comparison afterwards anymore
473 ueHist->CorrectTracks(AliUEHist::kCFStepAll, AliUEHist::kCFStepTriggered, (TH1*) 0, 0, -1);
475 // reapply tracking efficiency
476 ueHist->CorrectTracks(AliUEHist::kCFStepTriggered, AliUEHist::kCFStepAll, trackingEff, axis1, axis2);
479 TH1* after = ueHist->GetUEHist(AliUEHist::kCFStepAll, region);
481 DrawRatio(before, after, name);
482 gPad->GetCanvas()->SaveAs(Form("%s.png", name));
485 void EffectOfTrackCuts(const char* fileNameData, Int_t id, const char* systFile)
489 TFile::Open(fileNameData);
490 list = (TList*) gFile->Get(objectName);
491 AliUEHistograms* corrected = (AliUEHistograms*) list->FindObject("AliUEHistograms");
492 effHist = (TH2D*) corrected->GetUEHist(0)->GetTrackingEfficiency()->Clone("effHist");
494 file = TFile::Open(systFile);
497 const char* systNames[] = { "NClusTPC", "Chi2TPC", "SigmaDCA" };
499 for (Int_t i=0; i<maxSyst; i++)
501 for (Int_t j=0; j<2; j++)
504 histName.Form("%s_syst_%s", systNames[i], (j == 0) ? "up" : "down");
505 systEffect = (TH2*) file->Get(histName);
509 for (Int_t x=1; x <= effHist->GetNbinsX(); x++)
510 for (Int_t y=1; y <= effHist->GetNbinsY(); y++)
511 effHist->SetBinContent(x, y, 1);
513 for (Int_t x=1; x <= systEffect->GetNbinsX(); x++)
514 for (Int_t y=1; y <= systEffect->GetNbinsY(); y++)
515 if (systEffect->GetBinContent(x, y) != 0)
516 effHist->SetBinContent(effHist->GetXaxis()->FindBin(systEffect->GetYaxis()->GetBinCenter(y)), effHist->GetYaxis()->FindBin(systEffect->GetXaxis()->GetBinCenter(x)), systEffect->GetBinContent(x, y));
519 //new TCanvas; systEffect->Draw("COLZ"); new TCanvas; effHist->Draw("COLZ");
521 EffectOfModifiedTrackingEfficiency(fileNameData, id, effHist, 0, 1, histName);
528 void ModifyComposition(const char* fileNameData, const char* fileNameCorrections, Int_t id, Bool_t verbose = kFALSE)
532 TFile::Open(fileNameData);
533 list = (TList*) gFile->Get(objectName);
534 AliUEHistograms* corrected = (AliUEHistograms*) list->FindObject("AliUEHistograms");
535 SetupRanges(corrected);
537 file2 = TFile::Open(fileNameCorrections);
538 list2 = (TList*) file2->Get(objectName);
539 AliUEHistograms* corrections = (AliUEHistograms*) list2->FindObject("AliUEHistograms");
540 SetupRanges(corrections);
542 ueHistData = (AliUEHist*) corrected->GetUEHist(id);
543 ueHistCorrections = (AliUEHist*) corrections->GetUEHist(id);
546 // the CFStepTriggered step is overwritten here and cannot be used for comparison afterwards anymore
547 ueHistData->CorrectTracks(AliUEHist::kCFStepAll, AliUEHist::kCFStepTriggered, (TH1*) 0, 0);
550 Float_t ptLeadMin = -1;
551 Float_t ptLeadMax = -1;
555 // the uncertainty is flat in delta phi, so use this trick to get directly the uncertainty as function of leading pT
562 for (Int_t region=0; region<maxRegion; region++)
563 before[region] = ueHistData->GetUEHist(AliUEHist::kCFStepAll, region, ptLeadMin, ptLeadMax);
565 defaultEff = ueHistCorrections->GetTrackingEfficiency();
566 defaultEffpT = ueHistCorrections->GetTrackingEfficiency(1);
567 defaultContainer = ueHistCorrections->GetTrackHistEfficiency();
570 defaultEffpT->Draw("");
572 Float_t largestDeviation[3];
573 for (Int_t i=0; i<maxRegion; i++)
574 largestDeviation[i] = 0;
576 for (Int_t i=0; i<7; i++)
578 // case 0: // default
579 // case 1: // + 30% kaons
580 // case 2: // - 30% kaons
581 // case 3: // + 30% protons
582 // case 4: // - 30% protons
583 // case 5: // + 30% others
584 // case 6: // - 30% others
585 Int_t correctionIndex = (i+1) / 2 + 1; // bin 1 == protons, bin 2 == kaons, ...
586 Double_t scaleFactor = (i % 2 == 1) ? 1.3 : 0.7;
590 newContainer = (AliCFContainer*) defaultContainer->Clone();
592 // modify, change all steps
593 for (Int_t j=0; j<newContainer->GetNStep(); j++)
595 THnSparse* grid = newContainer->GetGrid(j)->GetGrid();
597 for (Int_t binIdx = 0; binIdx < grid->GetNbins(); binIdx++)
600 Double_t value = grid->GetBinContent(binIdx, bins);
601 Double_t error = grid->GetBinError(binIdx);
603 if (bins[2] != correctionIndex)
606 value *= scaleFactor;
607 error *= scaleFactor;
609 grid->SetBinContent(bins, value);
610 grid->SetBinError(bins, error);
614 // put in corrections
615 ueHistCorrections->SetTrackHistEfficiency(newContainer);
618 modifiedEff = ueHistCorrections->GetTrackingEfficiency();
619 modifiedEff->Divide(modifiedEff, defaultEff);
620 //modifiedEff->Draw("COLZ");
623 modifiedEffpT = ueHistCorrections->GetTrackingEfficiency(1);
624 modifiedEffpT->SetLineColor(i+1);
625 modifiedEffpT->Draw("SAME");
627 // apply change in tracking efficiency
628 ueHistData->CorrectTracks(AliUEHist::kCFStepTriggered, AliUEHist::kCFStepAll, modifiedEff, 0, 1);
630 for (Int_t region=0; region<maxRegion; region++)
633 TH1* after = ueHistData->GetUEHist(AliUEHist::kCFStepAll, region, ptLeadMin, ptLeadMax);
636 DrawRatio(before[region], (TH1*) after->Clone(), Form("Region %d Composition %d", region, i));
638 // ratio is flat, extract deviation
639 after->Divide(before[region]);
640 after->Fit("pol0", "0");
641 Float_t deviation = 100.0 - 100.0 * after->GetFunction("pol0")->GetParameter(0);
642 Printf("Deviation for region %d case %d is %.2f %%", region, i, deviation);
644 if (TMath::Abs(deviation) > largestDeviation[region])
645 largestDeviation[region] = TMath::Abs(deviation);
650 for (Int_t i=0; i<maxRegion; i++)
651 Printf("Largest deviation in region %d is %f", i, largestDeviation[i]);