Skip to content

Tracker jobs: do not schedule Extracted.fcl's KLPath - #24

Merged
brownd1978 merged 1 commit into
Mu2e:mainfrom
RobMina:skip-extracted-klpath
Oct 22, 2026
Merged

brownd1978 merged 1 commit into
Mu2e:mainfrom
RobMina:skip-extracted-klpath

Conversation

@RobMina

@RobMina RobMina commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Companion to Mu2e/Production#587, which adds a second trigger path KLPath (RecoPath + the production KLFilter)
to JobConfig/reco/Extracted.fcl and JobConfig/recoMC/Extracted.fcl, so the track decision is recorded in
TriggerResults while the output keeps every event.

Tracker/TrkRecoFromDigi.fcl and Tracker/TrkRecoFromDigiMC.fcl include those files and then replace RecoPath
with a tracker-only sequence. KLPath, expanded from the full Extracted RecoPath, still carries the calorimeter
and CRV modules, and art rejects the schedule (Module KKLine on paths KLPath, RecoPath depends on Module CaloClusterMaker on path KLPath, exit 9). Both files now set physics.trigger_paths : [ RecoPath ] after their
RecoPath; TrkRecoFromFragments and the TrkSHD* jobs include them and inherit it. Combined_Pass1 sets its own
trigger_paths and is unaffected.

The line is harmless before Production#587 merges (trigger_paths is [ RecoPath ] there already), so this can
merge first.

Schedule build (-n 0), Offline nightly 813ec61e0, Production at #587 head:

job PassN main this PR
TrkRecoFromDigi 9 0
TrkRecoFromDigiMC 9 0
TrkRecoFromFragments 9 0

(TrkSHD* fail on StrawHitDiag not built in the nightly, Combined_Pass1 at endJob on geometry with 0 events, in
both columns and with Production main as well.)

🤖 Generated with Claude Code

@oksuzian oksuzian left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

PR Review Summary — #24

Reviewed at head 1bef26d419ae9d512f2c6a40a8664c165bdad160. First pass.

Decision

  • 🟢 approve

Scope understood

  • Companion to Mu2e/Production#587, which adds a KLPath (Extracted RecoPath plus the production KLFilter) to reco/ and recoMC/Extracted.fcl and appends it to trigger_paths.
  • Tracker/TrkRecoFromDigi.fcl and Tracker/TrkRecoFromDigiMC.fcl include those files and then replace RecoPath with a tracker-only sequence, so the inherited KLPath still carries the calorimeter and CRV modules and art rejects the schedule. This PR sets physics.trigger_paths : [ RecoPath ] in both files, so KLPath is defined but never scheduled.

Findings

  1. ⚪ [S3] Question: is it intended that the PassN tracker outputs do not carry the KLPath decision? These jobs produce the KPP cosmic data whose scanning motivates Production#587. If the decision is wanted here, physics.KLPath : [ @sequence::physics.RecoPath, KLTrackFilter ] must come after the last RecoPath redefinition, which for TrkRecoFromFragments is in TrkRecoFromFragments_epilog.fcl (it prepends makeSD and EWMProducer). The name-based trigger_paths line here has no such ordering trap, so it is a fine default. Not a blocker.

Verified

  • 🟢 The fix works. A 0-event schedule build (mu2e -n 0) of TrkRecoFromDigi, TrkRecoFromDigiMC and TrkRecoFromFragments with Production#587 at fe97418d exits 9 with the cross-path data-dependency error on PassN main (037b923d), and exits 0 with this PR. All six combinations exit 0 with Production main (ac5d9c91). Offline and mu2e-trig-config came from the CI build of Offline bb141c56.
  • 🟢 It is a no-op before Production#587. fhicl-dump of all five tracker jobs and Combined_Pass1.fcl with Production main is identical between PassN main and this PR, apart from the input-path header line.
  • 🟢 With Production#587, the only difference this PR makes to the dumps of TrkRecoFromDigi, TrkRecoFromDigiMC, TrkRecoFromFragments, TrkSHDFromDigi and TrkSHDFromDigiMC is trigger_paths, which becomes [ "RecoPath" ]. end_paths stays [ "EndPath" ] and both output modules keep SelectEvents : [ "RecoPath" ]. Nothing in PassN refers to KLPath or KLTrackFilter, so no consumer loses an input.
  • 🟢 Because trigger_paths holds path names, the later RecoPath redefinitions in TrkRecoFromFragments_epilog.fcl and the TrkSHD* files inherit the fix without further edits.
  • 🟢 Combined_Pass1.fcl is unaffected: it sets its own trigger_paths, and its dump is identical between PassN main and this PR with Production#587.

Validation check

  • Build/tests run: the fhicl-dump comparisons and 0-event schedule builds above. No events were processed. The TrkSHD* jobs were dumped but not schedule-built, because StrawHitDiag is not in the Offline build. PassN has no CI.
  • Config contract check: pass.
  • Cross-repo consistency: pass. This PR must merge before or together with Production#587. It is safe to merge first.

Residual risk

  • None beyond the question above. User configs outside PassN that include Extracted.fcl and redefine RecoPath need the same treatment once Production#587 merges. Production#587 already says so in a comment next to KLPath.

@brownd1978
brownd1978 merged commit 0415929 into Mu2e:main Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants