Allow per-foil stopping-target hole radii - #1906
Open
oksuzian wants to merge 1 commit into
Open
Conversation
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.
Collaborator
|
☀️ The build tests passed at 8574400.
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
StoppingTargetMakercurrently reads a singlestoppingTarget.holeRadiusand applies it to every foil. This adds an optionalstoppingTarget.holeRadiivector 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:
Everything else is the member declaration, the optional config read, a length check, and reporting.
Backward compatibility
Strictly additive:
stoppingTarget.holeRadiiis absent — the default, and the case for every geometry file in the repository — the scalarstoppingTarget.holeRadiusis used for every foil exactly as before. No existing geometry changes behaviour.stoppingTarget.radii. A mismatch throwscet::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 whenstoppingTarget.verbosity > 0).