From 6795da79d4a8e22ec73f75f3f0a9b3e3e7b4b57a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= <26327373+vkucera@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:18:29 +0100 Subject: [PATCH] Delete obsolete HF files --- codeHF/MC_d0_eff_ref.pdf | Bin 15297 -> 0 bytes codeHF/MC_d0_pT_ref.pdf | Bin 15132 -> 0 bytes codeHF/PlotEfficiencyRecoStep.C | 427 ------------------------ codeHF/README.md | 4 - codeHF/comparison_histos_cand2_ref.pdf | Bin 15986 -> 0 bytes codeHF/comparison_histos_cand3_ref.pdf | Bin 16080 -> 0 bytes codeHF/comparison_histos_d0-mc_ref.pdf | Bin 18308 -> 0 bytes codeHF/comparison_histos_d0_ref.pdf | Bin 31318 -> 0 bytes codeHF/comparison_histos_skim_ref.pdf | Bin 25696 -> 0 bytes codeHF/comparison_histos_tracks_ref.pdf | Bin 23537 -> 0 bytes codeHF/plottogether.py | 43 --- codeHF/qamacro.C | 15 - codeHF/versions_ref.txt | 5 - 13 files changed, 494 deletions(-) delete mode 100644 codeHF/MC_d0_eff_ref.pdf delete mode 100644 codeHF/MC_d0_pT_ref.pdf delete mode 100644 codeHF/PlotEfficiencyRecoStep.C delete mode 100644 codeHF/comparison_histos_cand2_ref.pdf delete mode 100644 codeHF/comparison_histos_cand3_ref.pdf delete mode 100644 codeHF/comparison_histos_d0-mc_ref.pdf delete mode 100644 codeHF/comparison_histos_d0_ref.pdf delete mode 100644 codeHF/comparison_histos_skim_ref.pdf delete mode 100644 codeHF/comparison_histos_tracks_ref.pdf delete mode 100755 codeHF/plottogether.py delete mode 100644 codeHF/qamacro.C delete mode 100644 codeHF/versions_ref.txt diff --git a/codeHF/MC_d0_eff_ref.pdf b/codeHF/MC_d0_eff_ref.pdf deleted file mode 100644 index 48708611f24bc25da5ec0b1d96d46cc745721c19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15297 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 diff --git a/codeHF/PlotEfficiencyRecoStep.C b/codeHF/PlotEfficiencyRecoStep.C deleted file mode 100644 index b49364df..00000000 --- a/codeHF/PlotEfficiencyRecoStep.C +++ /dev/null @@ -1,427 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -// Computation and plotting of reconstruction efficiency step-by-step -// Four steps defined: RecoHFFlag, RecoTopol, RecoCand, RecoPID -// RecoHFFlag: candidates properly flagged (e.g. in HFD0CandidateSelector --> hfflag() is D0ToPiK) -// RecoTopol: candidates which satisfy conjugate-independent topological selection -// RecoCand: candidates which satisfy conjugate-dependent topological selection -// RecoPID: candidates which satisfy conjugate-dependent topological selection and track-level PID selection - -// Macros input: AnalysisResults.root from O2 with TH2F (pt vs y) distributions for generated and reconstructed candidates -// TString particles can contain multiple particle strings -// .L PlotEfficiencyRecoStep.C -// PlotEfficiencyRecoStep("InputName.root","particlename",true); - -#include "../exec/utilitiesPlot.h" - -void SetProperAxisRange(TH1F** histo, int NIteration, float marginHigh, float marginLow, bool logScaleH); - -Int_t PlotEfficiencyRecoStep(TString pathFile = "AnalysisResults_O2.root", TString particles = "d0") -{ - gStyle->SetOptStat(0); - gStyle->SetPalette(0); - gStyle->SetCanvasColor(0); - gStyle->SetFrameFillColor(0); - - // vertical margins of the pT spectra plot - float marginHigh = 0.05; - float marginLow = 0.05; - bool logScaleH = true; - // vertical margins of the efficiency plot - float marginRHigh = 0.05; - float marginRLow = 0.05; - bool logScaleR = false; - double yMin = 999.; - double yMax = -999.; - int nRec, nGen; - int colours[] = {1, 2, 3, 4}; - int markers[] = {24, 25, 46, 28}; - float markersize[] = {1., 1., 1., 1.}; - int lineWidth = 1; - - // binning - Int_t iNRebin = 4; - // Double_t* dRebin = nullptr; - // const Int_t NRebin = 1; - Double_t dRebin[] = {0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10}; - const Int_t NRebin = sizeof(dRebin) / sizeof(dRebin[0]) - 1; - - TFile* file = new TFile(pathFile.Data()); - if (file->IsZombie()) { - Printf("Error: Failed to open file %s", pathFile.Data()); - return 1; - } - - // get list of particles - TObjArray* arrayParticle = 0; - arrayParticle = particles.Tokenize(" "); - TString particle = ""; - - // compute efficiency at each reconstruction step - TString recoStep[4] = {"RecoHFFlag", "RecoTopol", "RecoCand", "RecoPID"}; - TString labelsSteps[4] = {"skimming", "topol. gen.", "topol. conj.", "PID"}; - const int NRecoStep = sizeof(recoStep) / sizeof(recoStep[0]); - TString partType[3] = {"Incl", "Prompt", "NonPrompt"}; - const int NPartType = sizeof(partType) / sizeof(partType[0]); - - // Generated distributions - TCanvas* canGenSbyS = new TCanvas("canGenSbyS", "canGenSbyS", 800, 600); - TCanvas* canGenSbySPt = new TCanvas("canGenSbySPt", "canGenSbySPt", 800, 600); - TCanvas* canGenSbySY = new TCanvas("canGenSbySY", "canGenSbySY", 800, 600); - // Reconstructed distributions (inclusive) - TCanvas* canRecoSbyS = new TCanvas("canRecoSbyS", "canRecoSbyS", 800, 600); - TCanvas* canRecoSbySPt = new TCanvas("canRecoSbySPt", "canRecoSbySPt", 800, 600); - TCanvas* canRecoSbySY = new TCanvas("canRecoSbySY", "canRecoSbySY", 800, 600); - // Reconstructed distributions (prompt) - TCanvas* canRecoSbySPrompt = new TCanvas("canRecoSbySPrompt", "canRecoSbySPrompt", 800, 600); - TCanvas* canRecoSbySPromptPt = new TCanvas("canRecoSbySPromptPt", "canRecoSbySPromptPt", 800, 600); - TCanvas* canRecoSbySPromptY = new TCanvas("canRecoSbySPromptY", "canRecoSbySPromptY", 800, 600); - // Reconstructed distributions (non-prompt) - TCanvas* canRecoSbySNonPrompt = new TCanvas("canRecoSbySNonPrompt", "canRecoSbySNonPrompt", 800, 600); - TCanvas* canRecoSbySNonPromptPt = new TCanvas("canRecoSbySNonPromptPt", "canRecoSbySNonPromptPt", 800, 600); - TCanvas* canRecoSbySNonPromptY = new TCanvas("canRecoSbySNonPromptY", "canRecoSbySNonPromptY", 800, 600); - - if (NRecoStep == 4) { - canGenSbyS->Divide(2, 2); - canGenSbySPt->Divide(2, 2); - canGenSbySY->Divide(2, 2); - canRecoSbyS->Divide(2, 2); - canRecoSbySPt->Divide(2, 2); - canRecoSbySY->Divide(2, 2); - canRecoSbySPrompt->Divide(2, 2); - canRecoSbySPromptPt->Divide(2, 2); - canRecoSbySPromptY->Divide(2, 2); - canRecoSbySNonPrompt->Divide(2, 2); - canRecoSbySNonPromptPt->Divide(2, 2); - canRecoSbySNonPromptY->Divide(2, 2); - } - - TCanvas* canEffSbySPt = new TCanvas(Form("canEffSbySPt_%s", particle.Data()), "EffPt", 800, 600); - canEffSbySPt->Divide(2, 2); - - TCanvas* canEffSbySY = new TCanvas(Form("canEffSbySY_%s", particle.Data()), "EffY", 800, 600); - canEffSbySY->Divide(2, 2); - - // Efficiency (inclusive) - TH1F** hEffPtIncl = new TH1F*[NRecoStep]; - TH1F** hEffYIncl = new TH1F*[NRecoStep]; - - // Efficiency (prompt) - TH1F** hEffPtPrompt = new TH1F*[NRecoStep]; - TH1F** hEffYPrompt = new TH1F*[NRecoStep]; - - // Efficiency (non-propmt) - TH1F** hEffPtNonPrompt = new TH1F*[NRecoStep]; - TH1F** hEffYNonPrompt = new TH1F*[NRecoStep]; - - TLegend* legendSbyS = new TLegend(0.15, 0.65, 0.45, 0.9); - legendSbyS->SetFillColorAlpha(0, kWhite); - legendSbyS->SetLineWidth(0); - - // loop over particles - for (int iP = 0; iP < arrayParticle->GetEntriesFast(); iP++) { - particle = (reinterpret_cast(arrayParticle->At(iP)))->GetString(); - if (!particle.Length()) { - Printf("Error: Empty particle string"); - return 1; - } - Printf("\nPlotting efficiency step-by-step for: %s", particle.Data()); - - TString outputDir = Form("hf-task-%s-mc", particle.Data()); // analysis output directory with histograms - - // inclusive generated - TString nameHistgen = outputDir + "/hPtVsYGen"; // generator level pT of generated particles - TH2F* hPtVsYGenIncl = reinterpret_cast(file->Get(nameHistgen.Data())); - if (!hPtVsYGenIncl) { - Printf("Error: Failed to load %s from %s", nameHistgen.Data(), pathFile.Data()); - return 1; - } - canGenSbyS->cd(1); - hPtVsYGenIncl->Draw("colz"); - - TH1F* hGenPtIncl = reinterpret_cast(hPtVsYGenIncl->ProjectionX("hGen_Pt", 1, hPtVsYGenIncl->GetXaxis()->GetLast(), "e")); - TH1F* hGenYIncl = reinterpret_cast(hPtVsYGenIncl->ProjectionY("hGen_Y", 1, hPtVsYGenIncl->GetYaxis()->GetLast(), "e")); - - if (iNRebin > 1) { - hGenPtIncl->Rebin(iNRebin); - hGenYIncl->Rebin(iNRebin); - } else if (NRebin > 1) { - hGenPtIncl = reinterpret_cast(hGenPtIncl->Rebin(NRebin, "hGenPtInclR", dRebin)); - hGenYIncl = reinterpret_cast(hGenYIncl->Rebin(NRebin, "hGenYInclR", dRebin)); - } - - canGenSbySPt->cd(1); - hGenPtIncl->Draw("pe"); - - canGenSbySY->cd(1); - hGenYIncl->Draw("pe"); - - // prompt generated - TString nameHistgenPrompt = outputDir + "/hPtVsYGenPrompt"; // generator level pT of generated particles - TH2F* hPtVsYGenPrompt = reinterpret_cast(file->Get(nameHistgenPrompt.Data())); - if (!hPtVsYGenPrompt) { - Printf("Error: Failed to load %s from %s", nameHistgenPrompt.Data(), pathFile.Data()); - return 1; - } - canGenSbyS->cd(2); - hPtVsYGenPrompt->Draw("colz"); - - TH1F* hGenPtPrompt = reinterpret_cast(hPtVsYGenPrompt->ProjectionX("hGenPrompt_Pt", 1, hPtVsYGenPrompt->GetXaxis()->GetLast(), "e")); - TH1F* hGenYPrompt = reinterpret_cast(hPtVsYGenPrompt->ProjectionY("hGenPrompt_Y", 1, hPtVsYGenPrompt->GetYaxis()->GetLast(), "e")); - - if (iNRebin > 1) { - hGenPtPrompt->Rebin(iNRebin); - hGenYPrompt->Rebin(iNRebin); - } else if (NRebin > 1) { - hGenPtPrompt = reinterpret_cast(hGenPtPrompt->Rebin(NRebin, "hGenPtPromptR", dRebin)); - hGenYPrompt = reinterpret_cast(hGenYPrompt->Rebin(NRebin, "hGenYPromptR", dRebin)); - } - - canGenSbySPt->cd(2); - hGenPtPrompt->Draw("pe"); - - canGenSbySY->cd(2); - hGenYPrompt->Draw("pe"); - - // non-prompt generated - TString nameHistgenNonPrompt = outputDir + "/hPtVsYGenNonPrompt"; // generator level pT of generated particles - TH2F* hPtVsYGenNonPrompt = reinterpret_cast(file->Get(nameHistgenNonPrompt.Data())); - if (!hPtVsYGenNonPrompt) { - Printf("Error: Failed to load %s from %s", nameHistgenNonPrompt.Data(), pathFile.Data()); - return 1; - } - canGenSbyS->cd(3); - hPtVsYGenNonPrompt->Draw("colz"); - - TH1F* hGenPtNonPrompt = reinterpret_cast(hPtVsYGenNonPrompt->ProjectionX("hGenNonPrompt_Pt", 1, hPtVsYGenNonPrompt->GetXaxis()->GetLast(), "e")); - TH1F* hGenYNonPrompt = reinterpret_cast(hPtVsYGenNonPrompt->ProjectionY("hGenNonPrompt_Y", 1, hPtVsYGenNonPrompt->GetYaxis()->GetLast(), "e")); - - if (iNRebin > 1) { - hGenPtNonPrompt->Rebin(iNRebin); - hGenYNonPrompt->Rebin(iNRebin); - } else if (NRebin > 1) { - hGenPtNonPrompt = reinterpret_cast(hGenPtNonPrompt->Rebin(NRebin, "hGenPtNonPromptR", dRebin)); - hGenYNonPrompt = reinterpret_cast(hGenYNonPrompt->Rebin(NRebin, "hGenYNonPromptR", dRebin)); - } - - canGenSbySPt->cd(3); - hGenPtNonPrompt->Draw("pe"); - - canGenSbySY->cd(3); - hGenYNonPrompt->Draw("pe"); - - for (int iRs = 0; iRs < NRecoStep; iRs++) { - // inclusive - TString nameHistRec = outputDir + "/hPtVsYRecSig" + recoStep[iRs]; // reconstruction level pT of matched candidates - cout << nameHistRec.Data() << endl; - - TH2F* hPtVsYRecIncl = reinterpret_cast(file->Get(nameHistRec.Data())); - if (!hPtVsYRecIncl) { - Printf("Error: Failed to load %s from %s", nameHistRec.Data(), pathFile.Data()); - return 1; - } - hPtVsYRecIncl->SetTitle(Form("k%s", recoStep[iRs].Data())); - canRecoSbyS->cd(iRs + 1); - hPtVsYRecIncl->Draw("colz"); - - TH1F* hRecoPtIncl = reinterpret_cast(hPtVsYRecIncl->ProjectionX(Form("h%s_Pt", recoStep[iRs].Data()), 1, hPtVsYRecIncl->GetXaxis()->GetLast(), "e")); - canRecoSbySPt->cd(iRs + 1); - hRecoPtIncl->Draw("pe"); - - TH1F* hRecoYIncl = reinterpret_cast(hPtVsYRecIncl->ProjectionY(Form("h%s_Y", recoStep[iRs].Data()), 1, hPtVsYRecIncl->GetYaxis()->GetLast(), "e")); - canRecoSbySY->cd(iRs + 1); - hRecoYIncl->Draw("pe"); - - if (iNRebin > 1) { - hRecoPtIncl->Rebin(iNRebin); - hRecoYIncl->Rebin(iNRebin); - } else if (NRebin > 1) { - hRecoPtIncl = reinterpret_cast(hRecoPtIncl->Rebin(NRebin, "hRecoPtInclR", dRebin)); - hRecoYIncl = reinterpret_cast(hRecoYIncl->Rebin(NRebin, "hRecoYInclR", dRebin)); - } - - hEffPtIncl[iRs] = reinterpret_cast(hRecoPtIncl->Clone(Form("hEffPtIncl%s", recoStep[iRs].Data()))); - hEffPtIncl[iRs]->Divide(hEffPtIncl[iRs], hGenPtIncl, 1., 1., "B"); - hEffPtIncl[iRs]->SetTitle("inclusive ;#it{p}^{rec.}_{T} (GeV/#it{c}); efficiency"); - SetHistogramStyle(hEffPtIncl[iRs], colours[iRs], markers[iRs], markersize[iRs], lineWidth); - legendSbyS->AddEntry(hEffPtIncl[iRs], labelsSteps[iRs].Data(), "P"); - - hEffYIncl[iRs] = reinterpret_cast(hRecoYIncl->Clone(Form("hEffYIncl%s", recoStep[iRs].Data()))); - hEffYIncl[iRs]->Divide(hEffYIncl[iRs], hGenYIncl, 1., 1., "B"); - hEffYIncl[iRs]->SetTitle("inclusive ;#it{y}; efficiency"); - SetHistogramStyle(hEffYIncl[iRs], colours[iRs], markers[iRs], markersize[iRs], lineWidth); - - // prompt - TString nameHistRecPrompt = outputDir + "/hPtVsYRecSigPrompt" + recoStep[iRs]; // reconstruction level pT of matched candidates - TH2F* hPtVsYRecPrompt = reinterpret_cast(file->Get(nameHistRecPrompt.Data())); - if (!hPtVsYRecPrompt) { - Printf("Error: Failed to load %s from %s", nameHistRecPrompt.Data(), pathFile.Data()); - return 1; - } - hPtVsYRecPrompt->SetTitle(Form("k%s prompt", recoStep[iRs].Data())); - canRecoSbySPrompt->cd(iRs + 1); - hPtVsYRecPrompt->Draw("colz"); - - TH1F* hRecoPtPrompt = reinterpret_cast(hPtVsYRecPrompt->ProjectionX(Form("h%s_PtPrompt", recoStep[iRs].Data()), 1, hPtVsYRecPrompt->GetXaxis()->GetLast(), "e")); - canRecoSbySPromptPt->cd(iRs + 1); - hRecoPtPrompt->Draw("pe"); - - TH1F* hRecoYPrompt = reinterpret_cast(hPtVsYRecPrompt->ProjectionY(Form("h%s_YPrompt", recoStep[iRs].Data()), 1, hPtVsYRecPrompt->GetYaxis()->GetLast(), "e")); - canRecoSbySPromptY->cd(iRs + 1); - hRecoYPrompt->Draw("pe"); - - if (iNRebin > 1) { - hRecoPtPrompt->Rebin(iNRebin); - hRecoYPrompt->Rebin(iNRebin); - } else if (NRebin > 1) { - hRecoPtPrompt = reinterpret_cast(hRecoPtPrompt->Rebin(NRebin, "hRecoPtPromptR", dRebin)); - hRecoYPrompt = reinterpret_cast(hRecoYPrompt->Rebin(NRebin, "hRecoYPromptR", dRebin)); - } - - hEffPtPrompt[iRs] = reinterpret_cast(hRecoPtPrompt->Clone(Form("hEffPtPrompt%s", recoStep[iRs].Data()))); - hEffPtPrompt[iRs]->Divide(hEffPtPrompt[iRs], hGenPtPrompt, 1., 1., "B"); - hEffPtPrompt[iRs]->SetTitle("prompt ;#it{p}^{rec.}_{T} (GeV/#it{c}); efficiency"); - SetHistogramStyle(hEffPtPrompt[iRs], colours[iRs], markers[iRs], markersize[iRs], lineWidth); - - hEffYPrompt[iRs] = reinterpret_cast(hRecoYPrompt->Clone(Form("hEffYPrompt%s", recoStep[iRs].Data()))); - hEffYPrompt[iRs]->Divide(hEffYPrompt[iRs], hGenYPrompt, 1., 1., "B"); - hEffYPrompt[iRs]->SetTitle("prompt ;#it{y}; efficiency"); - SetHistogramStyle(hEffYPrompt[iRs], colours[iRs], markers[iRs], markersize[iRs], lineWidth); - - // non-prompt - TString nameHistRecNonPrompt = outputDir + "/hPtVsYRecSigNonPrompt" + recoStep[iRs]; // reconstruction level pT of matched candidates - TH2F* hPtVsYRecNonPrompt = reinterpret_cast(file->Get(nameHistRecNonPrompt.Data())); - if (!hPtVsYRecNonPrompt) { - Printf("Error: Failed to load %s from %s", nameHistRecNonPrompt.Data(), pathFile.Data()); - return 1; - } - hPtVsYRecNonPrompt->SetTitle(Form("k%s non-prompt", recoStep[iRs].Data())); - canRecoSbySNonPrompt->cd(iRs + 1); - hPtVsYRecNonPrompt->Draw("colz"); - - TH1F* hRecoPtNonPrompt = reinterpret_cast(hPtVsYRecNonPrompt->ProjectionX(Form("h%s_PtNonPrompt", recoStep[iRs].Data()), 1, hPtVsYRecNonPrompt->GetXaxis()->GetLast(), "e")); - canRecoSbySNonPromptPt->cd(iRs + 1); - hRecoPtNonPrompt->Draw("pe"); - - TH1F* hRecoYNonPrompt = reinterpret_cast(hPtVsYRecNonPrompt->ProjectionY(Form("h%s_YNonPrompt", recoStep[iRs].Data()), 1, hPtVsYRecNonPrompt->GetYaxis()->GetLast(), "e")); - canRecoSbySNonPromptY->cd(iRs + 1); - hRecoYNonPrompt->Draw("pe"); - - if (iNRebin > 1) { - hRecoPtNonPrompt->Rebin(iNRebin); - hRecoYNonPrompt->Rebin(iNRebin); - } else if (NRebin > 1) { - hRecoPtNonPrompt = reinterpret_cast(hRecoPtNonPrompt->Rebin(NRebin, "hRecoPtNonPromptR", dRebin)); - hRecoYNonPrompt = reinterpret_cast(hRecoYNonPrompt->Rebin(NRebin, "hRecoYNonPromptR", dRebin)); - } - - hEffPtNonPrompt[iRs] = reinterpret_cast(hRecoPtNonPrompt->Clone(Form("hEffPtNonPrompt%s", recoStep[iRs].Data()))); - hEffPtNonPrompt[iRs]->Divide(hEffPtNonPrompt[iRs], hGenPtNonPrompt, 1., 1., "B"); - hEffPtNonPrompt[iRs]->SetTitle("non-prompt ;#it{p}^{rec.}_{T} (GeV/#it{c}); efficiency"); - SetHistogramStyle(hEffPtNonPrompt[iRs], colours[iRs], markers[iRs], markersize[iRs], lineWidth); - - hEffYNonPrompt[iRs] = reinterpret_cast(hRecoYNonPrompt->Clone(Form("hEffYNonPrompt%s", recoStep[iRs].Data()))); - hEffYNonPrompt[iRs]->Divide(hEffYNonPrompt[iRs], hGenYNonPrompt, 1., 1., "B"); - hEffYNonPrompt[iRs]->SetTitle("non-prompt ;#it{y}; efficiency"); - SetHistogramStyle(hEffYNonPrompt[iRs], colours[iRs], markers[iRs], markersize[iRs], lineWidth); - } - } - - // Finding yMax and yMin for the different efficiency histograms - SetProperAxisRange(hEffPtIncl, NRecoStep, marginRHigh, marginRLow, logScaleH); - SetProperAxisRange(hEffYIncl, NRecoStep, marginRHigh, marginRLow, logScaleH); - SetProperAxisRange(hEffPtPrompt, NRecoStep, marginRHigh, marginRLow, logScaleH); - SetProperAxisRange(hEffYPrompt, NRecoStep, marginRHigh, marginRLow, logScaleH); - SetProperAxisRange(hEffPtNonPrompt, NRecoStep, marginRHigh, marginRLow, logScaleH); - SetProperAxisRange(hEffYNonPrompt, NRecoStep, marginRHigh, marginRLow, logScaleH); - - // Plotting - for (int iRs = 0; iRs < NRecoStep; iRs++) { - auto padEffSbySPt = canEffSbySPt->cd(1); - if (iRs == 0) { - SetPad(padEffSbySPt, logScaleH); - hEffPtIncl[iRs]->Draw("pe"); - } else { - hEffPtIncl[iRs]->Draw("pesame"); - } - legendSbyS->Draw("same"); - - auto padEffSbySY = canEffSbySY->cd(1); - if (iRs == 0) { - SetPad(padEffSbySY, logScaleH); - hEffYIncl[iRs]->Draw("pe"); - } else { - hEffYIncl[iRs]->Draw("pesame"); - } - legendSbyS->Draw("same"); - - auto padEffPromptSbySPt = canEffSbySPt->cd(2); - if (iRs == 0) { - SetPad(padEffPromptSbySPt, logScaleH); - hEffPtPrompt[iRs]->Draw("pe"); - } else { - hEffPtPrompt[iRs]->Draw("pesame"); - } - legendSbyS->Draw("same"); - - auto padEffPromptSbySY = canEffSbySY->cd(2); - if (iRs == 0) { - SetPad(padEffPromptSbySY, logScaleH); - hEffYPrompt[iRs]->Draw("pe"); - } else { - hEffYPrompt[iRs]->Draw("pesame"); - } - legendSbyS->Draw("same"); - - auto padEffNonPromptSbySPt = canEffSbySPt->cd(3); - if (iRs == 0) { - SetPad(padEffNonPromptSbySPt, logScaleH); - hEffPtNonPrompt[iRs]->Draw("pe"); - } else { - hEffPtNonPrompt[iRs]->Draw("pesame"); - } - legendSbyS->Draw("same"); - - auto padEffNonPromptSbySY = canEffSbySY->cd(3); - if (iRs == 0) { - SetPad(padEffNonPromptSbySY, logScaleH); - hEffYNonPrompt[iRs]->Draw("pe"); - } else { - hEffYNonPrompt[iRs]->Draw("pesame"); - } - legendSbyS->Draw("same"); - } - - canEffSbySPt->SaveAs(Form("MC_%s_eff_stepbystep_pT.pdf", particle.Data())); - canEffSbySY->SaveAs(Form("MC_%s_eff_stepbystepY.pdf", particle.Data())); - canEffSbySPt->SaveAs(Form("MC_%s_eff_stepbystep_pT.png", particle.Data())); - canEffSbySY->SaveAs(Form("MC_%s_eff_stepbystepY.png", particle.Data())); - - delete arrayParticle; - return 0; -} - -void SetProperAxisRange(TH1F** histo, int NIteration, float marginHigh, float marginLow, bool logScaleH) -{ - double yMin = 999.; - double yMax = -999.; - for (int iRs = 0; iRs < NIteration; iRs++) { - - if (histo[iRs]->GetMinimum(0) < yMin) { - yMin = histo[iRs]->GetMinimum(0); - } - if (histo[iRs]->GetMaximum() > yMax) { - yMax = histo[iRs]->GetMaximum(); - } - SetHistogram(histo[0], yMin, yMax, marginLow, marginHigh, logScaleH); - } -} diff --git a/codeHF/README.md b/codeHF/README.md index 47c58395..7a704712 100644 --- a/codeHF/README.md +++ b/codeHF/README.md @@ -51,7 +51,3 @@ bash runtest.sh Running all the steps with `INPUT_CASE=2` takes about 40 seconds in total. The postprocessing step produces several plots `comparison_histos_(...).pdf`, `MC_(...).pdf`. - -To confirm that the output of the default settings looks as expected, compare the produced plots with their reference counterparts `(...)_ref.pdf`. - -The complete list of commit hashes used to produce the reference plots can be found in `versions_ref.txt`. diff --git a/codeHF/comparison_histos_cand2_ref.pdf b/codeHF/comparison_histos_cand2_ref.pdf deleted file mode 100644 index 2876cb891b5cc863ca6b13c1e057d59f11a51e0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15986 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 HjsAZC=2#n0 diff --git a/codeHF/comparison_histos_skim_ref.pdf b/codeHF/comparison_histos_skim_ref.pdf deleted file mode 100644 index 6b27eb2a9a03e077d52577666659a87234d77c12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25696 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 E117Nvp#T5? diff --git a/codeHF/comparison_histos_tracks_ref.pdf b/codeHF/comparison_histos_tracks_ref.pdf deleted file mode 100644 index 07623f00ca9fe5e4bd2c21180aac2ae7bc86d4e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23537 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 E0rE%kod5s; diff --git a/codeHF/plottogether.py b/codeHF/plottogether.py deleted file mode 100755 index 9bb361b9..00000000 --- a/codeHF/plottogether.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env python3 - -""" -Script to plot together canvases in different files -""" - -from sys import argv - -from ROOT import TColor, TFile # , TLegend - - -def main(filename, canvases): - f = TFile(filename, "READ") - f.ls() - cols = ["#e41a1c", "#377eb8", "#4daf4a"] - cols = [TColor.GetColor(i) for i in cols] - print("Canvases", canvases) - canname = canvases[0] - canname.split("_folder_")[-1] - can = f.Get(canname) - lcan = can.GetListOfPrimitives() - lcan.FindObject("TPave").SetHeader("") - can.Draw() - print(can) - # leg = TLegend(0.7, 0.7, 0.9, 0.9) - for i in canvases[1:]: - print("Getting", i) - c = f.Get(i) - lp = c.GetListOfPrimitives() - # lp.ls() - for j in lp: - if "TH1" not in j.ClassName(): - continue - print(j) - can.cd() - j.Draw("sameHIST") - can.Update() - return can - - -res = main(argv[1], argv[2:]) - -input("Press enter to continue") diff --git a/codeHF/qamacro.C b/codeHF/qamacro.C deleted file mode 100644 index 7b2ba7a1..00000000 --- a/codeHF/qamacro.C +++ /dev/null @@ -1,15 +0,0 @@ -void qamacro() -{ - TFile f("AnalysisResults.root"); - TH2F* hptDResvspt = (TH2F*)f.Get("qa-tracking-resolution/ptDResvspt"); - TH2F* hptDResvseta = (TH2F*)f.Get("qa-tracking-resolution/ptDResvseta"); - TProfile* pptDResvspt = hptDResvspt->ProfileX(); - TProfile* pptDResvseta = hptDResvseta->ProfileX(); - TCanvas* ctrackres = new TCanvas("ctrackres", "ctrackres", 1000, 500); - ctrackres->Divide(2, 1); - ctrackres->cd(1); - pptDResvspt->Draw(); - ctrackres->cd(2); - pptDResvseta->Draw(); - ctrackres->SaveAs("ctrackres.pdf"); -} diff --git a/codeHF/versions_ref.txt b/codeHF/versions_ref.txt deleted file mode 100644 index 937d4a10..00000000 --- a/codeHF/versions_ref.txt +++ /dev/null @@ -1,5 +0,0 @@ -alidist: master 2021-09-08 11:06:29 +0200 315bc6d Fix O2PHYSICS_ROOT declaration (#3296) -AliPhysics: master 2021-09-08 16:49:46 +0200 66466c30f97f Merge pull request #18445 from rosarioturrisi/master -O2: dev 2021-09-08 19:06:13 +0200 e5739cc8ae Use MCTruthContainer in the CA tracker (#6971) -O2Physics: master 2021-09-08 18:22:02 +0200 8fd2775 PWGHF: Add Ξcc tree creator (#56) -Run 3 validation: master 2021-09-08 17:44:24 +0200 bf171ec Add Ξcc tree creator workflow (#288)