Skip to content

This PR introduces CRT Tagging usage into cafs for analyzers #536

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
May 1, 2025

Conversation

francescopoppi
Copy link
Contributor

@francescopoppi francescopoppi commented Apr 24, 2025

This Pull request introduces the CRTHit tagging into CAF, so that ICARUS analyzers can use relevant information for out of time rejection.
This PR uses an existing SR and Fill function which have been modified accordingly.
This PR needs a new dependence on this PR for sbnanaobj:
SBNSoftware/sbnanaobj#139

…g the usage of CRTT0Tagged tracks for analysis and out of time cosmic rejection
@francescopoppi francescopoppi added the enhancement New feature or request label Apr 24, 2025
@francescopoppi francescopoppi self-assigned this Apr 24, 2025
Copy link
Contributor

@gputnam gputnam left a comment

Choose a reason for hiding this comment

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

Approved, modulo this change.

…ak withcout a check on the hitmatchinfo size
@francescopoppi
Copy link
Contributor Author

Request from @gputnam addressed


// note: in the ICARUS case we do not need a slice_tag_stuff for CRTHitMatch as it is
// common to East and West
/*
art::FindManyP<anab::T0> fmCRTHitMatch =
FindManyPStrict<anab::T0>(slcTracks, evt,
fParams.CRTHitMatchLabel() + slice_tag_suff);
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm hesitant to just get rid off the slice_tag_suff, as I suspect SBND may need it. Summoning @henrylay97 to comment on this

Copy link
Member

Choose a reason for hiding this comment

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

Could anybody explain how SBND stores the tracks? ICARUS splits them in two data products by their cryostat, which I assume SBND does not.

Copy link
Member

Choose a reason for hiding this comment

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

At SBND we store our tracks as a single collection - due to the fact we have just one cryostat. So we don't use the suffix approach.

@kjplows kjplows requested a review from henrylay97 April 24, 2025 18:40
Copy link
Member

@PetrilloAtWork PetrilloAtWork left a comment

Choose a reason for hiding this comment

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

It looks like there are three points to address:

  1. Whether SBND needs the suffix on CRT data product tag.
  2. The strategy for identifying the location of a hit.
  3. The support for multiple CRT hits associated to the same track.

Possibly some off-GitHub discussion is needed too.

@@ -275,7 +275,13 @@ namespace caf
Atom<string> CRTHitMatchLabel {
Name("CRTHitMatchLabel"),
Comment("Base label of track to CRT hit matching producer."),
"pandoraTrackCRTHit"
"CRTT0Tagging"
Copy link
Member

Choose a reason for hiding this comment

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

I recommend the default value not to be silently changed.
Is SBND already using this feature? if so, do they abide either to the old default, or to the newly proposed one?

Copy link
Member

Choose a reason for hiding this comment

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

So I agree with Gianluca on the general principle.

Although for this scenario it is okay for SBND. We use the CRTSpacePoint matching rather than CRTHit we also have different methods for the track matching products so I think we are totally factorised from each other here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

silent change reverted.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

but I will also have to change the carmaker icarus definitions (which I should do anyway)


// note: in the ICARUS case we do not need a slice_tag_stuff for CRTHitMatch as it is
// common to East and West
/*
art::FindManyP<anab::T0> fmCRTHitMatch =
FindManyPStrict<anab::T0>(slcTracks, evt,
fParams.CRTHitMatchLabel() + slice_tag_suff);
Copy link
Member

Choose a reason for hiding this comment

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

Could anybody explain how SBND stores the tracks? ICARUS splits them in two data products by their cryostat, which I assume SBND does not.

Copy link
Member

@henrylay97 henrylay97 left a comment

Choose a reason for hiding this comment

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

In general this looks fine from an SBND point of view. Our CRT reconstruction uses different objects to ICARUS and therefore the CAF filling is completely factorised for the two experiments. Nothing Francesco does here will impact us. I would like to see that verified in the CI tests once this PR is ready to be tested.

I will leave others (as Gianluca already has) to comment on the implementation details.

@@ -275,7 +275,13 @@ namespace caf
Atom<string> CRTHitMatchLabel {
Name("CRTHitMatchLabel"),
Comment("Base label of track to CRT hit matching producer."),
"pandoraTrackCRTHit"
"CRTT0Tagging"
Copy link
Member

Choose a reason for hiding this comment

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

So I agree with Gianluca on the general principle.

Although for this scenario it is okay for SBND. We use the CRTSpacePoint matching rather than CRTHit we also have different methods for the track matching products so I think we are totally factorised from each other here.


// note: in the ICARUS case we do not need a slice_tag_stuff for CRTHitMatch as it is
// common to East and West
/*
art::FindManyP<anab::T0> fmCRTHitMatch =
FindManyPStrict<anab::T0>(slcTracks, evt,
fParams.CRTHitMatchLabel() + slice_tag_suff);
Copy link
Member

Choose a reason for hiding this comment

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

At SBND we store our tracks as a single collection - due to the fact we have just one cryostat. So we don't use the suffix approach.

@francescopoppi
Copy link
Contributor Author

Addressed the requests from @PetrilloAtWork, but I would like clarification on the point:
The strategy for identifying the location of a hit.
What do you mean exactly?

@gputnam gputnam self-requested a review April 28, 2025 20:52
Copy link
Member

@PetrilloAtWork PetrilloAtWork left a comment

Choose a reason for hiding this comment

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

Thank you for the clarifications.
I would just remove the code commented out, since it is not good for SBND and it is not good for ICARUS, and it never was.

@kjplows kjplows moved this from Open pull requests to Testing in SBN software development Apr 29, 2025
@kjplows
Copy link
Contributor

kjplows commented Apr 29, 2025

trigger build

@FNALbuild
Copy link

✔️ CI build for LArSoft Succeeded on slf7 for c14:prof -- details available through the CI dashboard

@FNALbuild
Copy link

✔️ CI build for LArSoft Succeeded on slf7 for e26:prof -- details available through the CI dashboard

@FNALbuild
Copy link

❌ CI build for SBND Failed at phase build SBND on slf7 for e26:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build SBND phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link

❌ CI build for SBND Failed at phase build SBND on slf7 for c14:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build SBND phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link

❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for c14:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link

❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for e26:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build ICARUS phase logs

parent CI build details are available through the CI dashboard

@PetrilloAtWork PetrilloAtWork self-requested a review April 29, 2025 17:37
Copy link
Member

@PetrilloAtWork PetrilloAtWork left a comment

Choose a reason for hiding this comment

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

Approved!

@kjplows
Copy link
Contributor

kjplows commented Apr 29, 2025

trigger build LArSoft/lar*@LARSOFT_SUITE_v10_05_00 SBNSoftware/sbnanaobj#139

@FNALbuild
Copy link

✔️ CI build for LArSoft Succeeded on slf7 for c14:prof -- details available through the CI dashboard

@FNALbuild
Copy link

❌ CI build for SBND Failed at phase build SBND on slf7 for c14:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build SBND phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link

❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for c14:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link

✔️ CI build for LArSoft Succeeded on slf7 for e26:prof -- details available through the CI dashboard

@FNALbuild
Copy link

❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for e26:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link

⚠️ CI build for SBND Warning at phase ci_tests SBND on slf7 for e26:prof - ignored warnings for build -- details available through the CI dashboard

🚨 For more details about the warning phase, check the ci_tests SBND phase logs

parent CI build details are available through the CI dashboard

@kjplows
Copy link
Contributor

kjplows commented May 1, 2025

trigger build LArSoft/lar*@LARSOFT_SUITE_v10_05_00 SBNSoftware/sbnanaobj#139

@FNALbuild
Copy link

✔️ CI build for LArSoft Succeeded on slf7 for c14:prof -- details available through the CI dashboard

@FNALbuild
Copy link

✔️ CI build for LArSoft Succeeded on slf7 for e26:prof -- details available through the CI dashboard

@FNALbuild
Copy link

❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for c14:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link

❌ CI build for SBND Failed at phase build SBND on slf7 for c14:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build SBND phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link

❌ CI build for ICARUS Failed at phase build ICARUS on slf7 for e26:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build ICARUS phase logs

parent CI build details are available through the CI dashboard

@FNALbuild
Copy link

❌ CI build for SBND Failed at phase build SBND on slf7 for e26:prof -- details available through the CI dashboard

🚨 For more details about the failed phase, check the build SBND phase logs

parent CI build details are available through the CI dashboard

@kjplows
Copy link
Contributor

kjplows commented May 1, 2025

checked merge diff manually and no impact is made on the CRT Tagging info. Weird how the CI didn't seem to pick up sbnanaobj/#139 .

Built on sbndbuild03 with both branches so given this passed CI before merge commit this is approved

@kjplows kjplows moved this from Testing to To merge in SBN software development May 1, 2025
@kjplows kjplows merged commit afb8350 into release/Mar25Production May 1, 2025
2 of 6 checks passed
@github-project-automation github-project-automation bot moved this from To merge to Done in SBN software development May 1, 2025
@kjplows kjplows moved this from Done to Recently done in SBN software development May 1, 2025
@kjplows kjplows moved this from Recently done to Done in SBN software development May 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

6 participants