From 0c6cf854e5cccb6daee3337fc88971bf3e3633ef Mon Sep 17 00:00:00 2001 From: jesgum Date: Fri, 19 Sep 2025 11:35:10 +0200 Subject: [PATCH 1/6] Update a3 geo in fasttracker --- ALICE3/Core/FastTracker.cxx | 41 +++++++++++++------- ALICE3/Core/FastTracker.h | 2 +- ALICE3/TableProducer/OTF/onTheFlyTracker.cxx | 25 ++++++++---- 3 files changed, 46 insertions(+), 22 deletions(-) diff --git a/ALICE3/Core/FastTracker.cxx b/ALICE3/Core/FastTracker.cxx index 8d59501d3be..eb6df067f07 100644 --- a/ALICE3/Core/FastTracker.cxx +++ b/ALICE3/Core/FastTracker.cxx @@ -144,24 +144,37 @@ void FastTracker::AddSiliconALICE3v2(std::vector pixelResolution) AddLayer("B10", 80., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); } -void FastTracker::AddSiliconALICE3(std::vector pixelResolution) +void FastTracker::AddSiliconALICE3(float VDX0Scale, std::vector pixelResolution) { - float x0IT = 0.001; // 0.1% - float x0OT = 0.01; // 1.0% - float xrhoIB = 2.3292e-02; // 100 mum Si - float xrhoOT = 2.3292e-01; // 1000 mum Si - float eff = 1.00; - - float resRPhiIT = pixelResolution[0]; - float resZIT = pixelResolution[1]; + float x0Pipe0 = 0.001592; // 200 um AlBe + float x0VDL0 = 0.00076; // 30 um Si + 50 um glue + carbon foam 0.03% + float x0VDL1 = 0.00096; // 30 um Si + 50 um glue + carbon foam 0.05% + float x0VDL2 = 0.00167; // 30 um Si + 50 um glue + carbon foam 0.05% + 0.07% Be case  + float x0Coldplate = 0.02f; // (1.5 mm Al2O3 2%)  + float x0Pipe1 = 0.0023f; // 800 um Be + float x0OT = 0.01; // 1.0% + + float resRPhiVD = pixelResolution[0]; + float resZVD = pixelResolution[1]; float resRPhiOT = pixelResolution[2]; float resZOT = pixelResolution[3]; - AddLayer("bpipe0", 0.48, 250, 0.00042, 2.772e-02, 0.0f, 0.0f, 0.0f, 0); // 150 mum Be - AddLayer("B00", 0.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1); - AddLayer("B01", 1.2, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1); - AddLayer("B02", 2.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1); - AddLayer("bpipe1", 3.7, 250, 0.0014, 9.24e-02, 0.0f, 0.0f, 0.0f, 0); // 500 mum Be + float xrhoPipe0 = 0; + float xrhoVDL0 = 0; + float xrhoVDL1 = 0; + float xrhoVDL2 = 0; + float xrhoColdplate = 0; + float xrhoPipe1 = 0; + float xrhoOT = 2.3292e-01; + + float eff = 1.00; + + AddLayer("bpipe0", 0.48, 250, x0Pipe0, xrhoPipe0, 0.0f, 0.0f, 0.0f, 0); // 150 mum Be + AddLayer("B00", 0.5, 250, x0VDL0 * VDX0Scale, xrhoVDL0, resRPhiVD, resZVD, eff, 1); + AddLayer("B01", 1.2, 250, x0VDL1 * VDX0Scale, xrhoVDL1, resRPhiVD, resZVD, eff, 1); + AddLayer("B02", 2.5, 250, x0VDL2 * VDX0Scale, xrhoVDL2, resRPhiVD, resZVD, eff, 1); + AddLayer("coldplate", 2.6, 250, x0Coldplate, xrhoColdplate, 0.0f, 0.0f, 0.0f, 0); // 500 mum Be + AddLayer("bpipe1", 5.7, 250, x0Pipe1, xrhoPipe1, 0.0f, 0.0f, 0.0f, 0); // 500 mum Be AddLayer("B03", 7., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); AddLayer("B04", 9., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); AddLayer("B05", 12., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); diff --git a/ALICE3/Core/FastTracker.h b/ALICE3/Core/FastTracker.h index c65c3206618..23f8179cc4e 100644 --- a/ALICE3/Core/FastTracker.h +++ b/ALICE3/Core/FastTracker.h @@ -59,7 +59,7 @@ class FastTracker void AddSiliconALICE3v4(std::vector pixelResolution); void AddSiliconALICE3v2(std::vector pixelResolution); - void AddSiliconALICE3(std::vector pixelResolution); + void AddSiliconALICE3(float VDX0Scale, std::vector pixelResolution); void AddTPC(float phiResMean, float zResMean); void Print(); diff --git a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx index 2005969d239..1607b20a0cf 100644 --- a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx +++ b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx @@ -138,11 +138,12 @@ struct OnTheFlyTracker { Configurable minSiliconHits{"minSiliconHits", 6, "minimum number of silicon hits to accept track"}; Configurable minSiliconHitsIfTPCUsed{"minSiliconHitsIfTPCUsed", 2, "minimum number of silicon hits to accept track in case TPC info is present"}; Configurable minTPCClusters{"minTPCClusters", 70, "minimum number of TPC hits necessary to consider minSiliconHitsIfTPCUsed"}; - Configurable alice3detector{"alice3detector", 0, "0: ALICE 3 v1, 1: ALICE 3 v4"}; + Configurable alice3detector{"alice3detector", 2, "0: ALICE 3 v1, 1: ALICE 3 v4, 2: ALICE 3 Sep 2025"}; Configurable applyZacceptance{"applyZacceptance", false, "apply z limits to detector layers or not"}; Configurable applyMSCorrection{"applyMSCorrection", true, "apply ms corrections for secondaries or not"}; Configurable applyElossCorrection{"applyElossCorrection", true, "apply eloss corrections for secondaries or not"}; Configurable applyEffCorrection{"applyEffCorrection", true, "apply efficiency correction or not"}; + Configurable scaleVD{"scaleVD", 1, "scale x0 and xrho in VD layers"}; Configurable> pixelRes{"pixelRes", {0.00025, 0.00025, 0.001, 0.001}, "RPhiIT, ZIT, RPhiOT, ZOT"}; } fastTrackerSettings; // allows for gap between peak and bg in case someone wants to @@ -412,12 +413,22 @@ struct OnTheFlyTracker { fastTracker.SetApplyMSCorrection(fastTrackerSettings.applyMSCorrection); fastTracker.SetApplyElossCorrection(fastTrackerSettings.applyElossCorrection); - if (fastTrackerSettings.alice3detector == 0) { - fastTracker.AddSiliconALICE3v2(fastTrackerSettings.pixelRes); - } - if (fastTrackerSettings.alice3detector == 1) { - fastTracker.AddSiliconALICE3v4(fastTrackerSettings.pixelRes); - fastTracker.AddTPC(0.1, 0.1); + switch (fastTrackerSettings.alice3detector) { + case 0: + fastTracker.AddSiliconALICE3v2(fastTrackerSettings.pixelRes); + break; + + case 1: + fastTracker.AddSiliconALICE3v4(fastTrackerSettings.pixelRes); + fastTracker.AddTPC(0.1, 0.1); + break; + + case 2: + fastTracker.AddSiliconALICE3(scaleVD, fastTrackerSettings.pixelRes); + break; + + default: + break; } // print fastTracker settings From 37fe29a2b06af80c3b37b1afbd0bc7c1c464c400 Mon Sep 17 00:00:00 2001 From: jesgum Date: Fri, 19 Sep 2025 11:39:05 +0200 Subject: [PATCH 2/6] Update --- ALICE3/Core/FastTracker.cxx | 8 ++++---- ALICE3/Core/FastTracker.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ALICE3/Core/FastTracker.cxx b/ALICE3/Core/FastTracker.cxx index eb6df067f07..38fbc45b2c6 100644 --- a/ALICE3/Core/FastTracker.cxx +++ b/ALICE3/Core/FastTracker.cxx @@ -144,7 +144,7 @@ void FastTracker::AddSiliconALICE3v2(std::vector pixelResolution) AddLayer("B10", 80., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); } -void FastTracker::AddSiliconALICE3(float VDX0Scale, std::vector pixelResolution) +void FastTracker::AddSiliconALICE3(float scaleX0VD, std::vector pixelResolution) { float x0Pipe0 = 0.001592; // 200 um AlBe float x0VDL0 = 0.00076; // 30 um Si + 50 um glue + carbon foam 0.03% @@ -170,9 +170,9 @@ void FastTracker::AddSiliconALICE3(float VDX0Scale, std::vector pixelReso float eff = 1.00; AddLayer("bpipe0", 0.48, 250, x0Pipe0, xrhoPipe0, 0.0f, 0.0f, 0.0f, 0); // 150 mum Be - AddLayer("B00", 0.5, 250, x0VDL0 * VDX0Scale, xrhoVDL0, resRPhiVD, resZVD, eff, 1); - AddLayer("B01", 1.2, 250, x0VDL1 * VDX0Scale, xrhoVDL1, resRPhiVD, resZVD, eff, 1); - AddLayer("B02", 2.5, 250, x0VDL2 * VDX0Scale, xrhoVDL2, resRPhiVD, resZVD, eff, 1); + AddLayer("B00", 0.5, 250, x0VDL0 * scaleX0VD, xrhoVDL0, resRPhiVD, resZVD, eff, 1); + AddLayer("B01", 1.2, 250, x0VDL1 * scaleX0VD, xrhoVDL1, resRPhiVD, resZVD, eff, 1); + AddLayer("B02", 2.5, 250, x0VDL2 * scaleX0VD, xrhoVDL2, resRPhiVD, resZVD, eff, 1); AddLayer("coldplate", 2.6, 250, x0Coldplate, xrhoColdplate, 0.0f, 0.0f, 0.0f, 0); // 500 mum Be AddLayer("bpipe1", 5.7, 250, x0Pipe1, xrhoPipe1, 0.0f, 0.0f, 0.0f, 0); // 500 mum Be AddLayer("B03", 7., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); diff --git a/ALICE3/Core/FastTracker.h b/ALICE3/Core/FastTracker.h index 23f8179cc4e..7ab682713c1 100644 --- a/ALICE3/Core/FastTracker.h +++ b/ALICE3/Core/FastTracker.h @@ -59,7 +59,7 @@ class FastTracker void AddSiliconALICE3v4(std::vector pixelResolution); void AddSiliconALICE3v2(std::vector pixelResolution); - void AddSiliconALICE3(float VDX0Scale, std::vector pixelResolution); + void AddSiliconALICE3(float scaleX0VD, std::vector pixelResolution); void AddTPC(float phiResMean, float zResMean); void Print(); From 49449fd964ddbcb75a22f5723d48ec1909b695cd Mon Sep 17 00:00:00 2001 From: jesgum Date: Fri, 19 Sep 2025 11:50:50 +0200 Subject: [PATCH 3/6] Add iTOF --- ALICE3/Core/FastTracker.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ALICE3/Core/FastTracker.cxx b/ALICE3/Core/FastTracker.cxx index 38fbc45b2c6..cbe48a5da2a 100644 --- a/ALICE3/Core/FastTracker.cxx +++ b/ALICE3/Core/FastTracker.cxx @@ -153,6 +153,7 @@ void FastTracker::AddSiliconALICE3(float scaleX0VD, std::vector pixelReso float x0Coldplate = 0.02f; // (1.5 mm Al2O3 2%)  float x0Pipe1 = 0.0023f; // 800 um Be float x0OT = 0.01; // 1.0% + float x0iTOF = x0OT * 3.; float resRPhiVD = pixelResolution[0]; float resZVD = pixelResolution[1]; @@ -166,7 +167,7 @@ void FastTracker::AddSiliconALICE3(float scaleX0VD, std::vector pixelReso float xrhoColdplate = 0; float xrhoPipe1 = 0; float xrhoOT = 2.3292e-01; - + float xrhoiTOF = 0.03; float eff = 1.00; AddLayer("bpipe0", 0.48, 250, x0Pipe0, xrhoPipe0, 0.0f, 0.0f, 0.0f, 0); // 150 mum Be @@ -178,6 +179,7 @@ void FastTracker::AddSiliconALICE3(float scaleX0VD, std::vector pixelReso AddLayer("B03", 7., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); AddLayer("B04", 9., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); AddLayer("B05", 12., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); + AddLayer("iTOF", 19, 250, x0iTOF, xrhoiTOF, resRPhiOT, resZOT, eff, 0); AddLayer("B06", 20., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); AddLayer("B07", 30., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); AddLayer("B08", 45., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); From 647e4ac57b0dafa71113457a8832c6f9fedd3634 Mon Sep 17 00:00:00 2001 From: jesgum Date: Fri, 19 Sep 2025 11:55:12 +0200 Subject: [PATCH 4/6] Formatting --- ALICE3/Core/FastTracker.cxx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ALICE3/Core/FastTracker.cxx b/ALICE3/Core/FastTracker.cxx index cbe48a5da2a..62fe8e31f0b 100644 --- a/ALICE3/Core/FastTracker.cxx +++ b/ALICE3/Core/FastTracker.cxx @@ -146,13 +146,13 @@ void FastTracker::AddSiliconALICE3v2(std::vector pixelResolution) void FastTracker::AddSiliconALICE3(float scaleX0VD, std::vector pixelResolution) { - float x0Pipe0 = 0.001592; // 200 um AlBe - float x0VDL0 = 0.00076; // 30 um Si + 50 um glue + carbon foam 0.03% - float x0VDL1 = 0.00096; // 30 um Si + 50 um glue + carbon foam 0.05% - float x0VDL2 = 0.00167; // 30 um Si + 50 um glue + carbon foam 0.05% + 0.07% Be case  - float x0Coldplate = 0.02f; // (1.5 mm Al2O3 2%)  - float x0Pipe1 = 0.0023f; // 800 um Be - float x0OT = 0.01; // 1.0% + float x0Pipe0 = 0.001592; // 200 um AlBe + float x0VDL0 = 0.00076; // 30 um Si + 50 um glue + carbon foam 0.03% + float x0VDL1 = 0.00096; // 30 um Si + 50 um glue + carbon foam 0.05% + float x0VDL2 = 0.00167; // 30 um Si + 50 um glue + carbon foam 0.05% + 0.07% Be case  + float x0Coldplate = 0.02f; // (1.5 mm Al2O3 2%)  + float x0Pipe1 = 0.0023f; // 800 um Be + float x0OT = 0.01; // 1.0% float x0iTOF = x0OT * 3.; float resRPhiVD = pixelResolution[0]; @@ -170,12 +170,12 @@ void FastTracker::AddSiliconALICE3(float scaleX0VD, std::vector pixelReso float xrhoiTOF = 0.03; float eff = 1.00; - AddLayer("bpipe0", 0.48, 250, x0Pipe0, xrhoPipe0, 0.0f, 0.0f, 0.0f, 0); // 150 mum Be + AddLayer("bpipe0", 0.48, 250, x0Pipe0, xrhoPipe0, 0.0f, 0.0f, 0.0f, 0); AddLayer("B00", 0.5, 250, x0VDL0 * scaleX0VD, xrhoVDL0, resRPhiVD, resZVD, eff, 1); AddLayer("B01", 1.2, 250, x0VDL1 * scaleX0VD, xrhoVDL1, resRPhiVD, resZVD, eff, 1); AddLayer("B02", 2.5, 250, x0VDL2 * scaleX0VD, xrhoVDL2, resRPhiVD, resZVD, eff, 1); - AddLayer("coldplate", 2.6, 250, x0Coldplate, xrhoColdplate, 0.0f, 0.0f, 0.0f, 0); // 500 mum Be - AddLayer("bpipe1", 5.7, 250, x0Pipe1, xrhoPipe1, 0.0f, 0.0f, 0.0f, 0); // 500 mum Be + AddLayer("coldplate", 2.6, 250, x0Coldplate, xrhoColdplate, 0.0f, 0.0f, 0.0f, 0); + AddLayer("bpipe1", 5.7, 250, x0Pipe1, xrhoPipe1, 0.0f, 0.0f, 0.0f, 0); AddLayer("B03", 7., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); AddLayer("B04", 9., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); AddLayer("B05", 12., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1); From b9a2f46c6333765c1527a22d5095fe3b16d03d17 Mon Sep 17 00:00:00 2001 From: jesgum Date: Fri, 19 Sep 2025 12:10:28 +0200 Subject: [PATCH 5/6] make megalinter happy --- ALICE3/Core/FastTracker.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ALICE3/Core/FastTracker.cxx b/ALICE3/Core/FastTracker.cxx index 62fe8e31f0b..74ed147b8af 100644 --- a/ALICE3/Core/FastTracker.cxx +++ b/ALICE3/Core/FastTracker.cxx @@ -149,8 +149,8 @@ void FastTracker::AddSiliconALICE3(float scaleX0VD, std::vector pixelReso float x0Pipe0 = 0.001592; // 200 um AlBe float x0VDL0 = 0.00076; // 30 um Si + 50 um glue + carbon foam 0.03% float x0VDL1 = 0.00096; // 30 um Si + 50 um glue + carbon foam 0.05% - float x0VDL2 = 0.00167; // 30 um Si + 50 um glue + carbon foam 0.05% + 0.07% Be case  - float x0Coldplate = 0.02f; // (1.5 mm Al2O3 2%)  + float x0VDL2 = 0.00167; // 30 um Si + 50 um glue + carbon foam 0.05% + 0.07% Be case + float x0Coldplate = 0.02f; // (1.5 mm Al2O3 2%) float x0Pipe1 = 0.0023f; // 800 um Be float x0OT = 0.01; // 1.0% float x0iTOF = x0OT * 3.; From 62a82d21e033b45fc84dc669e8215a91e5893fcc Mon Sep 17 00:00:00 2001 From: jesgum Date: Fri, 19 Sep 2025 13:17:02 +0200 Subject: [PATCH 6/6] fix compilation issue --- ALICE3/TableProducer/OTF/onTheFlyTracker.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx index 1607b20a0cf..0f785534159 100644 --- a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx +++ b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx @@ -424,7 +424,7 @@ struct OnTheFlyTracker { break; case 2: - fastTracker.AddSiliconALICE3(scaleVD, fastTrackerSettings.pixelRes); + fastTracker.AddSiliconALICE3(fastTrackerSettings.scaleVD, fastTrackerSettings.pixelRes); break; default: