Skip to content

Geomfixafterai - #2031

Merged
oksuzian merged 16 commits into
Mu2e:mainfrom
sdifalco:geomfixafterai
Oct 19, 2026
Merged

oksuzian merged 16 commits into
Mu2e:mainfrom
sdifalco:geomfixafterai

Conversation

@sdifalco

Copy link
Copy Markdown
Collaborator

This PR contains the geometry fixes added after the evaluation of the AI review of geometry described in github issue #2017.
A detailed explanation of the changes can be found in doc-db 58456

@FNALbuild

Copy link
Copy Markdown
Collaborator

Hi @sdifalco,
You have proposed changes to files in these packages:

  • Mu2eG4

which require these tests: build.

@Mu2e/write, @Mu2e/fnalbuild-users have access to CI actions on main.

⌛ The following tests have been triggered for 3147d0a: build (Build queue - API unavailable)

About FNALbuild. Code review on Mu2e/Offline.

@FNALbuild

Copy link
Copy Markdown
Collaborator

☀️ The build tests passed at 3147d0a.

Test Result Details
test with ✅ Command did not list any other PRs to include
merge ✅ Merged 3147d0a at 24a1aa5
build (prof) ✅ Log file. Build time: 04 min 27 sec
ceSimReco ✅ Log file.
g4test_03MT ✅ Log file.
transportOnly ✅ Log file.
POT ✅ Log file.
g4study ✅ Log file.
cosmicSimReco ✅ Log file.
cosmicOffSpill ✅ Log file.
ceSteps ✅ Log file.
ceDigi ✅ Log file.
muDauSteps ✅ Log file.
ceMix ✅ Log file.
rootOverlaps ✅ Log file.
g4surfaceCheck ✅ Log file.
trigger ❌ Log file. Return Code 2.
check_cmake ✅ Log file.
FIXME, TODO ✅ TODO (0) FIXME (0) in 0 files
clang-tidy ✅ 0 errors 0 warnings
whitespace check ✅ no whitespace errors found

N.B. These results were obtained from a build of this Pull Request at 3147d0a after being merged into the base branch at 24a1aa5.

For more information, please check the job page here.
Build artifacts are deleted after 5 days. If this is not desired, select Keep this build forever on the job page.

@oksuzian oksuzian left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review Summary — #2031

Reviewed at head 3147d0a0ae06d90f2155fec678aa1d5ab6c64d23. first pass

Decision

  • 🟡 comment only. Thank you for working through #2017. Every fix I could map to an audit item lands on the drawn value. There is one problem, which CI cannot see: the remote-handling hatch commit leaves a sealed 0.1 m³ air pocket in the overburden (finding 1). The fix is one vertex, and I have tested it. With that in, I would approve.

Scope understood

  • 13 commits, each fixing one item from #2017, across 72 files in Mu2eG4/geom/bldg:
    • 30 new volumes, listed in mu2eHall_v03.txt;
    • tsDsAreaWallinsertN(_v02).txt deleted, with that space now inside a taller psArea.ceiling.
  • This is live everywhere: geom_run1, geom_run1_a, geom_run1_a_stickman (and so geom_common) and the 2021_PhaseI files all load mu2eHall_v04 → mu2eHall_v03.
  • How I checked:
    • I parsed every hall solid at the merge base (24a1aa50, main) and at this head.
    • I compared them exactly, one y-slab at a time, with polygon booleans (shapely).
    • I probed the material column at each changed region.
    • All coordinates below are the files' own polygon coordinates, with y measured from the floor (721'-0").

Findings

  1. 🟠 [S1] The RHR hatch base fix leaves a sealed 0.1 m³ air pocket in dirt.beamline.slab.W2

    • Evidence:
      • In dirtBeamlineSlabW2.txt, commit 638ca4acd moves the SE corner rem hatch vertex from (9550.51, 13055.59) to (9550.51, 12598.4).
      • The polygon now runs straight from d1 (11684, 14406.98) to the new corner. That cuts off the triangle (11684, 14406.98)–(9550.51, 13055.59)–(9550.51, 12598.4), which is 487,705 mm² in plan.
      • Nothing else covers that triangle in this layer:
        • dirt.beamline.slab.NC stops at its (9550.51, 13055.59)–d1 edge;
        • the new remoteHandlingHatchLowerSW stops at x = 9550.4.
      • At (10600, 13500) the column reads dirt.beamline.upper at y = 5800, air at y = 5900–6090 (dirt.beamline.slab.W2 on main), and dirt.beamline.slab2.NW at 6150.
      • That makes a 0.099 m³ void sealed between dirt layers at 740'-4" to 741'-0".
    • Impact: a pocket of missing overburden next to the RHR hatch. The amount is small for shielding, but it is the same mechanism as the 0.77 m³ pocket in #2014. g4surfaceCheck and rootOverlaps cannot report it, because they look for intersecting solids, not missing ones.
    • Suggested fix: in dirtBeamlineSlabW2.txt, keep the old corner and add the new one. Put 9550.51 / 13055.59 back between d1 and the new (9550.51, 12598.4) entry, in both xPositions and yPositions. I applied this to a copy of the head:
      • the triangle is then fully covered;
      • the polygon is valid;
      • there are no overlaps with any hall solid at that height.
  2. 🟡 [S2] Splitting volumes undoes the air-out in the surface test-stand geometries

    • Evidence:
      • geom_Wideband4modules_v3/v17/v18/v19, geom_WidebandMuonTaggers_v01, geom_common_trackerVST and geom_common_trackerStationVST set most hall volumes to G4_AIR, for example building.escape.hatch.N, building.firstFloor.S, building.dsArea.elevator.ceiling, building.remote.handling.Hatch.Lower, building.tsArea.stairwell and building.firstFloor.wall.
      • Twelve new concrete volumes are pieces of those aired volumes, and none of them is aired:
        • escape.hatch.NE/NTop/NBot;
        • dsArea.firstFloor.SE;
        • dsArea.elevator.ceilingS;
        • remote.handling.Hatch.Lower.SW;
        • tsArea.stairwell.E;
        • firstFloor.wall.lower1–5.
      • CRVResponse/test/wideband/wideband4modules.fcl loads geom_Wideband4modules_v19.txt.
    • In six of the seven files the same happens to 11 new dirt volumes, for example dirt.dsArea.upper2–4 and dirt.firstFloor.lower.1–5. The exception is _v3.
  • Impact: in those test-stand simulations, part of the escape hatch, the elevator ceiling and the other volumes above become concrete or dirt again. No production campaign uses these geometries.
  • Suggested fix: add string <prefix>.material = "G4_AIR"; for the twelve new prefixes in the seven files, next to their siblings.
  1. ⚪ [S3] Two small items:
    • mu2eHall.txt and mu2eHall_v02.txt still #include the deleted tsDsAreaWallinsertN.txt, and four test-stand geometries still set building.tsDsArea.wallinsert.N.material. Neither hall file loads even at main (4 and 15 missing includes), so nothing that runs is affected.
    • DocDB 58456 (v2, the version I could read) documents A1–A9 only. The B and C fixes here (B5, B6, B8, B9, B10, C2, C3) and the central-stairwell rework are not described there. A short addition would let the next reader trace them.

🟢 Verified at this head, against the drawn values in #2017:

  • A1, DS hatch ledges. Each ledge gains a 5" strip, so F/F at 737'-6"–740'-6" is now 21'-10", as SC-4 prints. That adds 5.26 m³.
  • A3, trench floors. The DS and TS trench floors now run 717'-0" to 718'-0", which is B/TRENCH EL 718'-0". That adds 4.15 m³.
  • A5, W23 opening. It is 1028.7 mm × 2197.1 mm (3'-4½" × 7'-2½"), from 721'-0" to 728'-2½".
  • A6, M4 escape-shaft door. It is 3'-4½" wide and 7'-2½" high, from 746'-0" to 753'-2½" (escapeHatchNBot/NTop). The sill at outdoor grade is your assumption, stated in DocDB 58456; the drawing does not print it.
  • A7, S8 soffit. The soffit is now at 731'-10" over the 4'-11½" strip, which converts 1.17 m³.
  • B5, slab-on-grade. It is now 6" thick (746'-0" to 746'-6"), which puts 36 m³ back to fill. The S10 strip goes from 16" to 12", another 0.83 m³.
  • B6, W22 downstand. It is now 742'-6" to 745'-2" in five segments, so about 11.1 m³ of dirt becomes concrete. The segment ends meet the counterforts.
  • B8, RHR hatch upturns. They run 738'-2" to 741'-0", so about 4 m³ of dirt becomes concrete. Finding 1 is the one side-effect.
  • B10, B14 strip. It is now concrete, 0.74 m × 2.44 m from 741'-0" to 745'-2" (2.3 m³), through the taller psArea.ceiling. The removed wallinsert.N space is fully inside psArea.ceiling, with no air left behind.
  • C2, B1 beams. All five move 7" (177.8 mm) west.
  • C3, W17 walls. Both east ends are 10" (250.7 mm) shorter, now dirt.
  • Leftover gaps. Apart from finding 1, the remaining slivers along the new seams are 0.03–0.3 mm wide, the same as the tolerance gaps already in these files. The central.stairwell.lower.wall.n2 raise also closes a 70 mm air gap that was on main.
  • Volume list.
    • All 414 included bldg files define a listed prefix, and every listed prefix is defined.
    • Materials are unchanged (CONCRETE_MARS, MBOverburden, and so on).
    • The 384 base and 413 head solids all parse, with no missing keys.
  • CI. FNALbuild passes at this head, including g4surfaceCheck and rootOverlaps. trigger fails with return code 2, as it has on #2021, #2026, #2029 and #2030, so that failure does not come from this PR.

Not addressed here (for the record, not findings)

  • A2 and A4 (elevator pit, sump). DocDB 58456 says they were omitted on purpose.
  • A8 and A9 (absorber) are outside this PR.
  • B1 (W2 is 2'-11" over its full height, about 19 m³ of concrete on the soil side). The A1 fix extends the ledge inboard rather than thinning the wall, so the interior F/F now matches but the exterior face is still 5" proud.
  • B2, B3, B4, B7, B11 and C1.
  • The S13 edge over W14 in B10 (0.3 m³).

Validation check

  • Build/tests run:
    • FNALbuild: passed, as above.
    • Locally: an exact per-slab base-vs-head polygon diff, material probes, and the vertex fix for finding 1. Scripts are claude-scratch/pr2031_review/{run_parse,run_slabs,run_probe,run_probe2,run_wedge,fixcheck}.sh.
    • Not checked:
      • the B9 beam's span against the drawing. It now runs from polygon x = 6121 to 29083, which is longer than the grid C–E span I quoted, and the volume is 4.3 m³ against my 2–2.7 m³ estimate;
      • the central-stairwell rework (3147d0a0a: walls, the new upper ceiling, and the dirt around them) against SC-19.
  • Config contract check: pass. Every included file is listed, and every listed prefix is defined.
  • Cross-repo consistency: no other repository uses these files.

Author follow-ups

  1. Restore the (9550.51, 13055.59) vertex in dirtBeamlineSlabW2.txt (finding 1).
  2. Add the G4_AIR overrides for the twelve new volumes in the test-stand geometries (finding 2).
  3. Optionally, drop the dangling wallinsert references and extend DocDB 58456 to cover the B and C fixes (finding 3).

@sdifalco

Copy link
Copy Markdown
Collaborator Author

doc-db 58456 has been updated, latest version is version 5

@sdifalco

Copy link
Copy Markdown
Collaborator Author

@FNALbuild run build test

@FNALbuild

Copy link
Copy Markdown
Collaborator

⌛ The following tests have been triggered for 9df3785: build (Build queue - API unavailable)

@FNALbuild

Copy link
Copy Markdown
Collaborator

☀️ The build tests passed at 9df3785.

Test Result Details
test with ✅ Command did not list any other PRs to include
merge ✅ Merged 9df3785 at 24a1aa5
build (prof) ✅ Log file. Build time: 04 min 25 sec
ceSimReco ✅ Log file.
g4test_03MT ✅ Log file.
transportOnly ✅ Log file.
POT ✅ Log file.
g4study ✅ Log file.
cosmicSimReco ✅ Log file.
cosmicOffSpill ✅ Log file.
ceSteps ✅ Log file.
ceDigi ✅ Log file.
muDauSteps ✅ Log file.
ceMix ✅ Log file.
rootOverlaps ✅ Log file.
g4surfaceCheck ✅ Log file.
trigger ❌ Log file. Return Code 2.
check_cmake ✅ Log file.
FIXME, TODO ✅ TODO (0) FIXME (0) in 0 files
clang-tidy ✅ 0 errors 0 warnings
whitespace check ✅ no whitespace errors found

N.B. These results were obtained from a build of this Pull Request at 9df3785 after being merged into the base branch at 24a1aa5.

For more information, please check the job page here.
Build artifacts are deleted after 5 days. If this is not desired, select Keep this build forever on the job page.

@oksuzian oksuzian left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review Summary — #2031

Reviewed at head 9df37859ad7f58e244e93d9b3b1464f5f1d384be. re-review of 3147d0a0

Decision

  • 🟢 approve. The air pocket is closed, and the rest of the review stands as before. The two remaining items are minor and need not hold this up.

Findings

  1. 🟡 [S2] The surface test-stand geometries do not air out the new volumes (carried over, unchanged). Twelve new concrete pieces, for example escape.hatch.NE/NTop/NBot, firstFloor.wall.lower1–5 and remote.handling.Hatch.Lower.SW, are not set to G4_AIR in the seven Wideband/VST geometries that air out their parent volumes. In six of those files, the same holds for 11 new dirt volumes. No production campaign uses these geometries; this can be a follow-up.
  2. ⚪ [S3] mu2eHall.txt and mu2eHall_v02.txt still include the deleted tsDsAreaWallinsertN.txt (carried over). Neither file loads at main either, so nothing is affected. Thanks for extending DocDB 58456 (v5); I have not re-read it.

🟢 Fixed in 9df37859, verified:

  • [was S1] The sealed air pocket in dirt.beamline.slab.W2. The (9550.51, 13055.59) vertex is back, between d1 and the new (9550.51, 12598.4) corner, and yreplace correctly moves from {9, 10} to {10, 11}.
    • I re-ran the exact per-slab base-vs-head diff at this head. The 487,755 mm² SOLID→AIR region at 740'-4" to 741'-0" is gone. That layer now only changes material where the RHR upturns were meant to go, from dirt to concrete.
    • The commit introduced no other change in any slab.
    • At (10600, 13500), y = 5950–6050, the column reads dirt.beamline.slab.W2 again, as on main.
    • All 413 head solids parse, and the polygon is valid.
  • Everything else verified in my first pass at 3147d0a0 is unchanged by this commit, which touches only dirtBeamlineSlabW2.txt:
    • the A1, A3, A5, A6, A7, B5, B6, B8, B10, C2 and C3 fixes;
    • the volume list;
    • the deleted-file includes.

Validation check

  • Build/tests run:
    • FNALbuild at this head: passed, including g4surfaceCheck and rootOverlaps. trigger fails with return code 2, as it has on every Offline PR build since #2026, so that does not come from this PR.
    • Locally: an exact per-slab polygon diff and material probes at this head (claude-scratch/pr2031_r2/run.sh).
  • Config contract check: pass.
  • Cross-repo consistency: no other repository uses these files.

Author follow-ups

  1. Optional: the G4_AIR overrides for the new volumes in the test-stand geometries (finding 1).

@sdifalco

Copy link
Copy Markdown
Collaborator Author

concerning the S2 comment the following lines should be added for example to geom_Wideband4modules_v19.txt:

string dirt.beamline.slab3.NE.material = "G4_AIR";
string dirt.beamline.slab3.NW.material = "G4_AIR";
string dirt.dsArea.alcove.stairwell.top.material = "G4_AIR";
string dirt.dsArea.firstFloor.SE.material = "G4_AIR";
string dirt.dsArea.upper2.material = "G4_AIR";
string dirt.dsArea.upper3.material = "G4_AIR";
string dirt.dsArea.upper4.material = "G4_AIR";
string dirt.firstFloor.lower.1.material = "G4_AIR";
string dirt.firstFloor.lower.2.material = "G4_AIR";
string dirt.firstFloor.lower.3.material = "G4_AIR";
string dirt.firstFloor.lower.4.material = "G4_AIR";
string dirt.firstFloor.lower.5.material = "G4_AIR";
string building.dsArea.elevator.ceilingS.material = "G4_AIR";
string building.dsArea.elevator.interior.lower.SW.material = "G4_AIR";
string building.dsArea.elevator.interior.lower.SW2.material = "G4_AIR";
string building.dsArea.firstFloor.SE.material = "G4_AIR";
string building.dsArea.upper.wall.S1.material = "G4_AIR";
string building.dsArea.upper.wall.S2.material = "G4_AIR";
string building.dsArea.upper.wall.S3.material = "G4_AIR";
string building.escape.hatch.NBot.material = "G4_AIR";
string building.escape.hatch.NE.material = "G4_AIR";
string building.escape.hatch.NTop.material = "G4_AIR";
string building.firstFloor.wall.lower1.material = "G4_AIR";
string building.firstFloor.wall.lower2.material = "G4_AIR";
string building.firstFloor.wall.lower3.material = "G4_AIR";
string building.firstFloor.wall.lower4.material = "G4_AIR";
string building.firstFloor.wall.lower5.material = "G4_AIR";
string building.remote.handling.Hatch.Lower.SW.material = "G4_AIR";
string building.tsArea.stairwell.E.material = "G4_AIR";

I tried to build a new wideband gdml file but wideband4modules.fcl looks obsolete. It gives errors in some module parameter configuration (some parameter initialization is missing, other parrameters are obsolete). So I just leave an example of how to update a wideband geometry file setting to air the new volumes created by this PR.

@oksuzian oksuzian left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review Summary — #2031

Reviewed at head 8a8b4008b10825f084d06987710b38046fe01cac. re-review of 9df37859

Decision

  • 🟡 comment only, for now. Thanks for the worked example. It covers everything finding 2 asked for in that file. No FNALbuild run exists at this head, so I'm triggering one and will approve once it is green.

Findings

  1. ⚪ [S3] The other six test-stand geometries still need the same block (finding 2 of my earlier review, now narrowed). geom_Wideband4modules_v3/v17/v18, geom_WidebandMuonTaggers_v01, geom_common_trackerVST and geom_common_trackerStationVST do not yet air out the new volumes. Your note that wideband4modules.fcl no longer runs on current Offline explains why _v19 alone was updated. I agree this can wait for whoever next uses those stands.

🟢 Verified at this head:

  • The _v19 block is complete. This PR adds 30 new hall volumes, and the 29 lines in geom_Wideband4modules_v19.txt air out 29 of them: every new building.* piece except one, and every new dirt.* piece. None of the 29 names is a typo or a volume that does not exist.
  • The one omission is consistent. building.central.stairwell.upper.ceiling is not aired, but _v19 does not air any of the existing central-stairwell volumes either (walls, landings, stairs, dirt.central.stairwell.*). Leaving it as concrete matches its siblings.
  • Nothing else changed. The new commit touches only geom_Wideband4modules_v19.txt. The hall geometry is the same as at 9df37859, which I diffed slab by slab in my previous pass.

Validation check

  • Build/tests run: the solid lists for base and this head were parsed and compared, and the new G4_AIR lines were matched against the new volume prefixes (claude-scratch/pr2031_r2/). FNALbuild passed at 9df37859. This head changes only a test-stand geometry that no CI job loads.
  • Config contract check: pass.
  • Cross-repo consistency: no other repository uses these files.

Author follow-ups

  • Optional: the same block in the other six test-stand geometries when they are next used (finding 1).

@oksuzian

Copy link
Copy Markdown
Collaborator

@FNALbuild run build test

@FNALbuild

Copy link
Copy Markdown
Collaborator

⌛ The following tests have been triggered for 8a8b400: build (Build queue - API unavailable)

@FNALbuild

Copy link
Copy Markdown
Collaborator

☀️ The build tests passed at 8a8b400.

Test Result Details
test with ✅ Command did not list any other PRs to include
merge ✅ Merged 8a8b400 at 24a1aa5
build (prof) ✅ Log file. Build time: 04 min 30 sec
ceSimReco ✅ Log file.
g4test_03MT ✅ Log file.
transportOnly ✅ Log file.
POT ✅ Log file.
g4study ✅ Log file.
cosmicSimReco ✅ Log file.
cosmicOffSpill ✅ Log file.
ceSteps ✅ Log file.
ceDigi ✅ Log file.
muDauSteps ✅ Log file.
ceMix ✅ Log file.
rootOverlaps ✅ Log file.
g4surfaceCheck ✅ Log file.
trigger ❌ Log file. Return Code 2.
check_cmake ✅ Log file.
FIXME, TODO ✅ TODO (0) FIXME (0) in 0 files
clang-tidy ✅ 0 errors 0 warnings
whitespace check ✅ no whitespace errors found

N.B. These results were obtained from a build of this Pull Request at 8a8b400 after being merged into the base branch at 24a1aa5.

For more information, please check the job page here.
Build artifacts are deleted after 5 days. If this is not desired, select Keep this build forever on the job page.

@oksuzian oksuzian left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review Summary — #2031

Reviewed at head 8a8b4008b10825f084d06987710b38046fe01cac. re-review of 9df37859

Decision

  • 🟢 approve. Thanks for the worked example. It covers everything finding 2 asked for in that file.

Findings

  1. ⚪ [S3] The other six test-stand geometries still need the same block (finding 2 of my earlier review, now narrowed). geom_Wideband4modules_v3/v17/v18, geom_WidebandMuonTaggers_v01, geom_common_trackerVST and geom_common_trackerStationVST do not yet air out the new volumes. Your note that wideband4modules.fcl no longer runs on current Offline explains why _v19 alone was updated. I agree this can wait for whoever next uses those stands.

🟢 Verified at this head:

  • The _v19 block is complete. This PR adds 30 new hall volumes, and the 29 lines in geom_Wideband4modules_v19.txt air out 29 of them: every new building.* piece except one, and every new dirt.* piece. None of the 29 names is a typo or a volume that does not exist.
  • The one omission is consistent. building.central.stairwell.upper.ceiling is not aired, but _v19 does not air any of the existing central-stairwell volumes either (walls, landings, stairs, dirt.central.stairwell.*). Leaving it as concrete matches its siblings.
  • Nothing else changed. The new commit touches only geom_Wideband4modules_v19.txt. The hall geometry is the same as at 9df37859, which I diffed slab by slab in my previous pass.

Validation check

  • Build/tests run: the solid lists for base and this head were parsed and compared, and the new G4_AIR lines were matched against the new volume prefixes (claude-scratch/pr2031_r2/). FNALbuild passed at this head. trigger fails with return code 2, as it has on every Offline PR build since #2026, so that does not come from this PR.
  • Config contract check: pass.
  • Cross-repo consistency: no other repository uses these files.

Author follow-ups

  • Optional: the same block in the other six test-stand geometries when they are next used (finding 1).

@sdifalco

sdifalco commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator Author

after my last commit I think that the PR can be merged since Andrei has asked to postpone the fixes to the proton beam dump
Schermata da 2026-10-16 11-22-05

@oksuzian oksuzian left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review Summary — #2031

Reviewed at head d7baa4677e33ea4922b54904477517a85547f8d8. re-review of 8a8b4008

Decision

  • 🟡 comment for now. The code is approvable: the new commit is outside the hall geometry I checked before, and it does what it says for the current geometry. I'd still like the pump removal moved into the geometry file (finding 1), but that need not hold up the merge. There is no build at this head yet, so I am triggering one and will approve when it is green.

Scope understood

  • One new commit, d7baa467 "forgot commit from PR 1918". It touches only Mu2eG4/src/constructServicesGeom.cc. It adds a hard-coded skip, if (!isBend && it== 2 && ( ip == 0 || ip == 2 ) ) continue;, labelled "skip obsolete pump pipes", plus whitespace changes.
  • No hall geometry file changed, so the per-slab diff and the _v19 air-out check from my last pass still hold.

Findings

  1. 🟡 [S2] The two pumps are removed by list position in C++, while the geometry files still declare them.

    • Evidence: in PipeMaker.cc, it == 2 is Pipe.*Type3, so the skip drops Type3Pipe1 and Type3Pipe3. In Pipe_v04.txt (included by geom_run1_a_stickman.txt, the current geom_common.txt) these are the two diffusion pumps at z = 14600 (x = −2664 and −5144). The file still has Pipe.nPipeType3 = 4 and all four centres. Nothing else refers to the removed volume names.
    • Impact on older geometries: the skip runs for every geometry with a straight type 3, not just Pipe_v04.
      • Pipe_v03 has the same pump list, so it loses the same two pumps.
      • In Pipe_v01 and Pipe_v02, type 3 is a single 12.7 m G10Lite line ("12 in PS-TS_Shield.txt"). The skip removes that line, which is not a pump at all.
      • Pipe_v01 is used by geom_common_cd3_s4p2, which five other geometry files still include.
      • I found no campaign that runs these older geometries, hence S2.
    • Impact on readers: anyone reading Pipe_v04.txt sees four pumps but gets two. The reason the pumps are obsolete is not in the commit, the PR body or DocDB 58456.
    • Why the skip is not needed by the hall changes: I checked all four pump footprints (1700 mm long, 260 mm radius) against every hall building and dirt solid, at both main and this head. Neither version has an overlap.
    • On the commit title: PR #1918's six commits never touched constructServicesGeom.cc. The title therefore doesn't explain where this change comes from.
    • Suggested fix: revert the C++ skip. Add a Pipe_v05.txt with Pipe.nPipeType3 = 2 and only the two pumps that remain, with a one-line comment saying why the other two are obsolete. Include it from geom_run1_a_stickman.txt. Old geometries then keep what they had.
  2. ⚪ [S3] The commit re-indents the two pipeType/pipeLogicVolType name lines by two extra spaces and removes a blank line. This is cosmetic; finding 1's revert would drop it anyway.

🟢 Verified at this head:

  • The hall geometry is unchanged since 8a8b4008. The compare lists one file, constructServicesGeom.cc. The slab-by-slab diff and the 29-line G4_AIR block in geom_Wideband4modules_v19.txt from my last review still apply.
  • No other code depends on the removed volumes. git grep for Type3Pipe1, Type3Pipe3, pipeType3 and pipeLogicVolType3 outside the Pipe_v0x.txt files finds nothing.
  • The proton beam dump. I note your comment that Andrei asked for the beam-dump fixes to be postponed.

Validation check

  • Build/tests run: no FNALbuild run at this head yet (mu2e/buildtest: "This test has not been triggered yet"). The previous head 8a8b4008 passed. Locally:

    • read the increment;
    • checked the type-to-index mapping in PipeMaker.cc;
    • checked which geometries include each Pipe_v0x.txt;
    • checked the pump footprints against the parsed hall solids at base and head (claude-scratch/pr2031_r3/pumps2.sh).

    I did not run Geant4 or an overlap check with the pumps removed.

  • Config contract check: pass.

  • Cross-repo consistency: pass. No other repository builds these volumes.

Residual risk

  • Small: two steel pump shells with oil filling are removed from the current geometry. I can't judge from the PR whether that is the intended physics change, because the reason isn't recorded.

Author follow-ups

  1. Say why the two pumps at z = 14600 are obsolete, and where that comes from.
  2. Optional: move the removal into a new Pipe_v05.txt, so the older geometries are unchanged (finding 1).

@oksuzian

Copy link
Copy Markdown
Collaborator

@FNALbuild run build test

@FNALbuild

Copy link
Copy Markdown
Collaborator

⌛ The following tests have been triggered for d7baa46: build (Build queue - API unavailable)

@FNALbuild

Copy link
Copy Markdown
Collaborator

☀️ The build tests passed at d7baa46.

Test Result Details
test with ✅ Command did not list any other PRs to include
merge ✅ Merged d7baa46 at f122c5b
build (prof) ✅ Log file. Build time: 04 min 28 sec
ceSimReco ✅ Log file.
g4test_03MT ✅ Log file.
transportOnly ✅ Log file.
POT ✅ Log file.
g4study ✅ Log file.
cosmicSimReco ✅ Log file.
cosmicOffSpill ✅ Log file.
ceSteps ✅ Log file.
ceDigi ✅ Log file.
muDauSteps ✅ Log file.
ceMix ✅ Log file.
rootOverlaps ✅ Log file.
g4surfaceCheck ✅ Log file.
trigger ✅ Log file.
check_cmake ✅ Log file.
FIXME, TODO ✅ TODO (0) FIXME (0) in 1 files
clang-tidy ➡️ 1 errors 9 warnings
whitespace check ✅ no whitespace errors found

N.B. These results were obtained from a build of this Pull Request at d7baa46 after being merged into the base branch at f122c5b.

For more information, please check the job page here.
Build artifacts are deleted after 5 days. If this is not desired, select Keep this build forever on the job page.

@oksuzian oksuzian left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Review Summary — #2031

Reviewed at head d7baa4677e33ea4922b54904477517a85547f8d8. re-review of 8a8b4008

Decision

  • 🟢 approve. The new commit is outside the hall geometry I checked before, and it does what it says for the current geometry. I'd still like the pump removal moved into the geometry file (finding 1), but that need not hold up the merge.

Scope understood

  • One new commit, d7baa467 "forgot commit from PR 1918". It touches only Mu2eG4/src/constructServicesGeom.cc. It adds a hard-coded skip, if (!isBend && it== 2 && ( ip == 0 || ip == 2 ) ) continue;, labelled "skip obsolete pump pipes", plus whitespace changes.
  • No hall geometry file changed, so the per-slab diff and the _v19 air-out check from my last pass still hold.

Findings

  1. 🟡 [S2] The two pumps are removed by list position in C++, while the geometry files still declare them.

    • Evidence: in PipeMaker.cc, it == 2 is Pipe.*Type3, so the skip drops Type3Pipe1 and Type3Pipe3. In Pipe_v04.txt (included by geom_run1_a_stickman.txt, the current geom_common.txt) these are the two diffusion pumps at z = 14600 (x = −2664 and −5144). The file still has Pipe.nPipeType3 = 4 and all four centres. Nothing else refers to the removed volume names.
    • Impact on older geometries: the skip runs for every geometry with a straight type 3, not just Pipe_v04.
      • Pipe_v03 has the same pump list, so it loses the same two pumps.
      • In Pipe_v01 and Pipe_v02, type 3 is a single 12.7 m G10Lite line ("12 in PS-TS_Shield.txt"). The skip removes that line, which is not a pump at all.
      • Pipe_v01 is used by geom_common_cd3_s4p2, which five other geometry files still include.
      • I found no campaign that runs these older geometries, hence S2.
    • Impact on readers: anyone reading Pipe_v04.txt sees four pumps but gets two. The reason the pumps are obsolete is not in the commit, the PR body or DocDB 58456.
    • Why the skip is not needed by the hall changes: I checked all four pump footprints (1700 mm long, 260 mm radius) against every hall building and dirt solid, at both main and this head. Neither version has an overlap.
    • On the commit title: PR #1918's six commits never touched constructServicesGeom.cc. The title therefore doesn't explain where this change comes from.
    • Suggested fix: revert the C++ skip. Add a Pipe_v05.txt with Pipe.nPipeType3 = 2 and only the two pumps that remain, with a one-line comment saying why the other two are obsolete. Include it from geom_run1_a_stickman.txt. Old geometries then keep what they had.
  2. ⚪ [S3] The commit re-indents the two pipeType/pipeLogicVolType name lines by two extra spaces and removes a blank line. This is cosmetic; finding 1's revert would drop it anyway.

🟢 Verified at this head:

  • The hall geometry is unchanged since 8a8b4008. The compare lists one file, constructServicesGeom.cc. The slab-by-slab diff and the 29-line G4_AIR block in geom_Wideband4modules_v19.txt from my last review still apply.
  • No other code depends on the removed volumes. git grep for Type3Pipe1, Type3Pipe3, pipeType3 and pipeLogicVolType3 outside the Pipe_v0x.txt files finds nothing.
  • The proton beam dump. I note your comment that Andrei asked for the beam-dump fixes to be postponed.

Validation check

  • Build/tests run: FNALbuild passed at this head (build 3462, merged at f122c5b3), including rootOverlaps, g4surfaceCheck, ceSimReco, cosmicSimReco and trigger. clang-tidy reports 1 error and 9 warnings; I did not read its log. Locally:

    • read the increment;
    • checked the type-to-index mapping in PipeMaker.cc;
    • checked which geometries include each Pipe_v0x.txt;
    • checked the pump footprints against the parsed hall solids at base and head (claude-scratch/pr2031_r3/pumps2.sh).

    I did not run Geant4 or an overlap check with the pumps removed.

  • Config contract check: pass.

  • Cross-repo consistency: pass. No other repository builds these volumes.

Residual risk

  • Small: two steel pump shells with oil filling are removed from the current geometry. I can't judge from the PR whether that is the intended physics change, because the reason isn't recorded.

Author follow-ups

  1. Say why the two pumps at z = 14600 are obsolete, and where that comes from.
  2. Optional: move the removal into a new Pipe_v05.txt, so the older geometries are unchanged (finding 1).

@oksuzian
oksuzian merged commit edf1e35 into Mu2e:main Oct 19, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants