Skip to content

Fix geometry overlaps found by geometry-doctor - #15760

Open
sawenzel wants to merge 4 commits into
AliceO2Group:devfrom
sawenzel:swenzel/geometry-unreachable-placements
Open

Fix geometry overlaps found by geometry-doctor#15760
sawenzel wants to merge 4 commits into
AliceO2Group:devfrom
sawenzel:swenzel/geometry-unreachable-placements

Conversation

@sawenzel

@sawenzel sawenzel commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Fixes hidden material defects found by geometry-doctor

o2-sim-geometry-doctor --geometry-file o2sim_geometry.root --reachability-only --reachability-samples 100

ALICE simulation geometry doctor -- reachability audit

  geometry      : o2sim_geometry.root
  volumes       : 8898, media 391

reachability: asking the navigator to find every placement from inside its own shape

  **unreachable** -- these carry no material and produce no hits:
    mother       medium                sampled  path
    aluSideA     PIPE_VACUUM               100  /cave_1/barrel_1/aluSideA_1/aluSideAVac_1
    SQM1         MCH_Inox                  100  /cave_1/YOUT1_1/SC01I_0/Quadrant (chamber 1)_100/SQM1_1/SQ03_1
    SQM1         MCH_Inox                  100  /cave_1/YOUT1_1/SC01I_0/Quadrant (chamber 1)_100/SQM1_1/SQ05toSQ07_1
    SQM2         MCH_Inox                  100  /cave_1/YOUT1_1/SC02I_2/Quadrant (chamber 2)_200/SQM2_1/SQ03_1
    SQM2         MCH_Inox                  100  /cave_1/YOUT1_1/SC02I_2/Quadrant (chamber 2)_200/SQM2_1/SQ05toSQ07_1

sawenzel and others added 4 commits September 3, 2026 17:28
This fixes an overlap between the FT0 A-side cable container and the beam pipe.

- 0CAA is a 40 x 40 x 0.5 cm air box centred on the beam axis, so it crosses the
  pipe wall and fills the pipe bore.
- The box is now a composite shape with a 3 cm hole. The pipe outer radius there
  is 2.5 cm and the nearest cable sits at r = 5.68 cm.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This fixes a problem in the A-side beam pipe, whose vacuum volume occupied no
space.

- aluSideAVac was a daughter of aluSideA, a hollow Pcon that does not contain
  its own bore, so the navigator never descended into it.
- The beam line from z = 44.5 cm to z = 426 cm was CAVE_Air, not PIPE_VACUUM.
- The vacuum is now a daughter of the barrel.
- Its bore stays at the third section's inner radius up to kZ36. The wider
  flange bore beyond it is occupied by the RB24 vacuum modules.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This fixes a problem in the station 1 quadrant frame, where two Inox layers
carried no material.

- SQ03 and SQ05toSQ07 were placed at +kHzOuterFrameInox, their own half
  thickness, so each sat entirely inside the Epoxy layer it is stacked on.
- They are now placed at +kHzOuterFrameEpoxy, the convention SQ17to23 and
  SQ18to24 already use.
- This affects both quadrant chambers, SQM1 and SQM2.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This gives each HMPID absorber plate its own volume name and copy number.

- createAbsorber was called twice, so both plates became a volume named Habs
  placed with copy number 0.
- GetVolume("Habs") returned only the 40 mm plate, and both node paths were
  /cave_1/barrel_1/Habs_0, so the 80 mm plate could not be addressed at all.
- The GDML export had to invent Habs0x2, Habs0x3 and Habs_00x1 for it.
- The plates are now Habs2 and Habs4, with copy numbers 2 and 4.
- The geometry is unchanged: same shapes, same media, same placements.

https://its.cern.ch/jira/browse/O2-4136

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@amorsch

amorsch commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Very good catch.
For the PIPE I would prefer to place the vacuum inside the alu mother volume setting the inner radius of alu to 0 and the outer radius of the vacuum to the inner radius of the pipe. Strange that the overlap checker fails for these cases.
Please add Mario Sitta to the reviewers.

@sawenzel

sawenzel commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator Author

@mario6829

@amorsch

amorsch commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

For the Alu PIPE I can understand that CheckOverlaps does not find the extrusion, because the two volumes share only a boundary. But why does it not find the complete overlap between the ft0 cable box and the PIPE ??
However a tiny 40mu overlap within ft0 is reported:
= Overlap ov00005: FT0C/CAB26_26 overlapping FT0C/FT0_C_Frame_53/shellVol_1 ovlp=0.00374987
= Overlap ov00006: FT0C/CAB50_50 overlapping FT0C/FT0_C_Frame_53/shellVol_1 ovlp=0.0037488

@amorsch

amorsch commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Sorry!, I only see now what happened. I placed the vacuum inside the alu mothervolume when restructuring the geometry and did not realise that I should have changed the inner radius of the mother volume and that way it became air.

@alibuild

alibuild commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Error while checking build/O2/fullCI_slc9 for f951649 at 2026-09-04 05:50:

## sw/BUILD/O2Physics-latest/log
c++: fatal error: Killed signal terminated program cc1plus
ninja: build stopped: subcommand failed.

Full log here.

@sawenzel

sawenzel commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator Author

Sorry!, I only see now what happened. I placed the vacuum inside the alu mothervolume when restructuring the geometry and did not realise that I should have changed the inner radius of the mother volume and that way it became air.

No worries ! The overlap checker appears to be partially blind to these defects. It pays off to have some complementary checks in the geometry-doctor now.

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.

3 participants