Skip to content

Merge main into MDC2020: keep MDC2020 physics pins, adopt single-stream digitization output#546

Open
Copilot wants to merge 242 commits into
MDC2020from
copilot/merge-main-into-mdc2020
Open

Merge main into MDC2020: keep MDC2020 physics pins, adopt single-stream digitization output#546
Copilot wants to merge 242 commits into
MDC2020from
copilot/merge-main-into-mdc2020

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 30, 2026

This PR brings main forward into MDC2020 while preserving MDC2020 campaign-specific physics artifacts (geometry pins, CRV prolog variants, validation stops files, run numbers). It also intentionally replaces the legacy MDC2020 two-stream digitization output model with main/MDC2025 single-stream Output and updates downstream config/scripts accordingly.

  • Merge intent and conflict policy

    • Integrated main changes into MDC2020.
    • Resolved campaign-pin conflicts in favor of MDC2020 values.
    • Resolved digitization output architecture conflicts in favor of main single-stream model.
  • MDC2020 physics pins preserved

    • Kept geom_common_MDC2020*/geom_common_extracted_MDC2020* usage in validation/common/cosmic extracted paths.
    • Kept non-_v11 CRV prolog includes in digitize/pileup/primary/reco/recoMC prologs.
    • Kept validation muon-stops inputs on sim.brownd.MuminusStops.MDC2020d.001202_00000000.art.
    • Kept MDC2020 firstRun values (1200/1202 where applicable), avoiding 1430.
  • Single-stream digitization architecture adoption

    • Standardized on Digitize.Output / Digitize.Outputs : { Output : ... }.
    • Removed all TriggeredOutput / TriggerableOutput references repository-wide.
    • Updated dependent validation configs, nightly configs, campaign config, generation scripts, and merge filter overrides to target outputs.Output.
  • Mainline functionality retained

    • Included extracted-geometry epilog refactor (epilog_Extracted.fcl include flow).
    • Kept trigger/calorimeter path and trigger-product updates from main.
    • Kept reco/recoMC product/tag/filename evolutions from main (including NoField naming and CRV matching updates).
# single-stream selection (OnSpill-style)
physics.trigger_paths : [ "DigitizePath", @sequence::physics.TriggerableBits, @sequence::Trig_physMenu.trigger_paths]
outputs.Output.SelectEvents : [ @sequence::Digitize.SignalTriggers, @sequence::physics.TriggerablePaths ]
Original prompt

Goal

Bring all the latest changes from the main branch into the MDC2020 branch (i.e. "merge main back into MDC2020"), while preserving the MDC2020-specific physics artifacts (geometry variants, CRV prolog versions, muon stops input files, and run numbers).

Important exception: For the digitization output-stream architecture, do NOT preserve the MDC2020 two-stream model. Instead, adopt main's single-stream (Output) architecture — the same as MDC2025 — and update every MDC2020 file/script that still references the old two-stream names so the configuration remains consistent and parse-able.

This work targets the MDC2020 branch as the base. (Note: existing PR #545 was opened with base/head reversed — base main, head MDC2020 — which is backwards. This task produces the correct direction: main content merged INTO MDC2020.)

Background: the two competing differences

A diff of main...MDC2020 shows two distinct classes of difference. They must be treated DIFFERENTLY:

Class A — MDC2020 physics pins: MDC2020 side MUST WIN (preserve)

These are intentional MDC2020 campaign pins. Keep the MDC2020 value; do NOT let main overwrite them:

  • Geometry files — keep the *_MDC2020* variants; do NOT reintroduce *_current*:
    • JobConfig/common/epilog.fcl: keep geom_common_MDC2020.txt (not geom_common.txt)
    • Validation/ceDigi.fcl, Validation/ceSimReco.fcl, Validation/ceSteps.fcl, Validation/muDauSteps.fcl, Validation/potSim.fcl: keep geom_common_MDC2020.txt (not geom_common_current.txt)
    • JobConfig/cosmic/geom_cosmic_extracted.txt: keep geom_common_extracted_MDC2020.txt
  • CRV prolog versions — keep the non-_v11 includes (main uses prolog_v11):
    • In JobConfig/digitize/prolog.fcl, JobConfig/pileup/prolog.fcl, JobConfig/primary/prolog.fcl, JobConfig/reco/prolog.fcl, JobConfig/recoMC/prolog.fcl: keep #include "Offline/CRVResponse/fcl/prolog.fcl" and #include "Offline/CRVReco/fcl/prolog.fcl" (NOT the _v11 variants)
  • Muon stops resampler input files (Validation) — keep the MDC2020 validation stops file, NOT the MDC2025ac files from main:
    • Validation/ceSimReco.fcl, Validation/ceSteps.fcl, Validation/muDauSteps.fcl: keep /cvmfs/mu2e.opensciencegrid.org/DataFiles/Validation/sim.brownd.MuminusStops.MDC2020d.001202_00000000.art
  • source.firstRun in the Validation fcls — keep the MDC2020 run numbers (1200/1202), NOT 1430.

Class B — digitization output-stream architecture: main (MDC2025) side WINS (adopt single stream)

On MDC2020 the digitization defines TWO output streams (TriggeredOutput and TriggerableOutput). On main/MDC2025 these are collapsed into a SINGLE Output stream. Adopt the main single-stream model. Concretely:

  • In JobConfig/digitize/prolog.fcl, take main's definitions: a single Digitize.Output producer, Digitize.Outputs : { Output : @local::Digitize.Output }, Digitize.Output.outputCommands, and Digitize.EndPath : [ @sequence::Digitize.EndSequence, Output ]. Remove the MDC2020 TriggeredOutput/TriggerableOutput blocks. Also pull in main's other digitize prolog additions (e.g. EventHeader, IntensityInfo*_LumiBuffer_*, *FilterFraction_*, TrigAprDeKSFMC/TrigAprUeKSFMC instances, trig physMenu includes, ProcessCFOData/cfoDataGen override) — but DO NOT change the CRV prolog include back to _v11 (keep MDC2020 prolog.fcl; see Class A).
  • In JobConfig/digitize/OnSpill.fcl, adopt main's single-stream config: physics.TriggerableBits, physics.trigger_paths using @sequence::physics.TriggerableBits, and outputs.Output.SelectEvents : [@sequence::Digitize.SignalTriggers, @sequence::physics.TriggerablePaths]. Remove the MDC2020 outputs.TriggeredOutput.SelectEvents / outputs.TriggerableOutput.SelectEvents lines. (Be careful: if MDC2020's OnSpill.fcl includes OnSpill_epilog.fcl, reconcile with main, which does not.)
  • Update EVERY remaining file/script on the MDC2020 branch that references TriggeredOutput or TriggerableOutput to use the single Output stream instead. Known references to fix (search the whole repo to be exhaustive — there may be more):
    • Validation/ceMix.fcl (sets outputs.TriggeredOutput.fileName and outputs.TriggerableOutput.fileName)
    • Validation/ceDigi.fcl
    • Validation/cosmicOffSpill.fcl
    • Validation/nightly/MDS/digitize.fcl
    • Validation/nightly/CosmicSimReco/digitizeOffSpill.fcl, Validation/nightly/CosmicSimReco/digitizeOnSpill.fcl
    • Scripts/gen_Digitize.sh
    • Scripts/gen_Mix.sh
    • CampaignConfig/mdc2020_main.cfg
    • data/merge_filter.json
    • Note JobConfig/mixing/Mix.fcl also configures these outputs — reconcile it to single-stream consistent with main.
      For each: where it set the TriggeredOutput filename to the real output and TriggerableOutput to /dev/null (or vice versa), collapse to setting outputs.Output.fileName to the real output and drop the `/dev...

This pull request was created from Copilot chat.

corrodis and others added 30 commits August 24, 2025 14:03
switch ceSimReco to correct filtered stops file
move reco validation to new 2025 dig files
Add calo triggerable path to mixing, remove total calo energy test
@FNALbuild
Copy link
Copy Markdown
Collaborator

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

@FNALbuild
Copy link
Copy Markdown
Collaborator

☔ The build tests failed for 0a342b2.

Test Result Details
test with Command did not list any other PRs to include
merge Merged 0a342b2 at 517366f
build (prof) Log file. Build time: 04 min 12 sec
ceSimReco Log file.
g4test_03MT Log file.
transportOnly Log file.
POT Log file.
g4study Log file.
cosmicSimReco Log file. Return Code 1.
cosmicOffSpill Log file. Return Code 1.
ceSteps Log file.
ceDigi Log file.
muDauSteps Log file.
ceMix Log file.
rootOverlaps Log file.
g4surfaceCheck Log file.
FIXME, TODO TODO (0) FIXME (0) in 0 files
clang-tidy 0 errors 0 warnings

N.B. These results were obtained from a build of this Pull Request at 0a342b2 after being merged into the base branch at 517366f.

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.

@oksuzian
Copy link
Copy Markdown
Collaborator

@FNALbuild run build test

@FNALbuild
Copy link
Copy Markdown
Collaborator

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

@FNALbuild
Copy link
Copy Markdown
Collaborator

☔ The build tests failed for a23e4a8.

Test Result Details
test with Command did not list any other PRs to include
merge Merged a23e4a8 at 517366f
build (prof) Log file. Build time: 08 min 32 sec
ceSimReco Log file.
g4test_03MT Log file.
transportOnly Log file.
POT Log file.
g4study Log file.
cosmicSimReco Log file. Return Code 1.
cosmicOffSpill Log file.
ceSteps Log file.
ceDigi Log file.
muDauSteps Log file.
ceMix Log file.
rootOverlaps Log file.
g4surfaceCheck Log file.
FIXME, TODO TODO (0) FIXME (0) in 0 files
clang-tidy 0 errors 0 warnings

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

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.

@oksuzian
Copy link
Copy Markdown
Collaborator

@FNALbuild run build test

@FNALbuild
Copy link
Copy Markdown
Collaborator

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

@FNALbuild
Copy link
Copy Markdown
Collaborator

☔ The build tests failed for 36d1acf.

Test Result Details
test with Command did not list any other PRs to include
merge Merged 36d1acf at 517366f
build (prof) Log file. Build time: 04 min 13 sec
ceSimReco Log file.
g4test_03MT Log file.
transportOnly Log file.
POT Log file.
g4study Log file.
cosmicSimReco Log file. Return Code 1.
cosmicOffSpill Log file.
ceSteps Log file.
ceDigi Log file.
muDauSteps Log file.
ceMix Log file.
rootOverlaps Log file.
g4surfaceCheck Log file.
FIXME, TODO TODO (0) FIXME (0) in 0 files
clang-tidy 0 errors 0 warnings

N.B. These results were obtained from a build of this Pull Request at 36d1acf after being merged into the base branch at 517366f.

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.

The MDC2020 geometry defines 25 CRV sectors, but reco/prolog.fcl was
left on main's non-_v11 CRVReco prolog (which resolves to prolog_v12,
23 sectors, missing C3/C4). This caused CrvCoincidenceClusterFinder to
abort in cosmicSimReco with "The geometry has a CRV sector for which no
coincidence properties were defined in the fcl file."

Restore the MDC2020 pin reco/prolog.fcl -> CRVReco/fcl/prolog_v11.fcl
(consistent with recoMC/digitize/primary/pileup prologs, which already
keep _v11), and drop the redundant top-level prolog_v11 include from
cosmicSimReco.fcl (a prolog re-include placed after reco/prolog had no
effect on the already-expanded physics.producers).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@oksuzian
Copy link
Copy Markdown
Collaborator

@FNALbuild run build test

@FNALbuild
Copy link
Copy Markdown
Collaborator

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

@FNALbuild
Copy link
Copy Markdown
Collaborator

☀️ The build tests passed at 5f5b476.

Test Result Details
test with Command did not list any other PRs to include
merge Merged 5f5b476 at 517366f
build (prof) Log file. Build time: 04 min 13 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.
FIXME, TODO TODO (0) FIXME (0) in 0 files
clang-tidy 0 errors 0 warnings

N.B. These results were obtained from a build of this Pull Request at 5f5b476 after being merged into the base branch at 517366f.

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.

Restore JobConfig/primary/prolog.fcl -> CRVResponse/fcl/prolog_v11.fcl to
match the MDC2020 branch and stay consistent with the digitize/reco/recoMC/
pileup prologs. primary only uses CrvSteps (version-independent), so this is
parity/safety against CRVReco include-order clobbering, not a functional fix.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.