-
Notifications
You must be signed in to change notification settings - Fork 11
Removal of detrimental dependency of sbnobj::Common_CRT #150
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
base: develop
Are you sure you want to change the base?
Removal of detrimental dependency of sbnobj::Common_CRT #150
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Removes unnecessary dependency between sbnobj::Common_CRT and larcorealg::Geometry that was causing ROOT loading failures, and restores inline initialization of data members in sbn::crt::CRTPMTMatching to prevent uninitialized data.
- Removed unused
larcorealg/Geometry/GeometryCore.hinclude fromCRTHitT0TaggingInfo.hh - Replaced
larcorealg::Geometrylibrary dependency withlarcoreobj::headersin CMakeLists.txt - Restored inline initialization for all data members in
MatchedCRTandCRTPMTMatchingstructs
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| sbnobj/Common/CRT/CRTHitT0TaggingInfo.hh | Removed unused GeometryCore.h include that was causing ROOT loading failures |
| sbnobj/Common/CRT/CMakeLists.txt | Updated library dependencies to remove larcorealg::Geometry and use larcoreobj::headers instead |
| sbnobj/Common/CRT/CRTPMTMatching.hh | Restored inline initialization for all data members in MatchedCRT and CRTPMTMatching structs |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
|
Ouch! The initialized variables might explain the differences we saw! Thanks Gianluca for this huge bug fix! |
francescopoppi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
needless to say! Uninitialized variables are probably the culprits for the very reason we found the dependency issues!
|
trigger build LArSoft/lar*@LARSOFT_SUITE_v10_11_01 |
|
✔️ CI build for LArSoft Succeeded on slf7 for c14:prof -- details available through the CI dashboard |
|
✔️ CI build for LArSoft Succeeded on slf7 for e26:prof -- details available through the CI dashboard |
|
❌ 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 |
|
❌ 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 |
|
❌ 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 |
|
❌ 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 |
|
@PetrilloAtWork , got this failure on the SBND CI: I tried adding the following line to -- summoning @henrylay97 to comment on this? |
|
Odd one this, @kjplows could you clarify what line you added to The original compile error is odd though because it is complaining about a header in I was able to fix this by adding |
|
Ah, sorry! Perils of late-night comments.. |
aheggest
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @PetrilloAtWork for catching that these variables were left uninitialized! I approve these changes.
|
trigger build LArSoft/lar*@LARSOFT_SUITE_v10_12_02 |
|
✔️ CI build for LArSoft Succeeded on slf7 for c14:prof -- details available through the CI dashboard |
|
✔️ CI build for LArSoft Succeeded on slf7 for e26:prof -- details available through the CI dashboard |
|
❌ 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 |
|
❌ 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 |
|
❌ 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 |
|
❌ 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 , would Henry's fix be appropriate? |
This branch provides two different, unrelated maintenance changes:
sbnobj::Common_CRTfromlarcorealg::Geometrysbn::crt::CRTPMTMatchingdata membersExplanations follow.
This PR is based on
developofsbnobj. It is also needed by ICARUS, which is not up to date with thissbnobjversion (aroundv10_11_00, while ICARUSdevelopis stuck atv10_06_xx).Reviewers:
Dependency of
sbnobj::Common_CRTfromlarcorealg::Geometrysbnobj/Common/CRT/CRTHitT0TaggingInfo.hhused to include onlarcorealg/Geometry/GeometryCore.hfor no reason, and, accordingly, thesbnobj::Common_CRTlibrary was linked tolarcorealg::Geometry.Whenever ROOT (interactive) is requested a CRT data class (
sbn::crt::CRTHit,sbn::crt::CRTHitT0TaggingInfo... anything in that library), it loadssbnobj::Common_CRTlibrary, then loadslarcorealg::Geometryand its headerGeometryCore.h.Currently ROOT is not able to load that header, with the error:
and therefore fails to load the
sbn::crtclass.This inclusion and link is likely a residual from earlier versions of the class, but it is superfluous now.
So I removed it.
Initialisation of
sbn::crt::CRTPMTMatchingFor an unknown reason, the inline initialisation of the data members of
sbn::crt::CRTPMTMatchingwas commented out during the move fromicaruscodetosbnobj.I am restoring them, since we do not want uninitialised data wandering across our data files.
I am calling for a review by @aheggest, who led the move in 2023, in case she remembers a rationale behind that choice.