From 8af3dbffb84d9fac439848440ca416f9ac6c3c27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Fri, 21 Aug 2026 15:35:00 +0200 Subject: [PATCH 01/12] Refactor lutEntry_t print method and size calculations --- ALICE3/Core/FlatLutEntry.cxx | 49 ++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/ALICE3/Core/FlatLutEntry.cxx b/ALICE3/Core/FlatLutEntry.cxx index 5110e9bff4c..8ced29cdb66 100644 --- a/ALICE3/Core/FlatLutEntry.cxx +++ b/ALICE3/Core/FlatLutEntry.cxx @@ -25,6 +25,36 @@ namespace o2::delphes { +void lutEntry_t::print() const +{ + LOGF(info, " nch = %f, eta = %f, pt = %f, valid = %s\n", nch, eta, pt, valid ? "true" : "false"); + LOGF(info, " eff = %f, eff2 = %f, itof = %f, otof = %f\n", eff, eff2, itof, otof); + LOGF(info, " covm: "); + for (int i = 0; i < 15; ++i) { + LOGF(info, "%f ", covm[i]); + } + LOGF(info, "\n"); + LOGF(info, " eigval: "); + for (int i = 0; i < 5; ++i) { + LOGF(info, "%f ", eigval[i]); + } + LOGF(info, "\n"); + LOGF(info, " eigvec:\n"); + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 5; ++j) { + LOGF(info, "%f ", eigvec[i][j]); + } + LOGF(info, "\n"); + } + LOGF(info, " eiginv:\n"); + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < 5; ++j) { + LOGF(info, "%f ", eiginv[i][j]); + } + LOGF(info, "\n"); + } +} + float map_t::fracPositionWithinBin(float val) const { float width = (max - min) / nbins; @@ -90,10 +120,10 @@ void FlatLutData::initialize(const lutHeader_t& header) mEtaBins = header.etamap.nbins; mPtBins = header.ptmap.nbins; - size_t headerSize = sizeof(lutHeader_t); - size_t numEntries = static_cast(mNchBins) * mRadBins * mEtaBins * mPtBins; - size_t entriesSize = numEntries * sizeof(lutEntry_t); - size_t totalSize = headerSize + entriesSize; + const size_t headerSize = sizeof(lutHeader_t); + const size_t numEntries = static_cast(mNchBins) * mRadBins * mEtaBins * mPtBins; + const size_t entriesSize = numEntries * sizeof(lutEntry_t); + const size_t totalSize = headerSize + entriesSize; mData.resize(totalSize); // Write header at the beginning @@ -103,13 +133,10 @@ void FlatLutData::initialize(const lutHeader_t& header) size_t FlatLutData::getEntryOffset(int nch_bin, int rad_bin, int eta_bin, int pt_bin) const { - size_t headerSize = sizeof(lutHeader_t); - - // Linear index: nch varies slowest, pt varies fastest - // idx = nch * (rad*eta*pt) + rad * (eta*pt) + eta * pt + pt - size_t linearIdx = static_cast(nch_bin) * (mRadBins * mEtaBins * mPtBins) + static_cast(rad_bin) * (mEtaBins * mPtBins) + static_cast(eta_bin) * mPtBins + static_cast(pt_bin); - - return headerSize + linearIdx * sizeof(lutEntry_t); + static constexpr size_t headerSize = sizeof(lutHeader_t); + const size_t linearIdx = getEntryIndex(nch_bin, rad_bin, eta_bin, pt_bin); + static constexpr size_t entrySize = sizeof(lutEntry_t); + return headerSize + linearIdx * entrySize; } const lutEntry_t* FlatLutData::getEntryRef(int nch_bin, int rad_bin, int eta_bin, int pt_bin) const From 059b3410ee1b36b999e4391107bf441ca6a8aa3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Fri, 21 Aug 2026 15:35:33 +0200 Subject: [PATCH 02/12] Implement getEntryIndex method in FlatLutEntry Add method to compute linear index for LUT entries --- ALICE3/Core/FlatLutEntry.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ALICE3/Core/FlatLutEntry.h b/ALICE3/Core/FlatLutEntry.h index 7786523170b..330c3e6df87 100644 --- a/ALICE3/Core/FlatLutEntry.h +++ b/ALICE3/Core/FlatLutEntry.h @@ -104,6 +104,13 @@ class FlatLutData */ void initialize(const lutHeader_t& header); + size_t getEntryIndex(int nch_bin, int rad_bin, int eta_bin, int pt_bin) const + { + // Linear index: nch varies slowest, pt varies fastest + // idx = nch * (rad*eta*pt) + rad * (eta*pt) + eta * pt + pt + return static_cast(nch_bin) * (mRadBins * mEtaBins * mPtBins) + static_cast(rad_bin) * (mEtaBins * mPtBins) + static_cast(eta_bin) * mPtBins + static_cast(pt_bin); + } + /** * @brief Get LUT entry by bin indices (view) */ From b0640be1e259194f0f8fdc12ab88e0b13e0f782a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Fri, 21 Aug 2026 15:36:42 +0200 Subject: [PATCH 03/12] Add files via upload --- ALICE3/Macros/drawTrackSmearer.C | 81 ++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 ALICE3/Macros/drawTrackSmearer.C diff --git a/ALICE3/Macros/drawTrackSmearer.C b/ALICE3/Macros/drawTrackSmearer.C new file mode 100644 index 00000000000..65035a51820 --- /dev/null +++ b/ALICE3/Macros/drawTrackSmearer.C @@ -0,0 +1,81 @@ +// 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. + +#include "FlatTrackSmearer.h" +#include "TrackUtilities.h" + +#include +#include +#include +#include + +void drawTrackSmearer(const std::vector>& filenames = {{11, "/tmp/lut/lutCov.acts.11.2T.dNdEta5.dat"}, + {13, "/tmp/lut/lutCov.acts.13.2T.dNdEta5.dat"}, + {211, "/tmp/lut/lutCov.acts.211.2T.dNdEta5.dat"}, + {2212, "/tmp/lut/lutCov.acts.2212.2T.dNdEta5.dat"}, + {321, "/tmp/lut/lutCov.acts.321.2T.dNdEta5.dat"}}) +{ + + o2::delphes::TrackSmearer trackSmearer; + + TCanvas* cPtReso = new TCanvas("cPtReso", "cPtReso", 800, 600); + TCanvas* cPtEff = new TCanvas("cPtEff", "cPtEff", 800, 600); + + for (const auto& [pdg, filename] : filenames) { + trackSmearer.loadTable(pdg, filename.c_str(), true); + TGraph* gPt = new TGraph(); + gPt->SetName(Form("gPt_%d", pdg)); + gPt->GetXaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})"); + gPt->GetYaxis()->SetTitle("pt resolution"); + + TGraph* gPtEff = new TGraph(); + gPtEff->SetName(Form("gPtEff_%d", pdg)); + gPtEff->GetXaxis()->SetTitle("#it{p}_{T} (GeV/#it{c})"); + gPtEff->GetYaxis()->SetTitle("efficiency"); + + for (int i = 0; i < trackSmearer.getLUTHeader(pdg)->ptmap.nbins; i++) { + const float pt = trackSmearer.getLUTHeader(pdg)->ptmap.eval(i); + const float res = trackSmearer.getPtRes(pdg, 0, 0., pt); + gPt->AddPoint(pt, res / pt); + const float eff = trackSmearer.getEfficiency(pdg, 0, 0., pt); + gPtEff->AddPoint(pt, eff); + } + + int color = 0; + if (pdg == 11) { + color = TColor::GetColor("#e41a1c"); + } else if (pdg == 13) { + color = TColor::GetColor("#377eb8"); + } else if (pdg == 211) { + color = TColor::GetColor("#4daf4a"); + } else if (pdg == 2212) { + color = TColor::GetColor("#984ea3"); + } else if (pdg == 321) { + color = TColor::GetColor("#ff7f00"); + } + gPt->SetLineColor(color); + gPtEff->SetLineColor(color); + + cPtReso->cd(); + if (cPtReso->GetListOfPrimitives()->GetEntries() == 0) { + gPt->Draw("ALP"); + } else { + gPt->Draw("LP SAME"); + } + cPtEff->cd(); + if (cPtEff->GetListOfPrimitives()->GetEntries() == 0) { + gPtEff->Draw("ALP"); + } else { + gPtEff->Draw("LP SAME"); + } + gPt->SaveAs("/tmp/gPt.root"); + } +} From f050c635b817e609a916de57c4b2a1f9be4d0208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Fri, 21 Aug 2026 15:48:08 +0200 Subject: [PATCH 04/12] Refactor LUT structures and improve documentation Updated struct names and comments for clarity. --- ALICE3/Core/FlatLutEntry.h | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/ALICE3/Core/FlatLutEntry.h b/ALICE3/Core/FlatLutEntry.h index 330c3e6df87..08ab38dcab5 100644 --- a/ALICE3/Core/FlatLutEntry.h +++ b/ALICE3/Core/FlatLutEntry.h @@ -9,6 +9,9 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. +/// \file FlatLutEntry.h +/// \brief Flat LUT data structures and buffer handling for the ALICE3 fast smearing backend. + #ifndef ALICE3_CORE_FLATLUTENTRY_H_ #define ALICE3_CORE_FLATLUTENTRY_H_ @@ -25,9 +28,9 @@ namespace o2::delphes { /** - * @brief Flat LUT entry structure + * @brief Flat LUT entry structure. */ -struct lutEntry_t { +struct LutEntry { float nch = 0.f; float eta = 0.f; float pt = 0.f; @@ -44,10 +47,12 @@ struct lutEntry_t { void print() const; }; +using lutEntry_t = LutEntry; + /** - * @brief Binning map + * @brief Binning map. */ -struct map_t { +struct Map { int nbins = 1; float min = 0.f; float max = 1.e6f; @@ -67,10 +72,12 @@ struct map_t { void print() const; }; +using map_t = Map; + /** - * @brief LUT header + * @brief LUT header. */ -struct lutHeader_t { +struct LutHeader { int version = LUTCOVM_VERSION; int pdg = 0; float mass = 0.f; @@ -80,12 +87,14 @@ struct lutHeader_t { map_t etamap; map_t ptmap; - bool check_version() const; + bool checkVersion() const; void print() const; }; +using lutHeader_t = LutHeader; + /** - * @brief Flat LUT data container - single contiguous buffer + * @brief Flat LUT data container - single contiguous buffer. * Memory layout: [header][entry_0][entry_1]...[entry_N] * * All entries stored sequentially in a single allocation. From 1da3d2eda981ad9028ed45e314bd4f5ff38c310f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Fri, 21 Aug 2026 15:50:34 +0200 Subject: [PATCH 05/12] Refactor LUT entry functions and improve readability --- ALICE3/Core/FlatLutEntry.cxx | 55 +++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/ALICE3/Core/FlatLutEntry.cxx b/ALICE3/Core/FlatLutEntry.cxx index 8ced29cdb66..0415f7630f4 100644 --- a/ALICE3/Core/FlatLutEntry.cxx +++ b/ALICE3/Core/FlatLutEntry.cxx @@ -9,6 +9,9 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. +/// \file FlatLutEntry.cxx +/// \brief Flat LUT implementation for compact helper tables used by the ALICE3 track smearing workflow. + #include "FlatLutEntry.h" #include @@ -24,31 +27,37 @@ namespace o2::delphes { +namespace +{ +constexpr int kNumCovarianceTerms = 15; +constexpr int kNumEigenModes = 5; +constexpr float kBinCenterOffset = 0.5f; +} // namespace void lutEntry_t::print() const { LOGF(info, " nch = %f, eta = %f, pt = %f, valid = %s\n", nch, eta, pt, valid ? "true" : "false"); LOGF(info, " eff = %f, eff2 = %f, itof = %f, otof = %f\n", eff, eff2, itof, otof); LOGF(info, " covm: "); - for (int i = 0; i < 15; ++i) { + for (int i = 0; i < kNumCovarianceTerms; ++i) { LOGF(info, "%f ", covm[i]); } LOGF(info, "\n"); LOGF(info, " eigval: "); - for (int i = 0; i < 5; ++i) { + for (int i = 0; i < kNumEigenModes; ++i) { LOGF(info, "%f ", eigval[i]); } LOGF(info, "\n"); LOGF(info, " eigvec:\n"); - for (int i = 0; i < 5; ++i) { - for (int j = 0; j < 5; ++j) { + for (int i = 0; i < kNumEigenModes; ++i) { + for (int j = 0; j < kNumEigenModes; ++j) { LOGF(info, "%f ", eigvec[i][j]); } LOGF(info, "\n"); } LOGF(info, " eiginv:\n"); - for (int i = 0; i < 5; ++i) { - for (int j = 0; j < 5; ++j) { + for (int i = 0; i < kNumEigenModes; ++i) { + for (int j = 0; j < kNumEigenModes; ++j) { LOGF(info, "%f ", eiginv[i][j]); } LOGF(info, "\n"); @@ -59,7 +68,7 @@ float map_t::fracPositionWithinBin(float val) const { float width = (max - min) / nbins; int bin; - float returnVal = 0.5f; + float returnVal = kBinCenterOffset; if (log) { bin = static_cast((std::log10(val) - min) / width); returnVal = ((std::log10(val) - min) / width) - bin; @@ -93,7 +102,7 @@ void map_t::print() const LOGF(info, "nbins = %d, min = %f, max = %f, log = %s \n", nbins, min, max, log ? "on" : "off"); } -bool lutHeader_t::check_version() const +bool lutHeader_t::checkVersion() const { return (version == LUTCOVM_VERSION); } @@ -120,7 +129,7 @@ void FlatLutData::initialize(const lutHeader_t& header) mEtaBins = header.etamap.nbins; mPtBins = header.ptmap.nbins; - const size_t headerSize = sizeof(lutHeader_t); + constexpr size_t headerSize = sizeof(lutHeader_t); const size_t numEntries = static_cast(mNchBins) * mRadBins * mEtaBins * mPtBins; const size_t entriesSize = numEntries * sizeof(lutEntry_t); const size_t totalSize = headerSize + entriesSize; @@ -133,10 +142,10 @@ void FlatLutData::initialize(const lutHeader_t& header) size_t FlatLutData::getEntryOffset(int nch_bin, int rad_bin, int eta_bin, int pt_bin) const { - static constexpr size_t headerSize = sizeof(lutHeader_t); + static constexpr size_t HeaderSize = sizeof(lutHeader_t); const size_t linearIdx = getEntryIndex(nch_bin, rad_bin, eta_bin, pt_bin); - static constexpr size_t entrySize = sizeof(lutEntry_t); - return headerSize + linearIdx * entrySize; + static constexpr size_t EntrySize = sizeof(lutEntry_t); + return HeaderSize + linearIdx * EntrySize; } const lutEntry_t* FlatLutData::getEntryRef(int nch_bin, int rad_bin, int eta_bin, int pt_bin) const @@ -200,26 +209,26 @@ void FlatLutData::view(const uint8_t* buffer, size_t size) void FlatLutData::validateBuffer(const uint8_t* buffer, size_t size) { - auto header = PreviewHeader(buffer, size); - auto mNchBins = header.nchmap.nbins; - auto mRadBins = header.radmap.nbins; - auto mEtaBins = header.etamap.nbins; - auto mPtBins = header.ptmap.nbins; + auto header = previewHeader(buffer, size); + const auto nchBins = header.nchmap.nbins; + const auto radBins = header.radmap.nbins; + const auto etaBins = header.etamap.nbins; + const auto ptBins = header.ptmap.nbins; - size_t expectedSize = sizeof(lutHeader_t) + static_cast(mNchBins) * mRadBins * mEtaBins * mPtBins * sizeof(lutEntry_t); + const size_t expectedSize = sizeof(lutHeader_t) + static_cast(nchBins) * radBins * etaBins * ptBins * sizeof(lutEntry_t); if (size < expectedSize) { throw framework::runtime_error_f("Buffer size mismatch: expected %zu, got %zu", expectedSize, size); } } -lutHeader_t FlatLutData::PreviewHeader(const uint8_t* buffer, size_t size) +lutHeader_t FlatLutData::previewHeader(const uint8_t* buffer, size_t size) { if (size < sizeof(lutHeader_t)) { throw framework::runtime_error_f("Buffer too small for LUT header: expected at least %zu, got %zu", sizeof(lutHeader_t), size); } const auto* header = reinterpret_cast(buffer); - if (!header->check_version()) { + if (!header->checkVersion()) { throw framework::runtime_error_f("LUT header version mismatch: expected %d, got %d", LUTCOVM_VERSION, header->version); } return *header; @@ -256,14 +265,14 @@ bool FlatLutData::isLoaded() const return ((!mData.empty()) || (!mDataRef.empty())); } -lutHeader_t FlatLutData::PreviewHeader(std::ifstream& file, const char* filename) +lutHeader_t FlatLutData::previewHeader(std::ifstream& file, const char* filename) { lutHeader_t tempHeader; file.read(reinterpret_cast(&tempHeader), sizeof(lutHeader_t)); if (file.gcount() != static_cast(sizeof(lutHeader_t))) { throw framework::runtime_error_f("Failed to read LUT header from %s", filename); } - if (!tempHeader.check_version()) { + if (!tempHeader.checkVersion()) { throw framework::runtime_error_f("LUT header version mismatch: expected %d, got %d", LUTCOVM_VERSION, tempHeader.version); } return tempHeader; @@ -272,7 +281,7 @@ lutHeader_t FlatLutData::PreviewHeader(std::ifstream& file, const char* filename FlatLutData FlatLutData::loadFromFile(std::ifstream& file, const char* filename) { // Read header first - lutHeader_t tempHeader = PreviewHeader(file, filename); + lutHeader_t tempHeader = previewHeader(file, filename); FlatLutData data; From ff1f4cf788779ea69eeaf859bb043ce6d3cf336e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Fri, 21 Aug 2026 15:52:30 +0200 Subject: [PATCH 06/12] Refactor drawTrackSmearer to use PDG constants --- ALICE3/Macros/drawTrackSmearer.C | 36 +++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/ALICE3/Macros/drawTrackSmearer.C b/ALICE3/Macros/drawTrackSmearer.C index 65035a51820..ba2460877a1 100644 --- a/ALICE3/Macros/drawTrackSmearer.C +++ b/ALICE3/Macros/drawTrackSmearer.C @@ -9,6 +9,9 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. +/// \file drawTrackSmearer.C +/// \brief Draw the ALICE3 track-smearing performance curves for key particle species. + #include "FlatTrackSmearer.h" #include "TrackUtilities.h" @@ -17,11 +20,24 @@ #include #include -void drawTrackSmearer(const std::vector>& filenames = {{11, "/tmp/lut/lutCov.acts.11.2T.dNdEta5.dat"}, - {13, "/tmp/lut/lutCov.acts.13.2T.dNdEta5.dat"}, - {211, "/tmp/lut/lutCov.acts.211.2T.dNdEta5.dat"}, - {2212, "/tmp/lut/lutCov.acts.2212.2T.dNdEta5.dat"}, - {321, "/tmp/lut/lutCov.acts.321.2T.dNdEta5.dat"}}) +#include + +namespace +{ +constexpr int kElectronPdg = static_cast(PDG_t::kElectron); +constexpr int kMuonPdg = static_cast(PDG_t::kMuonMinus); +constexpr int kPionPdg = static_cast(PDG_t::kPiPlus); +constexpr int kProtonPdg = static_cast(PDG_t::kProton); +constexpr int kKaonPdg = static_cast(PDG_t::kKPlus); + +const std::vector> kDefaultLutFiles = {{kElectronPdg, "/tmp/lut/lutCov.acts.11.2T.dNdEta5.dat"}, + {kMuonPdg, "/tmp/lut/lutCov.acts.13.2T.dNdEta5.dat"}, + {kPionPdg, "/tmp/lut/lutCov.acts.211.2T.dNdEta5.dat"}, + {kProtonPdg, "/tmp/lut/lutCov.acts.2212.2T.dNdEta5.dat"}, + {kKaonPdg, "/tmp/lut/lutCov.acts.321.2T.dNdEta5.dat"}}; +} // namespace + +void drawTrackSmearer(const std::vector>& filenames = kDefaultLutFiles) { o2::delphes::TrackSmearer trackSmearer; @@ -50,15 +66,15 @@ void drawTrackSmearer(const std::vector>& filenames } int color = 0; - if (pdg == 11) { + if (pdg == kElectronPdg) { color = TColor::GetColor("#e41a1c"); - } else if (pdg == 13) { + } else if (pdg == kMuonPdg) { color = TColor::GetColor("#377eb8"); - } else if (pdg == 211) { + } else if (pdg == kPionPdg) { color = TColor::GetColor("#4daf4a"); - } else if (pdg == 2212) { + } else if (pdg == kProtonPdg) { color = TColor::GetColor("#984ea3"); - } else if (pdg == 321) { + } else if (pdg == kKaonPdg) { color = TColor::GetColor("#ff7f00"); } gPt->SetLineColor(color); From 7e7b6e7a92d4ebe0612772d5da90fefd1d75a491 Mon Sep 17 00:00:00 2001 From: ALICE Builder Date: Fri, 21 Aug 2026 15:57:04 +0200 Subject: [PATCH 07/12] Please consider the following formatting changes to #17546 (#17547) --- ALICE3/Macros/drawTrackSmearer.C | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ALICE3/Macros/drawTrackSmearer.C b/ALICE3/Macros/drawTrackSmearer.C index ba2460877a1..3e43a1842c7 100644 --- a/ALICE3/Macros/drawTrackSmearer.C +++ b/ALICE3/Macros/drawTrackSmearer.C @@ -19,7 +19,6 @@ #include #include #include - #include namespace @@ -31,10 +30,10 @@ constexpr int kProtonPdg = static_cast(PDG_t::kProton); constexpr int kKaonPdg = static_cast(PDG_t::kKPlus); const std::vector> kDefaultLutFiles = {{kElectronPdg, "/tmp/lut/lutCov.acts.11.2T.dNdEta5.dat"}, - {kMuonPdg, "/tmp/lut/lutCov.acts.13.2T.dNdEta5.dat"}, - {kPionPdg, "/tmp/lut/lutCov.acts.211.2T.dNdEta5.dat"}, - {kProtonPdg, "/tmp/lut/lutCov.acts.2212.2T.dNdEta5.dat"}, - {kKaonPdg, "/tmp/lut/lutCov.acts.321.2T.dNdEta5.dat"}}; + {kMuonPdg, "/tmp/lut/lutCov.acts.13.2T.dNdEta5.dat"}, + {kPionPdg, "/tmp/lut/lutCov.acts.211.2T.dNdEta5.dat"}, + {kProtonPdg, "/tmp/lut/lutCov.acts.2212.2T.dNdEta5.dat"}, + {kKaonPdg, "/tmp/lut/lutCov.acts.321.2T.dNdEta5.dat"}}; } // namespace void drawTrackSmearer(const std::vector>& filenames = kDefaultLutFiles) From 24cb31a194b141b4c8e9b87e0523d5be08551d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Fri, 21 Aug 2026 16:00:14 +0200 Subject: [PATCH 08/12] Fix casing of previewHeader function call --- ALICE3/Core/FlatTrackSmearer.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ALICE3/Core/FlatTrackSmearer.cxx b/ALICE3/Core/FlatTrackSmearer.cxx index d90c8a8997b..7cfec37bcdd 100644 --- a/ALICE3/Core/FlatTrackSmearer.cxx +++ b/ALICE3/Core/FlatTrackSmearer.cxx @@ -139,7 +139,7 @@ bool TrackSmearer::adoptTable(int pdg, const uint8_t* buffer, size_t size, bool return false; } try { - auto header = FlatLutData::PreviewHeader(buffer, size); + auto header = FlatLutData::previewHeader(buffer, size); if (header.pdg != pdg && !checkSpecialCase(pdg, header)) { LOGF(error, "LUT header PDG mismatch: expected %d, got %d", pdg, header.pdg); return false; @@ -162,7 +162,7 @@ bool TrackSmearer::viewTable(int pdg, const uint8_t* buffer, size_t size, bool f return false; } try { - auto header = FlatLutData::PreviewHeader(buffer, size); + auto header = FlatLutData::previewHeader(buffer, size); if (header.pdg != pdg && !checkSpecialCase(pdg, header)) { LOGF(error, "LUT header PDG mismatch: expected %d, got %d", pdg, header.pdg); return false; From 7c56cf26666fd7e91593992dd397af8402b2c11e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Fri, 21 Aug 2026 16:27:38 +0200 Subject: [PATCH 09/12] Add string and vector includes to FlatTrackSmearer --- ALICE3/Core/FlatTrackSmearer.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ALICE3/Core/FlatTrackSmearer.cxx b/ALICE3/Core/FlatTrackSmearer.cxx index 7cfec37bcdd..99231943de5 100644 --- a/ALICE3/Core/FlatTrackSmearer.cxx +++ b/ALICE3/Core/FlatTrackSmearer.cxx @@ -20,6 +20,8 @@ #include +#include +##include #include #include #include From 7b9b4982b496ccc0f67fde26185671e02657a3ec Mon Sep 17 00:00:00 2001 From: ALICE Builder Date: Fri, 21 Aug 2026 16:29:58 +0200 Subject: [PATCH 10/12] Please consider the following formatting changes to #17546 (#17548) --- ALICE3/Core/FlatTrackSmearer.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ALICE3/Core/FlatTrackSmearer.cxx b/ALICE3/Core/FlatTrackSmearer.cxx index 99231943de5..17cd75962d2 100644 --- a/ALICE3/Core/FlatTrackSmearer.cxx +++ b/ALICE3/Core/FlatTrackSmearer.cxx @@ -21,7 +21,7 @@ #include #include -##include +##include #include #include #include @@ -30,7 +30,7 @@ #include #include -namespace o2::delphes + namespace o2::delphes { int TrackSmearer::getIndexPDG(int pdg) { From d0a220c06adf5be4215afb7506bbfd56ad84f398 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Fri, 21 Aug 2026 16:54:06 +0200 Subject: [PATCH 11/12] Fix include directive for vector header --- ALICE3/Core/FlatTrackSmearer.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ALICE3/Core/FlatTrackSmearer.cxx b/ALICE3/Core/FlatTrackSmearer.cxx index 17cd75962d2..a85dfa62fa7 100644 --- a/ALICE3/Core/FlatTrackSmearer.cxx +++ b/ALICE3/Core/FlatTrackSmearer.cxx @@ -21,7 +21,7 @@ #include #include -##include +#include #include #include #include From c9b194c10db2aa5b59c177207a9e448d2e2b8820 Mon Sep 17 00:00:00 2001 From: ALICE Builder Date: Fri, 21 Aug 2026 16:56:34 +0200 Subject: [PATCH 12/12] Please consider the following formatting changes to #17546 (#17551) --- ALICE3/Core/FlatTrackSmearer.cxx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ALICE3/Core/FlatTrackSmearer.cxx b/ALICE3/Core/FlatTrackSmearer.cxx index a85dfa62fa7..668473369be 100644 --- a/ALICE3/Core/FlatTrackSmearer.cxx +++ b/ALICE3/Core/FlatTrackSmearer.cxx @@ -20,8 +20,6 @@ #include -#include -#include #include #include #include @@ -29,8 +27,9 @@ #include #include #include +#include - namespace o2::delphes +namespace o2::delphes { int TrackSmearer::getIndexPDG(int pdg) {