Skip to content

Updates for Run 1B reco studies#1894

Open
michaelmackenzie wants to merge 5 commits into
Mu2e:mainfrom
michaelmackenzie:Run1BReco
Open

Updates for Run 1B reco studies#1894
michaelmackenzie wants to merge 5 commits into
Mu2e:mainfrom
michaelmackenzie:Run1BReco

Conversation

@michaelmackenzie

Copy link
Copy Markdown
Contributor

This updates reconstruction elements, focusing on needs for Run 1B work. This includes:

  • Updating TZClusterFinder to only output time clusters matched to calorimeter clusters if requested
  • Adding flexibility to the calo cluster-centered line time cluster finder, adding hit energy selection options, and updating the prolog defaults
  • Adding optional calorimeter cluster association to CosmicTrackSeeds
  • Updating SelectReco to persist information related to time cluster inputs

These updates will allow for:

  • Time cluster information access at the ntuple stage
  • Proton rejection (selection) in CalLineTimeClusterFinder clusters
  • Studies using the cosmic track seed to easily access the associated calorimeter cluster

I will make a corresponding PR to Production, which will include adding a proton line-finding sequence for Run 1B to both use as a veto in electron cluster searches and for high KE proton tail measurement studies. With this we can also more easily test using the TZ time cluster finder in these sequences, particularly for cosmic line finding, without the high CPU cost associated with fitting all lines in the event.

@FNALbuild

Copy link
Copy Markdown
Collaborator

Hi @michaelmackenzie,
You have proposed changes to files in these packages:

  • CommonReco
  • CommonMC
  • RecoDataProducts
  • CosmicReco
  • CalPatRec

which require these tests: build.

@Mu2e/write, @Mu2e/fnalbuild-users have access to CI actions on main.

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

About FNALbuild. Code review on Mu2e/Offline.

@FNALbuild

Copy link
Copy Markdown
Collaborator

☔ The build tests failed for e55e979.

Test Result Details
test with Command did not list any other PRs to include
merge Merged e55e979 at 692e0df
build (prof) Log file. Build time: 08 min 45 sec
ceSimReco Log file. Return Code 9.
g4test_03MT Log file.
transportOnly Log file.
POT Log file.
g4study Log file.
cosmicSimReco Log file.
cosmicOffSpill Log file. Return Code 9.
ceSteps Log file.
ceDigi Log file. Return Code 9.
muDauSteps Log file.
ceMix Log file. Return Code 9.
rootOverlaps Log file.
g4surfaceCheck Log file.
trigger Log file.
check_cmake Log file.
FIXME, TODO ➡️ TODO (0) FIXME (2) in 6 files
clang-tidy ➡️ 10 errors 201 warnings
whitespace check no whitespace errors found

N.B. These results were obtained from a build of this Pull Request at e55e979 after being merged into the base branch at 692e0df.

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.

@michaelmackenzie

Copy link
Copy Markdown
Contributor Author

@FNALbuild run build test with Mu2e/Production#558

@FNALbuild

Copy link
Copy Markdown
Collaborator

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

@FNALbuild

Copy link
Copy Markdown
Collaborator

☔ The build tests failed for e55e979.

Test Result Details
test with Included Mu2e/Production#558 @ 07c7c0ed4c63ef9ee35d541cb9aa68e4a21d161c by merge
merge Merged e55e979 at 692e0df
build (prof) Log file. Build time: 04 min 26 sec
ceSimReco Log file.
g4test_03MT Log file.
transportOnly Log file.
POT Log file.
g4study Log file.
cosmicSimReco Log file.
cosmicOffSpill Log file. Return Code 9.
ceSteps Log file.
ceDigi Log file. Return Code 9.
muDauSteps Log file.
ceMix Log file. Return Code 9.
rootOverlaps Log file.
g4surfaceCheck Log file.
trigger Log file.
check_cmake Log file.
FIXME, TODO ➡️ TODO (0) FIXME (2) in 6 files
clang-tidy ➡️ 10 errors 201 warnings
whitespace check no whitespace errors found

N.B. These results were obtained from a build of this Pull Request at e55e979 after being merged into the base branch at 692e0df.

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.

@michaelmackenzie

Copy link
Copy Markdown
Contributor Author

@FNALbuild run build test with Mu2e/Production#558

@FNALbuild

Copy link
Copy Markdown
Collaborator

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

@FNALbuild

Copy link
Copy Markdown
Collaborator

☀️ The build tests passed at e55e979.

Test Result Details
test with Included Mu2e/Production#558 @ e907cbc4905e34740290fc5390fd78c6f15d437a by merge
merge Merged e55e979 at 692e0df
build (prof) Log file. Build time: 04 min 18 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.
trigger Log file.
check_cmake Log file.
FIXME, TODO ➡️ TODO (0) FIXME (2) in 6 files
clang-tidy ➡️ 10 errors 201 warnings
whitespace check no whitespace errors found

N.B. These results were obtained from a build of this Pull Request at e55e979 after being merged into the base branch at 692e0df.

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
oksuzian requested a review from brownd1978 July 20, 2026 21:21
@oksuzian

Copy link
Copy Markdown
Collaborator

S1 (blocker) — TimeClusterCollections is a required FHiCL key with no default, set by no shipped config. SelectReco/SelectRecoMC declare it as a mandatory
fhicl::Sequence (no default), but nothing in Offline or Production main sets it. This PR's own CI shows the consequence: the Offline-alone build failed
ceSimReco/cosmicOffSpill/ceDigi/ceMix with Missing parameters: TimeClusterCollections, and only passed once re-run paired with Production#558 — so the green status here
is a paired build, not main+this PR. Merged alone (or ahead of #558), all reco/digi/recoMC + trigger-MC jobs die at startup. Fix: give the key an empty-sequence
default (std::vectorart::InputTag()) — makes it opt-in, green standalone, and covers out-of-tree configs (TrkAna/EventNtuple/user decks) that #558 doesn't patch.

S2 — SelectRecoMC uses getValidHandle where SelectReco uses getHandle+isValid(). A configured-but-absent time-cluster collection is skipped in reco but throws in the MC
job. Match them (getHandle+isValid() in SelectRecoMC).

S2 — LineFinder caches art::Handle/product pointer as module members (_cccol, _cccolH). Correct today (refreshed each event) but against the
don't-cache-handles-across-events rule and blocks thread-safety — prefer per-event locals passed into addClusterToSeed.

S2 (confirm intent) — CalTimeClusterFinder prolog flips ComboHitCollectionLabel: makeSH → makePH and StoppingTargetRadius: 150 → 200 (plus enables the 3 keV electron
cut). Not in the nominal RecoPath, so contained to the Run 1B line finder — but nothing in the code forces these, so please confirm they're deliberate for all users of
that block.

Nits: SelectReco output is keyed on InputTag::label() only (collision if two tags share a label — key on the full tag); the requireCCs erase intentionally leaves iiTC
counts ahead of the emitted collection (worth a note); add a unit annotation to StrawEDepMax.

@FNALbuild

Copy link
Copy Markdown
Collaborator

📝 The HEAD of main has changed to 474fa9a. Tests are now out of date.

@michaelmackenzie

Copy link
Copy Markdown
Contributor Author

Responding to the (second) AI review:

I think making defaults in the C++ is not preferred unless it is something that the user by default shouldn't need to think about (e.g. turning on diagnostic printouts), and I think selecting the reco payload should be an explicit requirement in the module configuration. I don't see where the CommonReco table is defined in prolog? Or is this a suggestion to create?

I updated to skip missing collections in both cases.

the LineFinder handle-caching, and the label()-keyed output (not triggered here since
#558's three tags are distinct labels, but still latent).

This style is used in other places, I don't believe it's disallowed. I don't think we should assume identical collection tags would be passed.

Two things #558 clarifies in the author's favor:

These choices were intentional. We use the combo hit collection in CalTimeClusterFinder and should use the same collection for proton time clusters. The overlapping straw hit edep ranges were also intentional to preserve hit efficiencies in the two cases. And it's intentional to not change the time cluster counting in TZClusterFinder that would be used for the luminosity stream, but reduce the collection output to the next reco stage if requested.

@oksuzian

Copy link
Copy Markdown
Collaborator

@FNALbuild run build test

@FNALbuild

Copy link
Copy Markdown
Collaborator

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

@FNALbuild

Copy link
Copy Markdown
Collaborator

☔ The build tests failed for 6727ac6.

Test Result Details
test with Command did not list any other PRs to include
merge Merged 6727ac6 at 8295de4
build (prof) Log file. Build time: 04 min 19 sec
ceSimReco Log file. Return Code 9.
g4test_03MT Log file.
transportOnly Log file.
POT Log file.
g4study Log file.
cosmicSimReco Log file.
cosmicOffSpill Log file. Return Code 9.
ceSteps Log file.
ceDigi Log file. Return Code 9.
muDauSteps Log file.
ceMix Log file. Return Code 9.
rootOverlaps Log file.
g4surfaceCheck Log file.
trigger Log file.
check_cmake Log file.
FIXME, TODO ➡️ TODO (0) FIXME (2) in 6 files
clang-tidy ➡️ 10 errors 201 warnings
whitespace check no whitespace errors found

N.B. These results were obtained from a build of this Pull Request at 6727ac6 after being merged into the base branch at 8295de4.

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.

@michaelmackenzie

Copy link
Copy Markdown
Contributor Author

@FNALbuild run build test with Mu2e/Production#558

@FNALbuild

Copy link
Copy Markdown
Collaborator

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

@FNALbuild

Copy link
Copy Markdown
Collaborator

☀️ The build tests passed at 6727ac6.

Test Result Details
test with Included Mu2e/Production#558 @ e907cbc4905e34740290fc5390fd78c6f15d437a by merge
merge Merged 6727ac6 at 8295de4
build (prof) Log file. Build time: 04 min 19 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.
trigger Log file.
check_cmake Log file.
FIXME, TODO ➡️ TODO (0) FIXME (2) in 6 files
clang-tidy ➡️ 10 errors 201 warnings
whitespace check no whitespace errors found

N.B. These results were obtained from a build of this Pull Request at 6727ac6 after being merged into the base branch at 8295de4.

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.

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.

3 participants