Offline/bin/overlapCheck.C reports an overlap in the default geometry after #1918:
Processing Offline/bin/overlapCheck.C("build/al9-prof-e29-p103/Offline/gen/gdml/mu2e_common.gdml")...
= Overlap ov00000: HallAir/dirtCentralStairwellLower30x545f8d0
overlapping HallAir/CentralStairwellLowerStairs0x55f22b0 ovlp=3.11047e-10
Verified on main @ 1891b3289. Originally seen in a nightly build.
Cause
dirtCentralStairwellLower3 was added by #1918 (merged 2026-08-08). CentralStairwellLowerStairs is pre-existing and untouched by that PR, so this is new-volume-against-old-volume.
The two share a coincident face at x = 9956.8 mm:
bldg/dirtCentralStairwellLower3.txt — xPositions = {9956.8, 11617.2, 11617.2, 9956.8}
bldg/centralStairwellLowerStairs.txt — xPositions span 1.0 … 9956.8, and the volume is rotated by angles = {0., 0., -1.5707963268}
-1.5707963268 is π/2 truncated at the 10th decimal, so the rotation is off true right-angle by ~1e-11 rad. Against a ~1.2 m lever arm that puts the rotated face a few times 1e-10 mm past the neighbour — which is exactly the reported 3.11e-10.
Severity: cosmetic, but it does break the check
The magnitude is 3.11e-10 mm = 3e-13 m, about a thousandth of an atomic diameter. There is no physics consequence; no particle transport is affected.
It matters only because bin/overlapCheck.C calls CheckOverlaps(1e-12), and #1523 deliberately tightened that tolerance to catch small extrusions early. So the check is doing its job — this is a genuine coincident-face artifact that the stringent tolerance is designed to surface. I would not loosen the tolerance to silence it.
Suggested fix
The codebase already has a precedent for exactly this, on the other volume of this same pair — bldg/centralStairwellLowerStairs.txt:10:
double building.central.stairwell.lower.stairs.yHalfThickness = 609.599;
// remove 1 um to prevent conflict as the rotation angle is not exactly pi/2
Same root cause, same remedy. Shave ~1 µm off the new volume so the faces no longer touch, e.g. in bldg/dirtCentralStairwellLower3.txt:
-double dirt.central.stairwell.lower3.yHalfThickness = 1260.45;
+double dirt.central.stairwell.lower3.yHalfThickness = 1260.449; // remove 1 um to prevent conflict, cf. centralStairwellLowerStairs
Whether the right axis is yHalfThickness or a 1 µm nudge on the xPositions face at 9956.8 depends on which the author intends as the free dimension — @sdifalco, you'll know which is dimensionally meaningful here. Either way it's a micron on a dirt volume.
Scope
dirtCentralStairwellLower3 enters via mu2eHall_v03.txt:663, which is reached by ~43 top-level geometries including geom_common.txt (the current default, via geom_run1_a_stickman.txt). So this is not confined to a frozen campaign geometry — anyone running the overlap check on default geometry sees it.
Happy to open the one-line PR if you'd rather not bother, just say which dimension to trim.
Offline/bin/overlapCheck.Creports an overlap in the default geometry after #1918:Verified on
main@1891b3289. Originally seen in a nightly build.Cause
dirtCentralStairwellLower3was added by #1918 (merged 2026-08-08).CentralStairwellLowerStairsis pre-existing and untouched by that PR, so this is new-volume-against-old-volume.The two share a coincident face at x = 9956.8 mm:
bldg/dirtCentralStairwellLower3.txt—xPositions= {9956.8, 11617.2, 11617.2, 9956.8}bldg/centralStairwellLowerStairs.txt—xPositionsspan 1.0 … 9956.8, and the volume is rotated byangles = {0., 0., -1.5707963268}-1.5707963268is π/2 truncated at the 10th decimal, so the rotation is off true right-angle by ~1e-11 rad. Against a ~1.2 m lever arm that puts the rotated face a few times 1e-10 mm past the neighbour — which is exactly the reported 3.11e-10.Severity: cosmetic, but it does break the check
The magnitude is 3.11e-10 mm = 3e-13 m, about a thousandth of an atomic diameter. There is no physics consequence; no particle transport is affected.
It matters only because
bin/overlapCheck.CcallsCheckOverlaps(1e-12), and #1523 deliberately tightened that tolerance to catch small extrusions early. So the check is doing its job — this is a genuine coincident-face artifact that the stringent tolerance is designed to surface. I would not loosen the tolerance to silence it.Suggested fix
The codebase already has a precedent for exactly this, on the other volume of this same pair —
bldg/centralStairwellLowerStairs.txt:10:Same root cause, same remedy. Shave ~1 µm off the new volume so the faces no longer touch, e.g. in
bldg/dirtCentralStairwellLower3.txt:Whether the right axis is
yHalfThicknessor a 1 µm nudge on thexPositionsface at 9956.8 depends on which the author intends as the free dimension — @sdifalco, you'll know which is dimensionally meaningful here. Either way it's a micron on a dirt volume.Scope
dirtCentralStairwellLower3enters viamu2eHall_v03.txt:663, which is reached by ~43 top-level geometries includinggeom_common.txt(the current default, viageom_run1_a_stickman.txt). So this is not confined to a frozen campaign geometry — anyone running the overlap check on default geometry sees it.Happy to open the one-line PR if you'd rather not bother, just say which dimension to trim.