Skip to content

Allow per-foil stopping-target hole radii - #1906

Open
oksuzian wants to merge 1 commit into
Mu2e:mainfrom
oksuzian:stopping-target-per-foil-hole-radii
Open

Allow per-foil stopping-target hole radii#1906
oksuzian wants to merge 1 commit into
Mu2e:mainfrom
oksuzian:stopping-target-per-foil-hole-radii

Conversation

@oksuzian

@oksuzian oksuzian commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Summary

StoppingTargetMaker currently reads a single stoppingTarget.holeRadius and applies it to every foil. This adds an optional stoppingTarget.holeRadii vector so each foil can carry its own hole radius.

The motivation is stopping-target studies that vary the central hole along z. Mu2e-doc-10898 (Edmonds, 2017) reports that a central hole of R ≈ 18–21.5 mm reduces the beam flash by ~30% and tracker dose by ~30% at essentially unchanged SES, for a 2–3% stop loss at fixed mass. Investigating that trade-off — and any z-dependence of it — needs per-foil control, which the scalar cannot express.

The change

Two files, 24 insertions, 1 deletion. The functional part is one line:

-                     _rIn,
+                     _holeRadii.empty() ? _rIn : _holeRadii[i],

Everything else is the member declaration, the optional config read, a length check, and reporting.

Backward compatibility

Strictly additive:

  • When stoppingTarget.holeRadii is absent — the default, and the case for every geometry file in the repository — the scalar stoppingTarget.holeRadius is used for every foil exactly as before. No existing geometry changes behaviour.
  • When present, its length must equal stoppingTarget.radii. A mismatch throws cet::exception("GEOM") rather than silently mis-assigning holes to foils.
  • PrintConfig() reports whichever form is in use, alongside the outer radii it already prints (shown when stoppingTarget.verbosity > 0).

StoppingTargetMaker reads a single stoppingTarget.holeRadius applied to
every foil.  This adds an optional stoppingTarget.holeRadii vector so each
foil can carry its own hole, which is needed for stopping-target studies
that vary the central hole along z (e.g. the beam-flash reduction reported
in Mu2e-doc-10898).

The change is strictly additive and backward compatible:

  - When stoppingTarget.holeRadii is absent (the default), the scalar
    stoppingTarget.holeRadius is used for every foil exactly as before.
    No existing geometry file changes behaviour.
  - When present, its length must equal stoppingTarget.radii; a mismatch
    throws rather than silently mis-assigning holes to foils.
  - PrintConfig() reports whichever form is in use, alongside the outer
    radii it already prints (stoppingTarget.verbosity > 0).

Equivalent code has been running in a locally patched build since
2026-06, across several hundred grid jobs of stopping-target geometry
scans, with per-foil holes verified against the as-built GDML.
@FNALbuild

Copy link
Copy Markdown
Collaborator

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

  • GeometryService

which require these tests: build.

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

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

About FNALbuild. Code review on Mu2e/Offline.

@FNALbuild

Copy link
Copy Markdown
Collaborator

☀️ The build tests passed at 8574400.

Test Result Details
test with Command did not list any other PRs to include
merge Merged 8574400 at c961ce4
build (prof) Log file. Build time: 04 min 26 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 2 files
clang-tidy ➡️ 2 errors 42 warnings
whitespace check no whitespace errors found

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

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.

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.

2 participants