separated Stickman geometry PR from PR #1794#1797
separated Stickman geometry PR from PR #1794#1797
Conversation
|
Hi @YongyiBWu,
which require these tests: build. @Mu2e/write, @Mu2e/fnalbuild-users have access to CI actions on main. ⌛ The following tests have been triggered for 850b78e: build (Build queue - API unavailable) |
There was a problem hiding this comment.
Pull request overview
Adds a new production target geometry option, Stickman_v_1_0, to the Mu2e Offline simulation stack, integrating it into both geometry configuration and Geant4 construction so it can be selected like existing targets (e.g., Hayman).
Changes:
- Added Stickman target parameters to
ProductionTargetand implemented Stickman construction viaProductionTargetMaker. - Implemented Geant4 geometry construction for Stickman plates/rods/end-rings (and reused support wheel logic) in
constructTargetPS.cc, and wired selection inconstructPS.cc. - Added a new Stickman geometry config file and updated the default run geometry include to use it.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| ProductionTargetGeom/src/ProductionTarget.cc | Adds a Stickman-specific ProductionTarget constructor and derived parameters (e.g., rod length). |
| ProductionTargetGeom/inc/ProductionTarget.hh | Adds Stickman parameters/accessors and selection helpers for position/half-length by target type. |
| GeometryService/inc/ProductionTargetMaker.hh | Registers Stickman version constant and factory entry point. |
| GeometryService/src/ProductionTargetMaker.cc | Adds makeStickman_v_1_0() to build ProductionTarget from SimpleConfig. |
| GeometryService/src/GeometryService.cc | Extends PS shield placement logic to support Stickman target positioning. |
| Mu2eG4/src/constructPS.cc | Allows selecting Stickman model name and routes to constructTargetPS(). |
| Mu2eG4/src/constructTargetPS.cc | Implements full Stickman Geant4 solid/placement construction and reuses support structures logic. |
| Mu2eG4/geom/ProductionTarget_Stickman_v1_0.txt | Introduces the Stickman geometry configuration parameters. |
| Mu2eG4/geom/geom_run1_a.txt | Switches default include from Hayman to Stickman geometry. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
☀️ The build tests passed at 850b78e.
N.B. These results were obtained from a build of this Pull Request at 850b78e after being merged into the base branch at 2cc428c. For more information, please check the job page here. |
|
Separated run_1_a and run_1_a_stickman geometry as suggested in comments in PR #1794 |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
I'll review this pull request by examining its details and changes.Now let me look at the existing review comments and check the existing 🔴 Critical Issues1. Default geometry silently changed for everyone
2. No validation of per-plate/per-fin vector sizes in
|
| Severity | Count | Key Items |
|---|---|---|
| 🔴 Critical | 2 | Default geometry changed globally; no vector size validation |
| 🟠 Moderate | 5 | Unchecked indexing, misleading comments, unused variables |
| 🟡 Minor | 4 | Code duplication, stale comments, naming conventions |
Recommendation: The most important fix before merging is reverting geom_common.txt to keep geom_run1_a.txt as the default, and adding size validation for the per-plate/per-fin config vectors in makeStickman_v_1_0.
|
@FNALbuild run build test |
|
⌛ The following tests have been triggered for 63edf06: build (Build queue - API unavailable) |
|
☀️ The build tests passed at 63edf06.
N.B. These results were obtained from a build of this Pull Request at 63edf06 after being merged into the base branch at 1d1b9f0. For more information, please check the job page here. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…inor sign error in a wheel coordinate.
|
|
@oksuzian I finished addressing the review comments. |
It was noticed the wheel rods were not pinned exactly to the wheel center plane. Add variable and appropriate access to reflect this. Note with this change the unconstrained spoke wire lengths now agree to within 0.5 mm (previously 3mm), proving the correctness of this change.
|
The new commit is for a minor wheel spoke wire fix. It was noticed the wheel rods were not pinned exactly to the wheel center plane. Added variable and appropriate access to hold this variable. The actual rod offsets now becomes the offset between rod center to pinhole, plus the new offset divided by cos(rotY). Note with this change the unconstrained spoke wire lengths now agree to within 0.5 mm (rounding errors, previously 3mm), proving the correctness of this change. |
|
@FNALbuild run build test |
|
⌛ The following tests have been triggered for 621df83: build (Build queue - API unavailable) |
|
☀️ The build tests passed at 621df83.
N.B. These results were obtained from a build of this Pull Request at 621df83 after being merged into the base branch at 1d1b9f0. For more information, please check the job page here. |
|
@FNALbuild run build test |
|
⌛ The following tests have been triggered for dc28811: build (Build queue - API unavailable) |
|
☀️ The build tests passed at dc28811.
N.B. These results were obtained from a build of this Pull Request at dc28811 after being merged into the base branch at 1d1b9f0. For more information, please check the job page here. |
Sub-PR with only Stickman geometry update, separated from PR #1794
Suggested changes from PR#1794 were applied. Response details see PR #1794
===========================================
This pull request introduces support for a new production target geometry called "Stickman_v_1_0" to the Mu2e simulation framework. The changes include the implementation of the new target's construction logic, integration into the geometry selection mechanism, and the addition of a configuration file describing the Stickman geometry. The update ensures the new target can be selected and constructed in the same way as existing targets, such as "Hayman_v_2_0".
Support for new "Stickman_v_1_0" production target:
ProductionTarget_Stickman_v1_0.txtdescribing all parameters for the Stickman target, including plates, rods, spacers, support rings, and support wheel features.makeStickman_v_1_0method inProductionTargetMakerto build the new target from configuration, including all relevant geometry and support features.ProductionTargetMaker.hhand exposed a corresponding static method for construction.Integration into geometry selection and construction:
ProductionTargetMaker.ccandGeometryService.ccto recognize and construct the Stickman target when requested in the configuration, with appropriate error handling for unknown target types. [1] [2]constructPS.ccto handle the new Stickman target in the same way as other supported targets.Default geometry configuration update:
geom_run1_a.txt) to use the new Stickman target instead of the Hayman target.