From 3d95d30d00bb58a3e1016e22aa92d4ae99c2341c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Wed, 25 Mar 2026 14:11:11 +0100 Subject: [PATCH 1/3] Refactor TRKServices to use volume assembly --- .../ALICE3/TRK/simulation/src/TRKServices.cxx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Detectors/Upgrades/ALICE3/TRK/simulation/src/TRKServices.cxx b/Detectors/Upgrades/ALICE3/TRK/simulation/src/TRKServices.cxx index d8246bcd8640c..7cf7dc863607e 100644 --- a/Detectors/Upgrades/ALICE3/TRK/simulation/src/TRKServices.cxx +++ b/Detectors/Upgrades/ALICE3/TRK/simulation/src/TRKServices.cxx @@ -127,18 +127,21 @@ void TRKServices::createMaterials() void TRKServices::createServices(TGeoVolume* motherVolume) { + + TGeoVolumeAssembly* vol = new TGeoVolumeAssembly(GeometryTGeo::getTRKServiceVolPattern()); + motherVolume->AddNode(vol, 2, new TGeoTranslation(0, 0., 0)); createMaterials(); createVacuumCompositeShape(); auto& trkPars = TRKBaseParam::Instance(); if (trkPars.getLayoutSRV() == kLOISymm) { LOGP(info, "TRK services: LoI version"); - createMiddleServices(motherVolume); - createOuterDisksServices(motherVolume); - createOuterBarrelServices(motherVolume); + createMiddleServices(vol); + createOuterDisksServices(vol); + createOuterBarrelServices(vol); } else { LOGP(info, "TRK services: Peacock layout"); - createMLServicesPeacock(motherVolume); - createOTServicesPeacock(motherVolume); + createMLServicesPeacock(vol); + createOTServicesPeacock(vol); } } From cbd8a197cff0d473e2c7655580a33179d8afc950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Wed, 25 Mar 2026 14:12:21 +0100 Subject: [PATCH 2/3] Add service volume name to GeometryTGeo --- Detectors/Upgrades/ALICE3/TRK/base/src/GeometryTGeo.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/Detectors/Upgrades/ALICE3/TRK/base/src/GeometryTGeo.cxx b/Detectors/Upgrades/ALICE3/TRK/base/src/GeometryTGeo.cxx index 36d26a6344e6c..10c1c63615d35 100644 --- a/Detectors/Upgrades/ALICE3/TRK/base/src/GeometryTGeo.cxx +++ b/Detectors/Upgrades/ALICE3/TRK/base/src/GeometryTGeo.cxx @@ -26,6 +26,7 @@ std::unique_ptr GeometryTGeo::sInstance; // Names std::string GeometryTGeo::sVolumeName = "TRKV"; +std::string GeometryTGeo::sServiceVolName = "TRKService"; std::string GeometryTGeo::sLayerName = "TRKLayer"; std::string GeometryTGeo::sPetalAssemblyName = "PETAL"; std::string GeometryTGeo::sPetalName = "PETALCASE"; From c51306413a9b7950eaf8c400508a4584f45980f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Wed, 25 Mar 2026 14:12:56 +0100 Subject: [PATCH 3/3] Add getTRKServiceVolPattern method and variable --- .../Upgrades/ALICE3/TRK/base/include/TRKBase/GeometryTGeo.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Detectors/Upgrades/ALICE3/TRK/base/include/TRKBase/GeometryTGeo.h b/Detectors/Upgrades/ALICE3/TRK/base/include/TRKBase/GeometryTGeo.h index e32a2546c6842..576dbf434f757 100644 --- a/Detectors/Upgrades/ALICE3/TRK/base/include/TRKBase/GeometryTGeo.h +++ b/Detectors/Upgrades/ALICE3/TRK/base/include/TRKBase/GeometryTGeo.h @@ -43,6 +43,7 @@ class GeometryTGeo : public o2::detectors::DetMatrixCache return sInstance.get(); }; static const char* getTRKVolPattern() { return sVolumeName.c_str(); } + static const char* getTRKServiceVolPattern() { return sServiceVolName.c_str(); } static const char* getTRKLayerPattern() { return sLayerName.c_str(); } static const char* getTRKPetalAssemblyPattern() { return sPetalAssemblyName.c_str(); } static const char* getTRKPetalPattern() { return sPetalName.c_str(); } @@ -198,6 +199,7 @@ class GeometryTGeo : public o2::detectors::DetMatrixCache static constexpr int MAXLAYERS = 20; ///< max number of active layers static std::string sVolumeName; + static std::string sServiceVolName; static std::string sLayerName; static std::string sPetalAssemblyName; static std::string sPetalName;