Deduplicate MFT capacitor/welding and X7R0402 geometry - #15723
Merged
sawenzel merged 1 commit intoAug 28, 2026
Conversation
sawenzel
requested review from
f3sch,
fprino,
mconcas,
mcoquet642 and
shahor02
as code owners
August 26, 2026 08:40
Deduplicate geometrically identical MFT capacitor/welding TGeoVolumes and the X7R0402 assembly, reducing the ALICE geometry by ~15k logical volumes. * Geant4 initialization: 26.3s → 17.0s (~35% faster). * Logical volume UIDs: 27,491 → 6,919, while preserving 5,465,235 nodes. * Verified that the deduplicated volumes are never accessed by name, so no alignment or hit-scoring dependencies are affected. * Verified that generated hits are bit-by-bit identical before and after the change. * Adds dimension-consistency guards to the static geometry cache. * Makes geometry transformations to Geant4/VecGeom/CAD substantially more tractable by drastically simplifying the geometry volume graph. A major simplification of the ALICE geometry with significant benefits for downstream geometry transformation and processing workflows.
sawenzel
force-pushed
the
swenzel/mft-electric-component-dedup
branch
from
August 26, 2026 08:42
60f967a to
1610003
Compare
mcoquet642
approved these changes
Aug 27, 2026
mcoquet642
enabled auto-merge (squash)
August 28, 2026 08:54
sawenzel
disabled auto-merge
August 28, 2026 17:48
sawenzel
added a commit
to sawenzel/AliceO2
that referenced
this pull request
Aug 28, 2026
This deduplicates the MFT flex printed-circuit assembly, its connector and the ALPIDE metal stack, and adds a name-based lookup for the deduplicated flex volumes. It is a follow-up on AliceO2Group#15723 and extends geometry simplification ideas to MFT Flex. - The flex and its five layers were rebuilt for each of the 280 ladders, although Ladder.cxx derives the flex length from the sensor count alone, so ladders with the same sensor count get an identical flex. - Flex::makeFlex() now builds one flex per sensor-count class, guarded by a LOG(fatal) if a later call presents a different length for a class already built. - The connector pad and its PEEK box are the same solids on every flex and are now built once. - MetalStack in AlpideChip::createChip() is the same solid in every ALPIDE chip of both ITS and MFT and is now built once, guarded on its half lengths. - Every cache is dropped when gGeoManager changes, so a second geometry built in the same process cannot inherit a dangling pointer. The X7R0402 cache got the same guard. - The deduplicated volumes are named for the sensor count (flex_3, lineslayer_3, varnishlayer_3_0) instead of for half/disk/ladder. Flex::composeFlexName(), composeFlexLayerName() and getFlexVolume() resolve them, the last through gGeoManager so it also answers on a geometry read back from a file. The ladder a placement belongs to is still read from the node path. In result, an MFT-only geometry goes from 5281 to 2788 TGeoVolumes and from 32798 to 5650 TGeoNodes; ITS and MFT together from 5687 to 3187 volumes. The number of physical nodes is unchanged at 50044.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Deduplicate MFT capacitor/welding and X7R0402 geometry
Deduplicate geometrically identical MFT capacitor/welding TGeoVolumes and
the X7R0402 assembly, reducing the ALICE geometry by ~15k logical volumes.
alignment or hit-scoring dependencies are affected.
the change.
tractable by drastically simplifying the geometry volume graph.
A major simplification of the ALICE geometry with significant benefits for
downstream geometry transformation and processing workflows.