From 3f37e7e3c311cae793c2ac91f42a45aedb84035c Mon Sep 17 00:00:00 2001 From: Igor Altsybeev Date: Mon, 13 Apr 2026 19:52:41 +0200 Subject: [PATCH 1/9] add CheckClusterSizeVsEta.C macro --- .../TRK/macros/test/CheckClusterSizeVsEta.C | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C diff --git a/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C b/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C new file mode 100644 index 0000000000000..cf33eb97ccb0e --- /dev/null +++ b/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C @@ -0,0 +1,169 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// ### required input file: CheckClusters.root, which is the output of CheckClusters.C macro +void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root") +{ + gStyle->SetOptStat(0); + + TFile *fileInput = new TFile(strFileInput.c_str()); + TTree *tree = (TTree *)fileInput->Get("ntc"); + + std::cout << "Opened tree: " << tree->GetName() + << ", entries = " << tree->GetEntries() << std::endl; + + // set branch addresses + Float_t event; + Float_t mcTrackID; + Float_t hitLocX, hitLocZ; + Float_t hitGlobX, hitGlobY, hitGlobZ; + Float_t clusGlobX, clusGlobY, clusGlobZ; + Float_t clusLocX, clusLocZ; + Float_t rofFrame; + Float_t clusSize; + Float_t chipID; + Float_t layer; + Float_t disk; + Float_t subdet; + Float_t row, col; + Float_t pt; + + // set branch addresses + tree->SetBranchAddress("event", &event); + tree->SetBranchAddress("mcTrackID", &mcTrackID); + tree->SetBranchAddress("hitLocX", &hitLocX); + tree->SetBranchAddress("hitLocZ", &hitLocZ); + tree->SetBranchAddress("hitGlobX", &hitGlobX); + tree->SetBranchAddress("hitGlobY", &hitGlobY); + tree->SetBranchAddress("hitGlobZ", &hitGlobZ); + tree->SetBranchAddress("clusGlobX", &clusGlobX); + tree->SetBranchAddress("clusGlobY", &clusGlobY); + tree->SetBranchAddress("clusGlobZ", &clusGlobZ); + tree->SetBranchAddress("clusLocX", &clusLocX); + tree->SetBranchAddress("clusLocZ", &clusLocZ); + tree->SetBranchAddress("rofFrame", &rofFrame); + tree->SetBranchAddress("clusSize", &clusSize); + tree->SetBranchAddress("chipID", &chipID); + tree->SetBranchAddress("layer", &layer); + tree->SetBranchAddress("disk", &disk); + tree->SetBranchAddress("subdet", &subdet); + tree->SetBranchAddress("row", &row); + tree->SetBranchAddress("col", &col); + tree->SetBranchAddress("pt", &pt); + + // Some QA histograms + TH1F *hPt = new TH1F("hPt", "p_{T};p_{T};Entries", 100, 0., 10.); + TH1F *hClusSize = new TH1F("hClusSize", "Cluster size;clusSize;Entries", 20, 0., 20.); + TH1F *hLayer = new TH1F("hLayer", "Layer;layer;Entries", 20, -0.5, 19.5); + TH1F *hDxGlob = new TH1F("hDxGlob", "clusGlobX - hitGlobX;#DeltaX [global];Entries", 200, -1., 1.); + TH1F *hDzGlob = new TH1F("hDzGlob", "clusGlobZ - hitGlobZ;#DeltaZ [global];Entries", 200, -1., 1.); + TH2F *hHitXY = new TH2F("hHitXY", "Hit global XY;hitGlobX;hitGlobY", 200, -20., 20., 200, -20., 20.); + TH2F *hClusVsHitX = new TH2F("hClusVsHitX", "clusGlobX vs hitGlobX;hitGlobX;clusGlobX", 200, -20., 20., 200, -20., 20.); + + // histograms for cluster size vs eta for each layer (ML and OT barrel layers): + const int nLayers = 8; // ML and OT barrel layers only + TH2F *hClustSizePerLayerVsEta[nLayers]; + for (int i = 0; i < nLayers; i++) + { + hClustSizePerLayerVsEta[i] = new TH2F(Form("hClustSizePerLayerVsEta_Lay%d", i), Form("Cluster size vs eta for layer %d;#eta;Cluster size", i), 160, -4, 4, 101, -0.5, 100.5); + } + + // Loop over entries + const Long64_t nEntries = tree->GetEntries(); + for (Long64_t i = 0; i < nEntries; ++i) + { + tree->GetEntry(i); + + // Fill QA histograms + float dXGlob = clusGlobX - hitGlobX; + float dZGlob = clusGlobZ - hitGlobZ; + hPt->Fill(pt); + hClusSize->Fill(clusSize); + hLayer->Fill(layer); + hDxGlob->Fill(dXGlob); + hDzGlob->Fill(dZGlob); + hHitXY->Fill(hitGlobX, hitGlobY); + hClusVsHitX->Fill(hitGlobX, clusGlobX); + + // cls size vs eta: + float clustR = sqrt(clusGlobX * clusGlobX + clusGlobY * clusGlobY); + float clustPhi = atan2(clusGlobY, clusGlobX); + float clustTheta = atan2(clustR, clusGlobZ); + float clustEta = -log(tan(clustTheta / 2)); + + // !!! important: to avoid VD layers (numeration for ML starts from 0, while VD layers are also numbered as 0,1,2) + if (clustR > 5) // cm + hClustSizePerLayerVsEta[(int)layer]->Fill(clustEta, clusSize); + + // progress print + if ((i + 1) % 200000 == 0) + { + std::cout << "Processed " << (i + 1) << " / " << nEntries << " entries" << std::endl; + } + } + + // Save histograms to file + TFile *fout = TFile::Open("clusterSizes_vs_eta.root", "RECREATE"); + hPt->Write(); + hClusSize->Write(); + hLayer->Write(); + hDxGlob->Write(); + hDzGlob->Write(); + hHitXY->Write(); + hClusVsHitX->Write(); + + // draw some QA histograms + TCanvas *c1 = new TCanvas("canv_clusters_QA", "Clusters QA", 1200, 800); + c1->Divide(2, 2); + c1->cd(1); + hPt->Draw(); + c1->cd(2); + hClusSize->Draw(); + c1->cd(3); + hDxGlob->Draw(); + c1->cd(4); + hHitXY->Draw("COLZ"); + + TCanvas *canv_clsSize_vs_eta[nLayers]; + TProfile *profPerLayerVsEta[nLayers]; + for (int i = 0; i < nLayers; i++) + { + canv_clsSize_vs_eta[i] = new TCanvas(Form("canv_clsSize_vs_eta_Lay%d", i), Form("Cluster size vs eta for layer %d", i), 800, 600); + hClustSizePerLayerVsEta[i]->Draw("COLZ"); + gPad->SetLogz(); + profPerLayerVsEta[i] = hClustSizePerLayerVsEta[i]->ProfileX(); + profPerLayerVsEta[i]->DrawCopy("same"); + + hClustSizePerLayerVsEta[i]->Write(); + profPerLayerVsEta[i]->Write(); + } + + // canvas with profiles for all layers together + TCanvas *canv_av_clsSize_vs_eta_all_layers = new TCanvas("canv_clsSize_vs_eta_all_layers", "Cluster size vs eta for all layers", 800, 600); + TLegend *legLayers = new TLegend(0.3, 0.52, 0.65, 0.89); + int colors[] = {kRed, kBlue, kMagenta + 1, kCyan + 1, kGray + 2, kRed, kBlue, kMagenta + 1, kCyan, kAzure + 1, kOrange - 9, kRed + 2, kBlue + 2, kMagenta + 2}; + for (int i = 0; i < nLayers; i++) + { + profPerLayerVsEta[i]->SetLineColor(colors[i]); + profPerLayerVsEta[i]->SetMarkerColor(colors[i]); + profPerLayerVsEta[i]->SetMarkerStyle(i < 5 ? 20 : 24); + profPerLayerVsEta[i]->SetTitle(";#eta;#LTcluster size#GT"); + profPerLayerVsEta[i]->GetYaxis()->SetRangeUser(0., 12.5); + profPerLayerVsEta[i]->DrawCopy(i == 0 ? "P" : "P same"); + legLayers->AddEntry(profPerLayerVsEta[i], Form("Layer %d", i), "P"); + } + + legLayers->Draw(); + gPad->SetGrid(); + canv_av_clsSize_vs_eta_all_layers->SaveAs("clsSize_vs_eta_all_layers.png"); + canv_av_clsSize_vs_eta_all_layers->Write(); + + // fout->Close(); +} \ No newline at end of file From bdc78ee9900a3afb2883a42fa769565daea4cb7b Mon Sep 17 00:00:00 2001 From: Igor Altsybeev Date: Mon, 13 Apr 2026 20:05:14 +0200 Subject: [PATCH 2/9] adding necessary copyright etc --- .../TRK/macros/test/CheckClusterSizeVsEta.C | 183 ++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 Detectors/Upgrades/O2:Upgrades:ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C diff --git a/Detectors/Upgrades/O2:Upgrades:ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C b/Detectors/Upgrades/O2:Upgrades:ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C new file mode 100644 index 0000000000000..d064647dd76f7 --- /dev/null +++ b/Detectors/Upgrades/O2:Upgrades:ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C @@ -0,0 +1,183 @@ +// Copyright 2019-2026 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. + +/// \file CheckClusterSizeVsEta.C +/// \brief A post-processing macro to draw average cluster size vs eta + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// ### required input file: CheckClusters.root, which is the output of CheckClusters.C macro +void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root") +{ + gStyle->SetOptStat(0); + + TFile *fileInput = new TFile(strFileInput.c_str()); + TTree *tree = (TTree *)fileInput->Get("ntc"); + + std::cout << "Opened tree: " << tree->GetName() + << ", entries = " << tree->GetEntries() << std::endl; + + // set branch addresses + Float_t event; + Float_t mcTrackID; + Float_t hitLocX, hitLocZ; + Float_t hitGlobX, hitGlobY, hitGlobZ; + Float_t clusGlobX, clusGlobY, clusGlobZ; + Float_t clusLocX, clusLocZ; + Float_t rofFrame; + Float_t clusSize; + Float_t chipID; + Float_t layer; + Float_t disk; + Float_t subdet; + Float_t row, col; + Float_t pt; + + // set branch addresses + tree->SetBranchAddress("event", &event); + tree->SetBranchAddress("mcTrackID", &mcTrackID); + tree->SetBranchAddress("hitLocX", &hitLocX); + tree->SetBranchAddress("hitLocZ", &hitLocZ); + tree->SetBranchAddress("hitGlobX", &hitGlobX); + tree->SetBranchAddress("hitGlobY", &hitGlobY); + tree->SetBranchAddress("hitGlobZ", &hitGlobZ); + tree->SetBranchAddress("clusGlobX", &clusGlobX); + tree->SetBranchAddress("clusGlobY", &clusGlobY); + tree->SetBranchAddress("clusGlobZ", &clusGlobZ); + tree->SetBranchAddress("clusLocX", &clusLocX); + tree->SetBranchAddress("clusLocZ", &clusLocZ); + tree->SetBranchAddress("rofFrame", &rofFrame); + tree->SetBranchAddress("clusSize", &clusSize); + tree->SetBranchAddress("chipID", &chipID); + tree->SetBranchAddress("layer", &layer); + tree->SetBranchAddress("disk", &disk); + tree->SetBranchAddress("subdet", &subdet); + tree->SetBranchAddress("row", &row); + tree->SetBranchAddress("col", &col); + tree->SetBranchAddress("pt", &pt); + + // Some QA histograms + TH1F *hPt = new TH1F("hPt", "p_{T};p_{T};Entries", 100, 0., 10.); + TH1F *hClusSize = new TH1F("hClusSize", "Cluster size;clusSize;Entries", 20, 0., 20.); + TH1F *hLayer = new TH1F("hLayer", "Layer;layer;Entries", 20, -0.5, 19.5); + TH1F *hDxGlob = new TH1F("hDxGlob", "clusGlobX - hitGlobX;#DeltaX [global];Entries", 200, -1., 1.); + TH1F *hDzGlob = new TH1F("hDzGlob", "clusGlobZ - hitGlobZ;#DeltaZ [global];Entries", 200, -1., 1.); + TH2F *hHitXY = new TH2F("hHitXY", "Hit global XY;hitGlobX;hitGlobY", 200, -20., 20., 200, -20., 20.); + TH2F *hClusVsHitX = new TH2F("hClusVsHitX", "clusGlobX vs hitGlobX;hitGlobX;clusGlobX", 200, -20., 20., 200, -20., 20.); + + // histograms for cluster size vs eta for each layer (ML and OT barrel layers): + const int nLayers = 8; // ML and OT barrel layers only + TH2F *hClustSizePerLayerVsEta[nLayers]; + for (int i = 0; i < nLayers; i++) + { + hClustSizePerLayerVsEta[i] = new TH2F(Form("hClustSizePerLayerVsEta_Lay%d", i), Form("Cluster size vs eta for layer %d;#eta;Cluster size", i), 160, -4, 4, 101, -0.5, 100.5); + } + + // Loop over entries + const Long64_t nEntries = tree->GetEntries(); + for (Long64_t i = 0; i < nEntries; ++i) + { + tree->GetEntry(i); + + // Fill QA histograms + float dXGlob = clusGlobX - hitGlobX; + float dZGlob = clusGlobZ - hitGlobZ; + hPt->Fill(pt); + hClusSize->Fill(clusSize); + hLayer->Fill(layer); + hDxGlob->Fill(dXGlob); + hDzGlob->Fill(dZGlob); + hHitXY->Fill(hitGlobX, hitGlobY); + hClusVsHitX->Fill(hitGlobX, clusGlobX); + + // cls size vs eta: + float clustR = sqrt(clusGlobX * clusGlobX + clusGlobY * clusGlobY); + float clustPhi = atan2(clusGlobY, clusGlobX); + float clustTheta = atan2(clustR, clusGlobZ); + float clustEta = -log(tan(clustTheta / 2)); + + // !!! important: to avoid VD layers (numeration for ML starts from 0, while VD layers are also numbered as 0,1,2) + if (clustR > 5) // cm + hClustSizePerLayerVsEta[(int)layer]->Fill(clustEta, clusSize); + + // progress print + if ((i + 1) % 200000 == 0) + { + std::cout << "Processed " << (i + 1) << " / " << nEntries << " entries" << std::endl; + } + } + + // Save histograms to file + TFile *fout = TFile::Open("clusterSizes_vs_eta.root", "RECREATE"); + hPt->Write(); + hClusSize->Write(); + hLayer->Write(); + hDxGlob->Write(); + hDzGlob->Write(); + hHitXY->Write(); + hClusVsHitX->Write(); + + // draw some QA histograms + TCanvas *c1 = new TCanvas("canv_clusters_QA", "Clusters QA", 1200, 800); + c1->Divide(2, 2); + c1->cd(1); + hPt->Draw(); + c1->cd(2); + hClusSize->Draw(); + c1->cd(3); + hDxGlob->Draw(); + c1->cd(4); + hHitXY->Draw("COLZ"); + + TCanvas *canv_clsSize_vs_eta[nLayers]; + TProfile *profPerLayerVsEta[nLayers]; + for (int i = 0; i < nLayers; i++) + { + canv_clsSize_vs_eta[i] = new TCanvas(Form("canv_clsSize_vs_eta_Lay%d", i), Form("Cluster size vs eta for layer %d", i), 800, 600); + hClustSizePerLayerVsEta[i]->Draw("COLZ"); + gPad->SetLogz(); + profPerLayerVsEta[i] = hClustSizePerLayerVsEta[i]->ProfileX(); + profPerLayerVsEta[i]->DrawCopy("same"); + + hClustSizePerLayerVsEta[i]->Write(); + profPerLayerVsEta[i]->Write(); + } + + // canvas with profiles for all layers together + TCanvas *canv_av_clsSize_vs_eta_all_layers = new TCanvas("canv_clsSize_vs_eta_all_layers", "Cluster size vs eta for all layers", 800, 600); + TLegend *legLayers = new TLegend(0.3, 0.52, 0.65, 0.89); + int colors[] = {kRed, kBlue, kMagenta + 1, kCyan + 1, kGray + 2, kRed, kBlue, kMagenta + 1, kCyan, kAzure + 1, kOrange - 9, kRed + 2, kBlue + 2, kMagenta + 2}; + for (int i = 0; i < nLayers; i++) + { + profPerLayerVsEta[i]->SetLineColor(colors[i]); + profPerLayerVsEta[i]->SetMarkerColor(colors[i]); + profPerLayerVsEta[i]->SetMarkerStyle(i < 5 ? 20 : 24); + profPerLayerVsEta[i]->SetTitle(";#eta;#LTcluster size#GT"); + profPerLayerVsEta[i]->GetYaxis()->SetRangeUser(0., 12.5); + profPerLayerVsEta[i]->DrawCopy(i == 0 ? "P" : "P same"); + legLayers->AddEntry(profPerLayerVsEta[i], Form("Layer %d", i), "P"); + } + + legLayers->Draw(); + gPad->SetGrid(); + canv_av_clsSize_vs_eta_all_layers->SaveAs("clsSize_vs_eta_all_layers.png"); + canv_av_clsSize_vs_eta_all_layers->Write(); + + // fout->Close(); +} \ No newline at end of file From f8abaf2a7e0ee77bf1b8ba04d632684010ad1e18 Mon Sep 17 00:00:00 2001 From: Igor Altsybeev Date: Mon, 13 Apr 2026 20:11:15 +0200 Subject: [PATCH 3/9] adding necessary copyright etc --- .../TRK/macros/test/CheckClusterSizeVsEta.C | 14 ++ .../TRK/macros/test/CheckClusterSizeVsEta.C | 183 ------------------ 2 files changed, 14 insertions(+), 183 deletions(-) delete mode 100644 Detectors/Upgrades/O2:Upgrades:ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C diff --git a/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C b/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C index cf33eb97ccb0e..d064647dd76f7 100644 --- a/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C +++ b/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C @@ -1,3 +1,17 @@ +// Copyright 2019-2026 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. + +/// \file CheckClusterSizeVsEta.C +/// \brief A post-processing macro to draw average cluster size vs eta + #include #include #include diff --git a/Detectors/Upgrades/O2:Upgrades:ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C b/Detectors/Upgrades/O2:Upgrades:ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C deleted file mode 100644 index d064647dd76f7..0000000000000 --- a/Detectors/Upgrades/O2:Upgrades:ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2019-2026 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. - -/// \file CheckClusterSizeVsEta.C -/// \brief A post-processing macro to draw average cluster size vs eta - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// ### required input file: CheckClusters.root, which is the output of CheckClusters.C macro -void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root") -{ - gStyle->SetOptStat(0); - - TFile *fileInput = new TFile(strFileInput.c_str()); - TTree *tree = (TTree *)fileInput->Get("ntc"); - - std::cout << "Opened tree: " << tree->GetName() - << ", entries = " << tree->GetEntries() << std::endl; - - // set branch addresses - Float_t event; - Float_t mcTrackID; - Float_t hitLocX, hitLocZ; - Float_t hitGlobX, hitGlobY, hitGlobZ; - Float_t clusGlobX, clusGlobY, clusGlobZ; - Float_t clusLocX, clusLocZ; - Float_t rofFrame; - Float_t clusSize; - Float_t chipID; - Float_t layer; - Float_t disk; - Float_t subdet; - Float_t row, col; - Float_t pt; - - // set branch addresses - tree->SetBranchAddress("event", &event); - tree->SetBranchAddress("mcTrackID", &mcTrackID); - tree->SetBranchAddress("hitLocX", &hitLocX); - tree->SetBranchAddress("hitLocZ", &hitLocZ); - tree->SetBranchAddress("hitGlobX", &hitGlobX); - tree->SetBranchAddress("hitGlobY", &hitGlobY); - tree->SetBranchAddress("hitGlobZ", &hitGlobZ); - tree->SetBranchAddress("clusGlobX", &clusGlobX); - tree->SetBranchAddress("clusGlobY", &clusGlobY); - tree->SetBranchAddress("clusGlobZ", &clusGlobZ); - tree->SetBranchAddress("clusLocX", &clusLocX); - tree->SetBranchAddress("clusLocZ", &clusLocZ); - tree->SetBranchAddress("rofFrame", &rofFrame); - tree->SetBranchAddress("clusSize", &clusSize); - tree->SetBranchAddress("chipID", &chipID); - tree->SetBranchAddress("layer", &layer); - tree->SetBranchAddress("disk", &disk); - tree->SetBranchAddress("subdet", &subdet); - tree->SetBranchAddress("row", &row); - tree->SetBranchAddress("col", &col); - tree->SetBranchAddress("pt", &pt); - - // Some QA histograms - TH1F *hPt = new TH1F("hPt", "p_{T};p_{T};Entries", 100, 0., 10.); - TH1F *hClusSize = new TH1F("hClusSize", "Cluster size;clusSize;Entries", 20, 0., 20.); - TH1F *hLayer = new TH1F("hLayer", "Layer;layer;Entries", 20, -0.5, 19.5); - TH1F *hDxGlob = new TH1F("hDxGlob", "clusGlobX - hitGlobX;#DeltaX [global];Entries", 200, -1., 1.); - TH1F *hDzGlob = new TH1F("hDzGlob", "clusGlobZ - hitGlobZ;#DeltaZ [global];Entries", 200, -1., 1.); - TH2F *hHitXY = new TH2F("hHitXY", "Hit global XY;hitGlobX;hitGlobY", 200, -20., 20., 200, -20., 20.); - TH2F *hClusVsHitX = new TH2F("hClusVsHitX", "clusGlobX vs hitGlobX;hitGlobX;clusGlobX", 200, -20., 20., 200, -20., 20.); - - // histograms for cluster size vs eta for each layer (ML and OT barrel layers): - const int nLayers = 8; // ML and OT barrel layers only - TH2F *hClustSizePerLayerVsEta[nLayers]; - for (int i = 0; i < nLayers; i++) - { - hClustSizePerLayerVsEta[i] = new TH2F(Form("hClustSizePerLayerVsEta_Lay%d", i), Form("Cluster size vs eta for layer %d;#eta;Cluster size", i), 160, -4, 4, 101, -0.5, 100.5); - } - - // Loop over entries - const Long64_t nEntries = tree->GetEntries(); - for (Long64_t i = 0; i < nEntries; ++i) - { - tree->GetEntry(i); - - // Fill QA histograms - float dXGlob = clusGlobX - hitGlobX; - float dZGlob = clusGlobZ - hitGlobZ; - hPt->Fill(pt); - hClusSize->Fill(clusSize); - hLayer->Fill(layer); - hDxGlob->Fill(dXGlob); - hDzGlob->Fill(dZGlob); - hHitXY->Fill(hitGlobX, hitGlobY); - hClusVsHitX->Fill(hitGlobX, clusGlobX); - - // cls size vs eta: - float clustR = sqrt(clusGlobX * clusGlobX + clusGlobY * clusGlobY); - float clustPhi = atan2(clusGlobY, clusGlobX); - float clustTheta = atan2(clustR, clusGlobZ); - float clustEta = -log(tan(clustTheta / 2)); - - // !!! important: to avoid VD layers (numeration for ML starts from 0, while VD layers are also numbered as 0,1,2) - if (clustR > 5) // cm - hClustSizePerLayerVsEta[(int)layer]->Fill(clustEta, clusSize); - - // progress print - if ((i + 1) % 200000 == 0) - { - std::cout << "Processed " << (i + 1) << " / " << nEntries << " entries" << std::endl; - } - } - - // Save histograms to file - TFile *fout = TFile::Open("clusterSizes_vs_eta.root", "RECREATE"); - hPt->Write(); - hClusSize->Write(); - hLayer->Write(); - hDxGlob->Write(); - hDzGlob->Write(); - hHitXY->Write(); - hClusVsHitX->Write(); - - // draw some QA histograms - TCanvas *c1 = new TCanvas("canv_clusters_QA", "Clusters QA", 1200, 800); - c1->Divide(2, 2); - c1->cd(1); - hPt->Draw(); - c1->cd(2); - hClusSize->Draw(); - c1->cd(3); - hDxGlob->Draw(); - c1->cd(4); - hHitXY->Draw("COLZ"); - - TCanvas *canv_clsSize_vs_eta[nLayers]; - TProfile *profPerLayerVsEta[nLayers]; - for (int i = 0; i < nLayers; i++) - { - canv_clsSize_vs_eta[i] = new TCanvas(Form("canv_clsSize_vs_eta_Lay%d", i), Form("Cluster size vs eta for layer %d", i), 800, 600); - hClustSizePerLayerVsEta[i]->Draw("COLZ"); - gPad->SetLogz(); - profPerLayerVsEta[i] = hClustSizePerLayerVsEta[i]->ProfileX(); - profPerLayerVsEta[i]->DrawCopy("same"); - - hClustSizePerLayerVsEta[i]->Write(); - profPerLayerVsEta[i]->Write(); - } - - // canvas with profiles for all layers together - TCanvas *canv_av_clsSize_vs_eta_all_layers = new TCanvas("canv_clsSize_vs_eta_all_layers", "Cluster size vs eta for all layers", 800, 600); - TLegend *legLayers = new TLegend(0.3, 0.52, 0.65, 0.89); - int colors[] = {kRed, kBlue, kMagenta + 1, kCyan + 1, kGray + 2, kRed, kBlue, kMagenta + 1, kCyan, kAzure + 1, kOrange - 9, kRed + 2, kBlue + 2, kMagenta + 2}; - for (int i = 0; i < nLayers; i++) - { - profPerLayerVsEta[i]->SetLineColor(colors[i]); - profPerLayerVsEta[i]->SetMarkerColor(colors[i]); - profPerLayerVsEta[i]->SetMarkerStyle(i < 5 ? 20 : 24); - profPerLayerVsEta[i]->SetTitle(";#eta;#LTcluster size#GT"); - profPerLayerVsEta[i]->GetYaxis()->SetRangeUser(0., 12.5); - profPerLayerVsEta[i]->DrawCopy(i == 0 ? "P" : "P same"); - legLayers->AddEntry(profPerLayerVsEta[i], Form("Layer %d", i), "P"); - } - - legLayers->Draw(); - gPad->SetGrid(); - canv_av_clsSize_vs_eta_all_layers->SaveAs("clsSize_vs_eta_all_layers.png"); - canv_av_clsSize_vs_eta_all_layers->Write(); - - // fout->Close(); -} \ No newline at end of file From be5946e1dbb274a1f57608d42b34926e2b64ff7e Mon Sep 17 00:00:00 2001 From: Igor Altsybeev Date: Tue, 14 Apr 2026 00:53:31 +0200 Subject: [PATCH 4/9] updating CMakeLists.txt --- .../ALICE3/TRK/macros/test/CMakeLists.txt | 8 +++ .../TRK/macros/test/CheckClusterSizeVsEta.C | 59 ++++++++++++------- 2 files changed, 45 insertions(+), 22 deletions(-) diff --git a/Detectors/Upgrades/ALICE3/TRK/macros/test/CMakeLists.txt b/Detectors/Upgrades/ALICE3/TRK/macros/test/CMakeLists.txt index 54e42c6857249..23dd69789322b 100644 --- a/Detectors/Upgrades/ALICE3/TRK/macros/test/CMakeLists.txt +++ b/Detectors/Upgrades/ALICE3/TRK/macros/test/CMakeLists.txt @@ -49,3 +49,11 @@ o2_add_test_root_macro(CheckClusters.C O2::TRKBase O2::TRKSimulation LABELS trk COMPILE_ONLY) + +o2_add_test_root_macro(CheckClusterSizeVsEta.C + PUBLIC_LINK_LIBRARIES O2::DataFormatsTRK + O2::SimulationDataFormat + O2::Framework + O2::TRKBase + O2::TRKSimulation + LABELS trk COMPILE_ONLY) diff --git a/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C b/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C index d064647dd76f7..a4fd6f80ab202 100644 --- a/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C +++ b/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C @@ -29,9 +29,7 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root TFile *fileInput = new TFile(strFileInput.c_str()); TTree *tree = (TTree *)fileInput->Get("ntc"); - - std::cout << "Opened tree: " << tree->GetName() - << ", entries = " << tree->GetEntries() << std::endl; + std::cout << "Opened tree: " << tree->GetName() << ", entries = " << tree->GetEntries() << std::endl; // set branch addresses Float_t event; @@ -81,12 +79,12 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root TH2F *hHitXY = new TH2F("hHitXY", "Hit global XY;hitGlobX;hitGlobY", 200, -20., 20., 200, -20., 20.); TH2F *hClusVsHitX = new TH2F("hClusVsHitX", "clusGlobX vs hitGlobX;hitGlobX;clusGlobX", 200, -20., 20., 200, -20., 20.); - // histograms for cluster size vs eta for each layer (ML and OT barrel layers): - const int nLayers = 8; // ML and OT barrel layers only + // histograms for cluster size vs eta for each barrel layer: + const int nLayers = 11; TH2F *hClustSizePerLayerVsEta[nLayers]; for (int i = 0; i < nLayers; i++) { - hClustSizePerLayerVsEta[i] = new TH2F(Form("hClustSizePerLayerVsEta_Lay%d", i), Form("Cluster size vs eta for layer %d;#eta;Cluster size", i), 160, -4, 4, 101, -0.5, 100.5); + hClustSizePerLayerVsEta[i] = new TH2F(Form("hClustSizePerLayerVsEta_Lay%d", i), Form("Cluster size vs eta for layer %d;#eta;Cluster size", i), 200, -5, 5, 101, -0.5, 100.5); } // Loop over entries @@ -114,6 +112,8 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root // !!! important: to avoid VD layers (numeration for ML starts from 0, while VD layers are also numbered as 0,1,2) if (clustR > 5) // cm + hClustSizePerLayerVsEta[(int)layer + 3]->Fill(clustEta, clusSize); + else if (layer < 3) // VD layers hClustSizePerLayerVsEta[(int)layer]->Fill(clustEta, clusSize); // progress print @@ -145,6 +145,10 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root c1->cd(4); hHitXY->Draw("COLZ"); + int colors[] = {kRed, kBlue + 1, kMagenta + 1, + kRed, kBlue + 1, kMagenta + 1, + kCyan + 1, kGray + 2, kRed, kBlue, kMagenta + 1, kCyan, kAzure + 1, kOrange - 9, kRed + 2, kBlue + 2, kMagenta + 2}; + TCanvas *canv_clsSize_vs_eta[nLayers]; TProfile *profPerLayerVsEta[nLayers]; for (int i = 0; i < nLayers; i++) @@ -153,31 +157,42 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root hClustSizePerLayerVsEta[i]->Draw("COLZ"); gPad->SetLogz(); profPerLayerVsEta[i] = hClustSizePerLayerVsEta[i]->ProfileX(); + profPerLayerVsEta[i]->SetLineColor(colors[i]); + profPerLayerVsEta[i]->SetMarkerColor(colors[i]); + profPerLayerVsEta[i]->SetMarkerStyle(i < 8 ? 20 : 24); + profPerLayerVsEta[i]->SetTitle(";#eta;#LTcluster size#GT"); profPerLayerVsEta[i]->DrawCopy("same"); hClustSizePerLayerVsEta[i]->Write(); profPerLayerVsEta[i]->Write(); } - // canvas with profiles for all layers together - TCanvas *canv_av_clsSize_vs_eta_all_layers = new TCanvas("canv_clsSize_vs_eta_all_layers", "Cluster size vs eta for all layers", 800, 600); - TLegend *legLayers = new TLegend(0.3, 0.52, 0.65, 0.89); - int colors[] = {kRed, kBlue, kMagenta + 1, kCyan + 1, kGray + 2, kRed, kBlue, kMagenta + 1, kCyan, kAzure + 1, kOrange - 9, kRed + 2, kBlue + 2, kMagenta + 2}; - for (int i = 0; i < nLayers; i++) + // ### canvas with profiles for 3 VD layers + TCanvas *canv_av_clsSize_vs_eta_VD_layers = new TCanvas("canv_clsSize_vs_eta_VD_layers", "Cluster size vs eta for VD layers", 800, 600); + TLegend *legLayersVD = new TLegend(0.3, 0.72, 0.65, 0.89); + for (int i = 0; i < 3; i++) { - profPerLayerVsEta[i]->SetLineColor(colors[i]); - profPerLayerVsEta[i]->SetMarkerColor(colors[i]); - profPerLayerVsEta[i]->SetMarkerStyle(i < 5 ? 20 : 24); - profPerLayerVsEta[i]->SetTitle(";#eta;#LTcluster size#GT"); - profPerLayerVsEta[i]->GetYaxis()->SetRangeUser(0., 12.5); + profPerLayerVsEta[i]->GetYaxis()->SetRangeUser(0., 60.); profPerLayerVsEta[i]->DrawCopy(i == 0 ? "P" : "P same"); - legLayers->AddEntry(profPerLayerVsEta[i], Form("Layer %d", i), "P"); + legLayersVD->AddEntry(profPerLayerVsEta[i], Form("VD layer %d", i), "P"); } - - legLayers->Draw(); + legLayersVD->Draw(); gPad->SetGrid(); - canv_av_clsSize_vs_eta_all_layers->SaveAs("clsSize_vs_eta_all_layers.png"); - canv_av_clsSize_vs_eta_all_layers->Write(); + canv_av_clsSize_vs_eta_VD_layers->SaveAs("clsSize_vs_eta_VD_layers.png"); + canv_av_clsSize_vs_eta_VD_layers->Write(); - // fout->Close(); + // ### canvas with profiles for MLOT layers + TCanvas *canv_av_clsSize_vs_eta_MLOT_layers = new TCanvas("canv_clsSize_vs_eta_MLOT_layers", "Cluster size vs eta for MLOT layers", 800, 600); + TLegend *legLayersMLOT = new TLegend(0.3, 0.52, 0.65, 0.89); + for (int i = 3; i < nLayers; i++) + { + profPerLayerVsEta[i]->GetYaxis()->SetRangeUser(0., 12.5); + profPerLayerVsEta[i]->GetXaxis()->SetRangeUser(-3.5, 3.5); + profPerLayerVsEta[i]->DrawCopy(i == 3 ? "P" : "P same"); + legLayersMLOT->AddEntry(profPerLayerVsEta[i], Form("MLOT layer %d", i), "P"); + } + legLayersMLOT->Draw(); + gPad->SetGrid(); + canv_av_clsSize_vs_eta_MLOT_layers->SaveAs("clsSize_vs_eta_MLOT_layers.png"); + canv_av_clsSize_vs_eta_MLOT_layers->Write(); } \ No newline at end of file From 80224fba1ed9bea9168298883c858cd4f219d877 Mon Sep 17 00:00:00 2001 From: Igor Altsybeev Date: Tue, 14 Apr 2026 17:37:19 +0200 Subject: [PATCH 5/9] fix errors in tests --- .../TRK/macros/test/CheckClusterSizeVsEta.C | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C b/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C index a4fd6f80ab202..7e06e294f4cf1 100644 --- a/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C +++ b/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C @@ -12,6 +12,7 @@ /// \file CheckClusterSizeVsEta.C /// \brief A post-processing macro to draw average cluster size vs eta +#if !defined(__CLING__) || defined(__ROOTCLING__) #include #include #include @@ -21,14 +22,19 @@ #include #include #include +#include +#include +#endif + +using namespace std; // ### required input file: CheckClusters.root, which is the output of CheckClusters.C macro -void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root") +void CheckClusterSizeVsEta(const std::string& strFileInput = "CheckClusters.root") { gStyle->SetOptStat(0); - TFile *fileInput = new TFile(strFileInput.c_str()); - TTree *tree = (TTree *)fileInput->Get("ntc"); + TFile* fileInput = new TFile(strFileInput.c_str()); + TTree* tree = (TTree*)fileInput->Get("ntc"); std::cout << "Opened tree: " << tree->GetName() << ", entries = " << tree->GetEntries() << std::endl; // set branch addresses @@ -71,26 +77,24 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root tree->SetBranchAddress("pt", &pt); // Some QA histograms - TH1F *hPt = new TH1F("hPt", "p_{T};p_{T};Entries", 100, 0., 10.); - TH1F *hClusSize = new TH1F("hClusSize", "Cluster size;clusSize;Entries", 20, 0., 20.); - TH1F *hLayer = new TH1F("hLayer", "Layer;layer;Entries", 20, -0.5, 19.5); - TH1F *hDxGlob = new TH1F("hDxGlob", "clusGlobX - hitGlobX;#DeltaX [global];Entries", 200, -1., 1.); - TH1F *hDzGlob = new TH1F("hDzGlob", "clusGlobZ - hitGlobZ;#DeltaZ [global];Entries", 200, -1., 1.); - TH2F *hHitXY = new TH2F("hHitXY", "Hit global XY;hitGlobX;hitGlobY", 200, -20., 20., 200, -20., 20.); - TH2F *hClusVsHitX = new TH2F("hClusVsHitX", "clusGlobX vs hitGlobX;hitGlobX;clusGlobX", 200, -20., 20., 200, -20., 20.); + TH1F* hPt = new TH1F("hPt", "p_{T};p_{T};Entries", 100, 0., 10.); + TH1F* hClusSize = new TH1F("hClusSize", "Cluster size;clusSize;Entries", 20, 0., 20.); + TH1F* hLayer = new TH1F("hLayer", "Layer;layer;Entries", 20, -0.5, 19.5); + TH1F* hDxGlob = new TH1F("hDxGlob", "clusGlobX - hitGlobX;#DeltaX [global];Entries", 200, -1., 1.); + TH1F* hDzGlob = new TH1F("hDzGlob", "clusGlobZ - hitGlobZ;#DeltaZ [global];Entries", 200, -1., 1.); + TH2F* hHitXY = new TH2F("hHitXY", "Hit global XY;hitGlobX;hitGlobY", 200, -20., 20., 200, -20., 20.); + TH2F* hClusVsHitX = new TH2F("hClusVsHitX", "clusGlobX vs hitGlobX;hitGlobX;clusGlobX", 200, -20., 20., 200, -20., 20.); // histograms for cluster size vs eta for each barrel layer: const int nLayers = 11; - TH2F *hClustSizePerLayerVsEta[nLayers]; - for (int i = 0; i < nLayers; i++) - { + TH2F* hClustSizePerLayerVsEta[nLayers]; + for (int i = 0; i < nLayers; i++) { hClustSizePerLayerVsEta[i] = new TH2F(Form("hClustSizePerLayerVsEta_Lay%d", i), Form("Cluster size vs eta for layer %d;#eta;Cluster size", i), 200, -5, 5, 101, -0.5, 100.5); } // Loop over entries const Long64_t nEntries = tree->GetEntries(); - for (Long64_t i = 0; i < nEntries; ++i) - { + for (Long64_t i = 0; i < nEntries; ++i) { tree->GetEntry(i); // Fill QA histograms @@ -117,14 +121,13 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root hClustSizePerLayerVsEta[(int)layer]->Fill(clustEta, clusSize); // progress print - if ((i + 1) % 200000 == 0) - { + if ((i + 1) % 200000 == 0) { std::cout << "Processed " << (i + 1) << " / " << nEntries << " entries" << std::endl; } } // Save histograms to file - TFile *fout = TFile::Open("clusterSizes_vs_eta.root", "RECREATE"); + TFile* fout = TFile::Open("clusterSizes_vs_eta.root", "RECREATE"); hPt->Write(); hClusSize->Write(); hLayer->Write(); @@ -134,7 +137,7 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root hClusVsHitX->Write(); // draw some QA histograms - TCanvas *c1 = new TCanvas("canv_clusters_QA", "Clusters QA", 1200, 800); + TCanvas* c1 = new TCanvas("canv_clusters_QA", "Clusters QA", 1200, 800); c1->Divide(2, 2); c1->cd(1); hPt->Draw(); @@ -149,10 +152,9 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root kRed, kBlue + 1, kMagenta + 1, kCyan + 1, kGray + 2, kRed, kBlue, kMagenta + 1, kCyan, kAzure + 1, kOrange - 9, kRed + 2, kBlue + 2, kMagenta + 2}; - TCanvas *canv_clsSize_vs_eta[nLayers]; - TProfile *profPerLayerVsEta[nLayers]; - for (int i = 0; i < nLayers; i++) - { + TCanvas* canv_clsSize_vs_eta[nLayers]; + TProfile* profPerLayerVsEta[nLayers]; + for (int i = 0; i < nLayers; i++) { canv_clsSize_vs_eta[i] = new TCanvas(Form("canv_clsSize_vs_eta_Lay%d", i), Form("Cluster size vs eta for layer %d", i), 800, 600); hClustSizePerLayerVsEta[i]->Draw("COLZ"); gPad->SetLogz(); @@ -168,10 +170,9 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root } // ### canvas with profiles for 3 VD layers - TCanvas *canv_av_clsSize_vs_eta_VD_layers = new TCanvas("canv_clsSize_vs_eta_VD_layers", "Cluster size vs eta for VD layers", 800, 600); - TLegend *legLayersVD = new TLegend(0.3, 0.72, 0.65, 0.89); - for (int i = 0; i < 3; i++) - { + TCanvas* canv_av_clsSize_vs_eta_VD_layers = new TCanvas("canv_clsSize_vs_eta_VD_layers", "Cluster size vs eta for VD layers", 800, 600); + TLegend* legLayersVD = new TLegend(0.3, 0.72, 0.65, 0.89); + for (int i = 0; i < 3; i++) { profPerLayerVsEta[i]->GetYaxis()->SetRangeUser(0., 60.); profPerLayerVsEta[i]->DrawCopy(i == 0 ? "P" : "P same"); legLayersVD->AddEntry(profPerLayerVsEta[i], Form("VD layer %d", i), "P"); @@ -182,10 +183,9 @@ void CheckClusterSizeVsEta(const std::string &strFileInput = "CheckClusters.root canv_av_clsSize_vs_eta_VD_layers->Write(); // ### canvas with profiles for MLOT layers - TCanvas *canv_av_clsSize_vs_eta_MLOT_layers = new TCanvas("canv_clsSize_vs_eta_MLOT_layers", "Cluster size vs eta for MLOT layers", 800, 600); - TLegend *legLayersMLOT = new TLegend(0.3, 0.52, 0.65, 0.89); - for (int i = 3; i < nLayers; i++) - { + TCanvas* canv_av_clsSize_vs_eta_MLOT_layers = new TCanvas("canv_clsSize_vs_eta_MLOT_layers", "Cluster size vs eta for MLOT layers", 800, 600); + TLegend* legLayersMLOT = new TLegend(0.3, 0.52, 0.65, 0.89); + for (int i = 3; i < nLayers; i++) { profPerLayerVsEta[i]->GetYaxis()->SetRangeUser(0., 12.5); profPerLayerVsEta[i]->GetXaxis()->SetRangeUser(-3.5, 3.5); profPerLayerVsEta[i]->DrawCopy(i == 3 ? "P" : "P same"); From 87ade0fd3727d4bb4a0ec221f153ee243a457bac Mon Sep 17 00:00:00 2001 From: Igor Altsybeev Date: Tue, 14 Apr 2026 17:48:10 +0200 Subject: [PATCH 6/9] rename the script --- Detectors/Upgrades/ALICE3/TRK/macros/test/CMakeLists.txt | 2 +- .../test/{CheckClusterSizeVsEta.C => postClusterSizeVsEta.C} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename Detectors/Upgrades/ALICE3/TRK/macros/test/{CheckClusterSizeVsEta.C => postClusterSizeVsEta.C} (100%) diff --git a/Detectors/Upgrades/ALICE3/TRK/macros/test/CMakeLists.txt b/Detectors/Upgrades/ALICE3/TRK/macros/test/CMakeLists.txt index 23dd69789322b..33d1b4a5afdc6 100644 --- a/Detectors/Upgrades/ALICE3/TRK/macros/test/CMakeLists.txt +++ b/Detectors/Upgrades/ALICE3/TRK/macros/test/CMakeLists.txt @@ -50,7 +50,7 @@ o2_add_test_root_macro(CheckClusters.C O2::TRKSimulation LABELS trk COMPILE_ONLY) -o2_add_test_root_macro(CheckClusterSizeVsEta.C +o2_add_test_root_macro(postClusterSizeVsEta.C PUBLIC_LINK_LIBRARIES O2::DataFormatsTRK O2::SimulationDataFormat O2::Framework diff --git a/Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C b/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C similarity index 100% rename from Detectors/Upgrades/ALICE3/TRK/macros/test/CheckClusterSizeVsEta.C rename to Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C From 41efa367e2c44acd4f257a10eb87fcd28842c40c Mon Sep 17 00:00:00 2001 From: Igor Altsybeev Date: Tue, 14 Apr 2026 17:49:02 +0200 Subject: [PATCH 7/9] rename the script --- .../Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C b/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C index 7e06e294f4cf1..a56274ac853a7 100644 --- a/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C +++ b/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C @@ -29,7 +29,7 @@ using namespace std; // ### required input file: CheckClusters.root, which is the output of CheckClusters.C macro -void CheckClusterSizeVsEta(const std::string& strFileInput = "CheckClusters.root") +void postClusterSizeVsEta(const std::string& strFileInput = "CheckClusters.root") { gStyle->SetOptStat(0); From 30993271f2c878aa6caf1ab6973e2d558d26dfa7 Mon Sep 17 00:00:00 2001 From: Igor Altsybeev Date: Tue, 14 Apr 2026 17:49:28 +0200 Subject: [PATCH 8/9] rename the script --- .../Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C b/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C index a56274ac853a7..cddfc93e7f61c 100644 --- a/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C +++ b/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C @@ -9,7 +9,7 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. -/// \file CheckClusterSizeVsEta.C +/// \file postClusterSizeVsEta.C /// \brief A post-processing macro to draw average cluster size vs eta #if !defined(__CLING__) || defined(__ROOTCLING__) From 3beec5578ad0ecf31e67f4d17a1890febc12c79a Mon Sep 17 00:00:00 2001 From: Igor Altsybeev Date: Tue, 14 Apr 2026 19:08:21 +0200 Subject: [PATCH 9/9] add iostream --- Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C | 1 + 1 file changed, 1 insertion(+) diff --git a/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C b/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C index cddfc93e7f61c..47beaf36f2957 100644 --- a/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C +++ b/Detectors/Upgrades/ALICE3/TRK/macros/test/postClusterSizeVsEta.C @@ -13,6 +13,7 @@ /// \brief A post-processing macro to draw average cluster size vs eta #if !defined(__CLING__) || defined(__ROOTCLING__) +#include #include #include #include