From 2bfcd915ed83e7b8dd2d1b3abd3513ae7d0ed2e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Tue, 7 Jul 2026 18:35:23 +0200 Subject: [PATCH] Update A3 Magnet --- .../Alice3DetectorsPassive/PassiveBaseParam.h | 7 ++++--- .../Upgrades/ALICE3/Passive/src/Absorber.cxx | 1 + .../Upgrades/ALICE3/Passive/src/Magnet.cxx | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h b/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h index 671f436aabe7b..eca80ddb429aa 100644 --- a/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h +++ b/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h @@ -31,14 +31,15 @@ enum MagnetLayout : int { enum DetLayout : int { StandardRadius = 0, - ReducedRadius = 1 + ReducedRadius = 1, + Version2 = 2 // Specs from engineering note 2026-05-06 }; struct Alice3PassiveBaseParam : public o2::conf::ConfigurableParamHelper { // Geometry Builder parameters - int mLayout = MagnetLayout::AluminiumStabilizer; - int mDetLayout = DetLayout::StandardRadius; + MagnetLayout mLayout = MagnetLayout::AluminiumStabilizer; // Magnet layout: Aluminium or Copper stabilizer + DetLayout mDetLayout = DetLayout::StandardRadius; // Detector layout: Standard or Reduced radius O2ParamDef(Alice3PassiveBaseParam, "Alice3PassiveBase"); }; diff --git a/Detectors/Upgrades/ALICE3/Passive/src/Absorber.cxx b/Detectors/Upgrades/ALICE3/Passive/src/Absorber.cxx index 924d977247c89..163dac4b29765 100644 --- a/Detectors/Upgrades/ALICE3/Passive/src/Absorber.cxx +++ b/Detectors/Upgrades/ALICE3/Passive/src/Absorber.cxx @@ -154,6 +154,7 @@ void Alice3Absorber::ConstructGeometry() absorings->DefineSection(17, -500, 236, 274); break; case o2::passive::DetLayout::ReducedRadius: + case o2::passive::DetLayout::Version2: absorings->DefineSection(0, 500, 201, 239); absorings->DefineSection(1, 400, 201, 239); absorings->DefineSection(2, 400, 197.5, 242.5); diff --git a/Detectors/Upgrades/ALICE3/Passive/src/Magnet.cxx b/Detectors/Upgrades/ALICE3/Passive/src/Magnet.cxx index e6c1171829bfc..de48e39965dc8 100644 --- a/Detectors/Upgrades/ALICE3/Passive/src/Magnet.cxx +++ b/Detectors/Upgrades/ALICE3/Passive/src/Magnet.cxx @@ -107,6 +107,8 @@ void Alice3Magnet::ConstructGeometry() // Passive Base configuration parameters auto& passiveBaseParam = Alice3PassiveBaseParam::Instance(); + const bool isVersion2 = (passiveBaseParam.mDetLayout == o2::passive::DetLayout::Version2); + switch (passiveBaseParam.mDetLayout) { case o2::passive::DetLayout::StandardRadius: // Defined in the header file @@ -122,6 +124,19 @@ void Alice3Magnet::ConstructGeometry() mOuterWrapThickness = 3.f; // cm mZLength = 800.f; // cm break; + case o2::passive::DetLayout::Version2: + // Engineering note 2026-05-06 baseline stack (radial): + // inner wall 3 mm + winding pack 48 mm + support cylinder 20 mm + MLI 2 mm + outer wall 3 mm. + mInnerWrapInnerRadius = 125.f; // cm + mInnerWrapThickness = 0.3f; // cm + mCoilInnerRadius = mInnerWrapInnerRadius + mInnerWrapThickness; // cm + mCoilThickness = 4.8f; // cm + mRestMaterialRadius = mCoilInnerRadius + mCoilThickness; // cm + mRestMaterialThickness = 2.2f; // cm + mOuterWrapInnerRadius = mRestMaterialRadius + mRestMaterialThickness; // cm + mOuterWrapThickness = 0.3f; // cm + mZLength = 800.f; // cm + break; default: LOG(fatal) << "Unknown detector layout " << passiveBaseParam.mDetLayout; break; @@ -133,6 +148,10 @@ void Alice3Magnet::ConstructGeometry() // Handled in the header file break; case o2::passive::MagnetLayout::CopperStabilizer: + if (isVersion2) { + LOG(warn) << "Alice 3 magnet: CopperStabilizer override ignored for Version2 (engineering-note stack)"; + break; + } doCopperStabilizer = true; mRestMaterialThickness -= 3.3; // cm Remove the Aluminium stabiliser mRestMaterialThickness += 2.2; // cm Add the Copper stabiliser