From 418fde741837288986ebdbf53c860d491341608f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Fri, 11 Sep 2026 14:36:22 +0200 Subject: [PATCH 1/2] [ALICE3] Fix magnet radius --- .../include/Alice3DetectorsPassive/Magnet.h | 1 + .../Alice3DetectorsPassive/PassiveBaseParam.h | 19 ++++++++---- .../Upgrades/ALICE3/Passive/src/Absorber.cxx | 10 +++---- .../Upgrades/ALICE3/Passive/src/Magnet.cxx | 30 +++++++++++++++---- 4 files changed, 43 insertions(+), 17 deletions(-) diff --git a/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/Magnet.h b/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/Magnet.h index 673e3ded075ac..945268194318c 100644 --- a/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/Magnet.h +++ b/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/Magnet.h @@ -35,6 +35,7 @@ class Alice3Magnet : public Alice3PassiveBase Alice3Magnet(const Alice3Magnet& orig); Alice3Magnet& operator=(const Alice3Magnet&); + // Default, overwritten in the implementation file float mInnerWrapInnerRadius{160.f}; // cm // Version including the Ecal according SD float mInnerWrapThickness{1.f}; // cm float mCoilInnerRadius{180.f}; // cm diff --git a/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h b/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h index 6406ef324a959..a96e9d28e1ac6 100644 --- a/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h +++ b/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h @@ -31,17 +31,24 @@ enum MagnetType : int { SuperconductingMagnet = 3 // Using Superconducting magnet (NbTi+Cu+Al) for the magnet }; -enum MagnetAbsorberLayout : int { - StandardRadius = 0, // Using standard radius for the magnet and absorber - ReducedRadius = 1, // Using reduced radius for the magnet and absorber - SteppedAbsorber = 2 // Using stepped absorber for the magnet and absorber +enum MagnetLayout : int { + MagStandardRadius = 0, // Using standard radius for the magnet + MagReducedRadius = 1, // Using reduced radius for the magnet + MagThickRadius = 2, // Using thick radius for the magnet +}; + +enum AbsorberLayout : int { + AbsStandardRadius = 0, // Using standard radius for the absorber + AbsReducedRadius = 1, // Using reduced radius for the absorber + AbsSteppedAbsorber = 2 // Using stepped absorber for the absorber }; struct Alice3PassiveBaseParam : public o2::conf::ConfigurableParamHelper { // Geometry Builder parameters - MagnetType mMagType = MagnetType::AluminiumStabilizer; // Magnet type: as in MagnetType enum - MagnetAbsorberLayout mMagAbsLayout = o2::passive::MagnetAbsorberLayout::SteppedAbsorber; // Magnet and absorber layout: as in MagnetAbsorberLayout enum + MagnetType mMagType = MagnetType::AluminiumStabilizer; // Magnet type: as in MagnetType enum + MagnetLayout mMagnetLayout = o2::passive::MagnetLayout::MagStandardRadius; // Magnet layout: as in MagnetLayout enum + AbsorberLayout mAbsorberLayout = o2::passive::AbsorberLayout::AbsSteppedAbsorber; // Absorber layout: as in AbsorberLayout enum O2ParamDef(Alice3PassiveBaseParam, "Alice3PassiveBase"); }; diff --git a/Detectors/Upgrades/ALICE3/Passive/src/Absorber.cxx b/Detectors/Upgrades/ALICE3/Passive/src/Absorber.cxx index ca536c7a66cb8..eae76625e8071 100644 --- a/Detectors/Upgrades/ALICE3/Passive/src/Absorber.cxx +++ b/Detectors/Upgrades/ALICE3/Passive/src/Absorber.cxx @@ -132,8 +132,8 @@ void Alice3Absorber::ConstructGeometry() auto& passiveBaseParam = Alice3PassiveBaseParam::Instance(); TGeoPcon* absorings = nullptr; - switch (passiveBaseParam.mMagAbsLayout) { - case o2::passive::MagnetAbsorberLayout::StandardRadius: + switch (passiveBaseParam.mAbsorberLayout) { + case o2::passive::AbsorberLayout::AbsStandardRadius: absorings = new TGeoPcon(0., 360., 18); absorings->DefineSection(0, 500, 236, 274); absorings->DefineSection(1, 400, 236, 274); @@ -154,7 +154,7 @@ void Alice3Absorber::ConstructGeometry() absorings->DefineSection(16, -400, 236, 274); absorings->DefineSection(17, -500, 236, 274); break; - case o2::passive::MagnetAbsorberLayout::ReducedRadius: + case o2::passive::AbsorberLayout::AbsReducedRadius: absorings = new TGeoPcon(0., 360., 18); absorings->DefineSection(0, 500, 201, 239); absorings->DefineSection(1, 400, 201, 239); @@ -175,7 +175,7 @@ void Alice3Absorber::ConstructGeometry() absorings->DefineSection(16, -400, 201, 239); absorings->DefineSection(17, -500, 201, 239); break; - case o2::passive::MagnetAbsorberLayout::SteppedAbsorber: + case o2::passive::AbsorberLayout::AbsSteppedAbsorber: // Geometria 6 (Ian/tesis): Rext=290 constante, escalon en Rmin. // Externas 45 cm (Rmin=245), central 70 cm (Rmin=220). Ref: Ian DetectorConstruction.cc abs_thickness={45,70,45} absorings = new TGeoPcon(0., 360., 6); @@ -187,7 +187,7 @@ void Alice3Absorber::ConstructGeometry() absorings->DefineSection(5, 500, 245, 290); break; default: - LOG(fatal) << "Unknown detector layout " << passiveBaseParam.mMagAbsLayout; + LOG(fatal) << "Unknown detector layout " << passiveBaseParam.mAbsorberLayout; break; } diff --git a/Detectors/Upgrades/ALICE3/Passive/src/Magnet.cxx b/Detectors/Upgrades/ALICE3/Passive/src/Magnet.cxx index 1b218edb1df4f..e9199813d6839 100644 --- a/Detectors/Upgrades/ALICE3/Passive/src/Magnet.cxx +++ b/Detectors/Upgrades/ALICE3/Passive/src/Magnet.cxx @@ -119,12 +119,19 @@ void Alice3Magnet::ConstructGeometry() // Passive Base configuration parameters auto& passiveBaseParam = Alice3PassiveBaseParam::Instance(); - switch (passiveBaseParam.mMagAbsLayout) { - case o2::passive::MagnetAbsorberLayout::StandardRadius: - // Defined in the header file + switch (passiveBaseParam.mMagnetLayout) { + case o2::passive::MagnetLayout::MagStandardRadius: // Values taken from https://indico.cern.ch/event/1516752/contributions/6598922/attachments/3148108/5593121/ALICE3_magnet_071025.pdf + mInnerWrapInnerRadius = 140.f; // cm Inner radius of the inner wrap (Aluminium stabilizer) + mInnerWrapThickness = 1.f; // cm + mCoilInnerRadius = 160.f; // cm + mCoilThickness = 0.3f; // cm + mRestMaterialRadius = 160.3f; // cm + mRestMaterialThickness = 6.8f; // cm + mOuterWrapInnerRadius = 180.f; // cm + mOuterWrapThickness = 3.f; // cm + mZLength = 750.f; // cm Length of the magnet (Z direction) break; - case o2::passive::MagnetAbsorberLayout::SteppedAbsorber: // Ian absorber uses ReducedRadius magnet - case o2::passive::MagnetAbsorberLayout::ReducedRadius: + case o2::passive::MagnetLayout::MagReducedRadius: mInnerWrapInnerRadius = 125.f; // cm mInnerWrapThickness = 1.f; // cm mCoilInnerRadius = 145.f; // cm @@ -135,8 +142,19 @@ void Alice3Magnet::ConstructGeometry() mOuterWrapThickness = 3.f; // cm mZLength = 800.f; // cm break; + case o2::passive::MagnetLayout::MagThickRadius: // Values taken from https://indico.cern.ch/event/1516752/contributions/6598922/attachments/3148108/5593121/ALICE3_magnet_071025.pdf + mInnerWrapInnerRadius = 140.f; // cm Inner radius of the inner wrap (Aluminium stabilizer) + mInnerWrapThickness = 1.f; // cm + mCoilInnerRadius = 160.f; // cm + mCoilThickness = 0.3f; // cm + mRestMaterialRadius = 160.3f; // cm + mRestMaterialThickness = 6.8f; // cm + mOuterWrapInnerRadius = 200.f; // cm + mOuterWrapThickness = 3.f; // cm + mZLength = 750.f; // cm Length of the magnet (Z direction) + break; default: - LOG(fatal) << "Unknown detector layout " << passiveBaseParam.mMagAbsLayout; + LOG(fatal) << "Unknown detector layout " << passiveBaseParam.mMagnetLayout; break; } From 15cb64c972c6f298e03c607881858a0e3c1be961 Mon Sep 17 00:00:00 2001 From: ALICE Builder Date: Fri, 11 Sep 2026 14:39:44 +0200 Subject: [PATCH 2/2] Please consider the following formatting changes (#45) --- .../Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h b/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h index a96e9d28e1ac6..21d240e991b02 100644 --- a/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h +++ b/Detectors/Upgrades/ALICE3/Passive/include/Alice3DetectorsPassive/PassiveBaseParam.h @@ -34,7 +34,7 @@ enum MagnetType : int { enum MagnetLayout : int { MagStandardRadius = 0, // Using standard radius for the magnet MagReducedRadius = 1, // Using reduced radius for the magnet - MagThickRadius = 2, // Using thick radius for the magnet + MagThickRadius = 2, // Using thick radius for the magnet }; enum AbsorberLayout : int {