Repository navigation
Run the offSpill CentralHelix fit with BField correction - #583
Conversation
|
☀️ The build tests passed at 2bca2e6.
N.B. These results were obtained from a build of this Pull Request at 2bca2e6 after being merged into the base branch at 0d1c370. For more information, please check the job page here. |
oksuzian
left a comment
There was a problem hiding this comment.
PR Review Summary — #583
Reviewed at head 2bca2e6ce0808a7cf884b40d09ffd0156bc3e486. first pass
Decision
- 🟢 approve. The settings resolve where intended and pass Offline's config checks. One comment, about the field-file switch reaching every KinKal fit in the job, is worth a line in the PR before the nightly reference is reset.
Scope understood
- Nightly validation only.
Validation/offSpill.fclturns onBFieldCorrectionfor theKKCHmufit and extension, sets the two KinKal stability settings from Offline#2021 (MinDomainTimeStep0.03 ns,DomainMargin0), and switches the job tobfgeom_v01_minfield.txt, which is v01 plusbfield.minUsableField = 1e-6T. - No production config changes. The prodtools campaign files name
JobConfig/recoMC/OffSpill.fcl, neverValidation/offSpill.fcl.
Findings
- 🟡 [S2] The field-file switch is job-wide, so the "one-time comparison failure" may include the LoopHelix fits, not only
KKCHmu.- Evidence:
services.GeometryService.bFieldFilefeedsBFieldConfig::minUsableField(GeometryService/src/BFieldConfigMaker.cc:50at Offline mainf122c5b3). EveryKKBFieldpasses it toKinKal::BFieldMap:CentralHelixFit_module.cc:254,LoopHelixFit_module.cc:257,RegrowLoopHelix_module.cc:216andKinematicLineFit_module.cc:237. The dump of this job hasKKDe,KKDmu,KKUe,KKUmu,RegrowLHandKKLinebesideKKCHmu, and all four LoopHelix fits already run withBFieldCorrection: true. WithminUsableField > 0,BFieldMap::protecting()is true. An unusable field sample then hands off to free-particle continuation instead of failing the fit (Fit/Track.hhreturn bfield_.protecting()paths in #224). The new comment describes the settings as "run the CentralHelix fit ... with BField correction", and the PR body attributes the expected failure to that. - Impact:
offSpillis the nightly job that validates the LoopHelix fits on cosmics, as its own header says. If those histograms move too, the reference reset would absorb a LoopHelix change that nobody named. If they do not move, saying so costs one sentence. - Suggested fix: state in the PR which histogram sets changed in your test, LoopHelix included. If you would rather keep the LoopHelix fits on the stock map, that needs a per-module setting, which does not exist today. The PR as written is a reasonable choice. It just needs to be said.
- Evidence:
Verified
- 🟢 Every key exists and lands where intended.
fhicl-dumpofValidation/offSpill.fclat this head, against Offline mainf122c5b3, gives rc 0. Diffed against Production main, the only changes areBFieldCorrection,DomainMarginandMinDomainTimeStepinKKCHmu.FitSettingsandKKCHmu.ExtensionSettings, plusbFieldFile. All three keys are inMu2eKinKal::KinKalConfig(KKFitSettings.hh:36,39,40).DomainMarginis anOptionalAtom, so setting 0 confines the domains and passes the>= 0check (KKFitSettings.cc:29). - 🟢 Offline's guard is satisfied.
KKExtrap::checkConfigthrows when bfcorr is on andMinDomainTimeStepexceedsExtrapolationSettings.MaxDtStep.KKCHmuhasMaxDtStep: 1, and 0.03 is well under it. - 🟢 The values have a source. 0.03 ns, margin 0 and 1e-6 T are the settings validated on 98k Run-2 cosmic events in Offline#2021 and KinKal#224, and both are merged. This PR is the first consumer of
bfgeom_v01_minfield.txt, which answers the "no consumer" note from my #2021 review for that file.bfgeom_v01_minfield0p3.txtis still unused. - 🟢 No conflict with #582. Both PRs edit
Validation/offSpill.fcl. The merged tree is clean, and its dump carries both changes with nothing else.
Validation check
- Build/tests run: FNALbuild passed at this head. No buildtest job runs
Validation/offSpill.fcl;cosmicOffSpillis the digitize step. Locally I ranfhicl-dumpat main, at this head and merged with #582 (claude-scratch/pr583_582_review/fcldump.sh). No art job was run. The inputs are on tape over xrootd, and I have no valid token, so the "only CentralHelix moves" question is not checked. - Config contract check: pass.
- Cross-repo consistency: pass. Offline#2021 is merged, and the field file and keys are on Offline main.
Residual risk
- Validation only; no campaign uses this file.
- Per #2021, bfcorr loses about 9% of CentralHelix tracks. The
KKCHmuhistograms will shift by design.
Author follow-ups
- Say whether the LoopHelix histograms in
offSpillalso change (finding 1).
brownd1978
left a comment
There was a problem hiding this comment.
Can you look at the OffSpill nightly validation plots to make sure this behaves as expected?
|
Checking the nightly val plots: https://mu2e-exp.fnal.gov/computing/ops/val/valJob2/nightly/2026_10/20/offSpill/result.html These results seem reasonable to me. The nightly val plots don't show residuals vs truth, but those were presented in eg. https://mu2e-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=57496 and are much better with B field correction than without. |
Now that Mu2e/Offline#2021 is merged, it is possible to fit & extrapolate CentralHelix cosmic muon tracks with B field correction enabled. This PR enables this setting and the relevant config parameters in the nightly validation.
When merged, this will cause a one-time val histogram comparison failure.