Skip to content

Deduplicate the MFT flex and the shared ALPIDE metal stack - #15736

Open
sawenzel wants to merge 1 commit into
AliceO2Group:devfrom
sawenzel:mft-flex-dedup
Open

Deduplicate the MFT flex and the shared ALPIDE metal stack#15736
sawenzel wants to merge 1 commit into
AliceO2Group:devfrom
sawenzel:mft-flex-dedup

Conversation

@sawenzel

Copy link
Copy Markdown
Collaborator

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 #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 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant