From a00768e3babafc12953648f6ec62290e84b7b03f Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Tue, 17 Feb 2026 04:47:04 -0600 Subject: [PATCH 01/12] Add tagger and nhits fields to CRT space point representation --- sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx | 4 +++- sbnanaobj/StandardRecord/SRCRTSpacePoint.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx b/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx index fe72e18c..872c8f47 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx +++ b/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx @@ -12,7 +12,9 @@ namespace caf pe(std::numeric_limits::signaling_NaN()), time(std::numeric_limits::signaling_NaN()), time_err(std::numeric_limits::signaling_NaN()), - complete(false) + complete(false), + nhits(std::numeric_limits::lowest()), + tagger(std::numeric_limits::lowest()) {} } // end namespace caf //////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePoint.h b/sbnanaobj/StandardRecord/SRCRTSpacePoint.h index e17175c3..db6d77da 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePoint.h +++ b/sbnanaobj/StandardRecord/SRCRTSpacePoint.h @@ -20,6 +20,8 @@ namespace caf float time; // time [ns] float time_err; // time_err [ns] bool complete; // was cluster made from perpendicular & overlapping strips? + int nhits; // the number of strip hits contributing to the space point + int tagger; // the tagger the space point is on }; } // end namespace From 1e57f4e2943eb4d7b75ac7d2acbbb573e10f6b29 Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Tue, 17 Feb 2026 04:47:55 -0600 Subject: [PATCH 02/12] Add tagger vector field to CRT track representation --- sbnanaobj/StandardRecord/SRSBNDCRTTrack.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h b/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h index 2a2e4d47..a1f8660d 100644 --- a/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h +++ b/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h @@ -22,9 +22,7 @@ namespace caf float time_err; // error in average time [ns] float pe; // total PE; float tof; // time from first space point to last [ns] - - // TODO: Find way of adding taggers field - // std::set taggers; // which taggers were used to create the track + std::vector taggers; // the taggers that were used to create the track }; } // end namespace From 54c36d63220497ae1cd000f96e927a437d49a949 Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Tue, 17 Feb 2026 04:48:14 -0600 Subject: [PATCH 03/12] Update classes_def.xml --- sbnanaobj/StandardRecord/classes_def.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index 007cbb34..3ca9cdc7 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -416,7 +416,8 @@ - + + @@ -424,7 +425,8 @@ - + + From 9a8c195c4fe29ab7ef1a85d7c28e675b16c64acf Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Wed, 18 Feb 2026 06:28:43 -0600 Subject: [PATCH 04/12] Add matched flags for SBND TPC-CRT matching --- sbnanaobj/StandardRecord/SRCRTSpacePointMatch.cxx | 1 + sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h | 1 + sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.cxx | 1 + sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h | 5 +++-- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.cxx b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.cxx index 3b9b671e..a4413e27 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.cxx +++ b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.cxx @@ -7,6 +7,7 @@ namespace caf { SRCRTSpacePointMatch::SRCRTSpacePointMatch(): + matched(false), score(std::numeric_limits::signaling_NaN()) {} } diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h index d3300ce2..dfa7aa0a 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h +++ b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h @@ -14,6 +14,7 @@ namespace caf SRCRTSpacePointMatch(); virtual ~SRCRTSpacePointMatch() {} + bool matched; // whether or not a match was made SRCRTSpacePoint spacepoint; // the spacepoint float score; // assessment of quality of matching (depends on alg configuration) }; diff --git a/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.cxx b/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.cxx index 0121643d..ddeb5b5b 100644 --- a/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.cxx +++ b/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.cxx @@ -7,6 +7,7 @@ namespace caf { SRSBNDCRTTrackMatch::SRSBNDCRTTrackMatch(): + matched(false), score(std::numeric_limits::signaling_NaN()) {} } diff --git a/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h b/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h index cb789a83..d97d7d88 100644 --- a/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h +++ b/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h @@ -14,8 +14,9 @@ namespace caf SRSBNDCRTTrackMatch(); virtual ~SRSBNDCRTTrackMatch() {} - SRSBNDCRTTrack track; // the track - float score; // assessment of quality of matching (depends on alg configuration) + bool matched; // whether or not a match was made + SRSBNDCRTTrack track; // the track + float score; // assessment of quality of matching (depends on alg configuration) }; } From 281f7aea54dc750d1f9b751ea4f0a808da6f00cd Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Wed, 18 Feb 2026 06:28:58 -0600 Subject: [PATCH 05/12] Update the classes_def --- sbnanaobj/StandardRecord/classes_def.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index 3ca9cdc7..37244856 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -421,7 +421,8 @@ - + + @@ -430,7 +431,8 @@ - + + From a276d602e3748806ff67e856eba7c6096f3ce28d Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Fri, 13 Mar 2026 11:01:07 +0000 Subject: [PATCH 06/12] Apply good suggestions from Gianluca Co-authored-by: Gianluca Petrillo --- sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx | 4 ++-- sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx b/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx index 872c8f47..a2cff775 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx +++ b/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx @@ -13,8 +13,8 @@ namespace caf time(std::numeric_limits::signaling_NaN()), time_err(std::numeric_limits::signaling_NaN()), complete(false), - nhits(std::numeric_limits::lowest()), - tagger(std::numeric_limits::lowest()) + nhits(caf::kUninitializedInt), + tagger(caf::kUninitializedInt) {} } // end namespace caf //////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h index dfa7aa0a..8ec20def 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h +++ b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h @@ -12,7 +12,6 @@ namespace caf { public: SRCRTSpacePointMatch(); - virtual ~SRCRTSpacePointMatch() {} bool matched; // whether or not a match was made SRCRTSpacePoint spacepoint; // the spacepoint From 600c56e24b2abfb96ad68c3ca1b674e29a75e731 Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Fri, 13 Mar 2026 06:19:08 -0500 Subject: [PATCH 07/12] Add required header --- sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx b/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx index a2cff775..0201cc65 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx +++ b/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx @@ -3,6 +3,7 @@ //////////////////////////////////////////////////////////////////////// #include "sbnanaobj/StandardRecord/SRCRTSpacePoint.h" +#include "sbnanaobj/StandardRecord/SRConstants.h" #include From d81394a3eebfe8ceb8655fadf1a68273c582b02d Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Fri, 13 Mar 2026 06:20:35 -0500 Subject: [PATCH 08/12] Re-order members --- sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx | 4 ++-- sbnanaobj/StandardRecord/SRCRTSpacePoint.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx b/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx index 0201cc65..ff442735 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx +++ b/sbnanaobj/StandardRecord/SRCRTSpacePoint.cxx @@ -13,9 +13,9 @@ namespace caf pe(std::numeric_limits::signaling_NaN()), time(std::numeric_limits::signaling_NaN()), time_err(std::numeric_limits::signaling_NaN()), - complete(false), nhits(caf::kUninitializedInt), - tagger(caf::kUninitializedInt) + tagger(caf::kUninitializedInt), + complete(false) {} } // end namespace caf //////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePoint.h b/sbnanaobj/StandardRecord/SRCRTSpacePoint.h index db6d77da..7de34419 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePoint.h +++ b/sbnanaobj/StandardRecord/SRCRTSpacePoint.h @@ -19,9 +19,9 @@ namespace caf float pe; // total PE float time; // time [ns] float time_err; // time_err [ns] - bool complete; // was cluster made from perpendicular & overlapping strips? int nhits; // the number of strip hits contributing to the space point int tagger; // the tagger the space point is on + bool complete; // was cluster made from perpendicular & overlapping strips? }; } // end namespace From a7a32c5a1ee8c339e4d524c9b0e8e5ed261127e5 Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Fri, 13 Mar 2026 06:25:54 -0500 Subject: [PATCH 09/12] Doxygen-ify the comments and add docDB link --- sbnanaobj/StandardRecord/SRCRTSpacePoint.h | 16 ++++++++-------- sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h | 6 +++--- sbnanaobj/StandardRecord/SRSBNDCRTTrack.h | 12 ++++++------ sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h | 6 +++--- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePoint.h b/sbnanaobj/StandardRecord/SRCRTSpacePoint.h index 7de34419..21685ae0 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePoint.h +++ b/sbnanaobj/StandardRecord/SRCRTSpacePoint.h @@ -14,14 +14,14 @@ namespace caf SRCRTSpacePoint(); virtual ~SRCRTSpacePoint() {} - SRVector3D position; // position [cm] - SRVector3D position_err; // positional spread [cm] - float pe; // total PE - float time; // time [ns] - float time_err; // time_err [ns] - int nhits; // the number of strip hits contributing to the space point - int tagger; // the tagger the space point is on - bool complete; // was cluster made from perpendicular & overlapping strips? + SRVector3D position; ///< position [cm] + SRVector3D position_err; ///< positional spread [cm] + float pe; ///< total PE + float time; ///< time [ns] + float time_err; ///< time_err [ns] + int nhits; ///< the number of strip hits contributing to the space point + int tagger; ///< the tagger the space point is on + bool complete; ///< was cluster made from perpendicular & overlapping strips? }; } // end namespace diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h index 8ec20def..b164f224 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h +++ b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h @@ -13,9 +13,9 @@ namespace caf public: SRCRTSpacePointMatch(); - bool matched; // whether or not a match was made - SRCRTSpacePoint spacepoint; // the spacepoint - float score; // assessment of quality of matching (depends on alg configuration) + bool matched; ///< whether or not a match was made + SRCRTSpacePoint spacepoint; ///< the spacepoint + float score; ///< assessment of quality of matching (depends on alg configuration) }; } diff --git a/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h b/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h index a1f8660d..690f1de7 100644 --- a/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h +++ b/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h @@ -17,12 +17,12 @@ namespace caf SRSBNDCRTTrack(); virtual ~SRSBNDCRTTrack() {} - std::vector points; // fitted track points at each tagger [cm] - float time; // average time [ns] - float time_err; // error in average time [ns] - float pe; // total PE; - float tof; // time from first space point to last [ns] - std::vector taggers; // the taggers that were used to create the track + std::vector points; ///< fitted track points at each tagger [cm] + float time; ///< average time [ns] + float time_err; ///< error in average time [ns] + float pe; ///< total PE; + float tof; ///< time from first space point to last [ns] + std::vector taggers; ///< the taggers that were used to create the track (see docDB #46042, section 2) }; } // end namespace diff --git a/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h b/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h index d97d7d88..9cf8ac4b 100644 --- a/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h +++ b/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h @@ -14,9 +14,9 @@ namespace caf SRSBNDCRTTrackMatch(); virtual ~SRSBNDCRTTrackMatch() {} - bool matched; // whether or not a match was made - SRSBNDCRTTrack track; // the track - float score; // assessment of quality of matching (depends on alg configuration) + bool matched; ///< whether or not a match was made + SRSBNDCRTTrack track; ///< the track + float score; ///< assessment of quality of matching (depends on alg configuration) }; } From 0a1c05ad533be030626b45c05a656181d4c2f3df Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Fri, 13 Mar 2026 06:27:54 -0500 Subject: [PATCH 10/12] Re-order variables --- sbnanaobj/StandardRecord/SRCRTSpacePointMatch.cxx | 4 ++-- sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h | 2 +- sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.cxx | 4 ++-- sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.cxx b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.cxx index a4413e27..0df66639 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.cxx +++ b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.cxx @@ -7,8 +7,8 @@ namespace caf { SRCRTSpacePointMatch::SRCRTSpacePointMatch(): - matched(false), - score(std::numeric_limits::signaling_NaN()) + score(std::numeric_limits::signaling_NaN()), + matched(false) {} } //////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h index b164f224..b7d69457 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h +++ b/sbnanaobj/StandardRecord/SRCRTSpacePointMatch.h @@ -13,9 +13,9 @@ namespace caf public: SRCRTSpacePointMatch(); - bool matched; ///< whether or not a match was made SRCRTSpacePoint spacepoint; ///< the spacepoint float score; ///< assessment of quality of matching (depends on alg configuration) + bool matched; ///< whether or not a match was made }; } diff --git a/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.cxx b/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.cxx index ddeb5b5b..44051ccc 100644 --- a/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.cxx +++ b/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.cxx @@ -7,8 +7,8 @@ namespace caf { SRSBNDCRTTrackMatch::SRSBNDCRTTrackMatch(): - matched(false), - score(std::numeric_limits::signaling_NaN()) + score(std::numeric_limits::signaling_NaN()), + matched(false) {} } //////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h b/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h index 9cf8ac4b..65db6d20 100644 --- a/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h +++ b/sbnanaobj/StandardRecord/SRSBNDCRTTrackMatch.h @@ -14,9 +14,9 @@ namespace caf SRSBNDCRTTrackMatch(); virtual ~SRSBNDCRTTrackMatch() {} - bool matched; ///< whether or not a match was made SRSBNDCRTTrack track; ///< the track float score; ///< assessment of quality of matching (depends on alg configuration) + bool matched; ///< whether or not a match was made }; } From d024f25190de161e611a4cd1b37778fa41308951 Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Fri, 13 Mar 2026 06:29:31 -0500 Subject: [PATCH 11/12] Remove unnecessary functions --- sbnanaobj/StandardRecord/SRCRTSpacePoint.h | 1 - sbnanaobj/StandardRecord/SRCRTTrackMatch.h | 2 +- sbnanaobj/StandardRecord/SRSBNDCRTTrack.h | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/sbnanaobj/StandardRecord/SRCRTSpacePoint.h b/sbnanaobj/StandardRecord/SRCRTSpacePoint.h index 21685ae0..c0f15b47 100644 --- a/sbnanaobj/StandardRecord/SRCRTSpacePoint.h +++ b/sbnanaobj/StandardRecord/SRCRTSpacePoint.h @@ -12,7 +12,6 @@ namespace caf { public: SRCRTSpacePoint(); - virtual ~SRCRTSpacePoint() {} SRVector3D position; ///< position [cm] SRVector3D position_err; ///< positional spread [cm] diff --git a/sbnanaobj/StandardRecord/SRCRTTrackMatch.h b/sbnanaobj/StandardRecord/SRCRTTrackMatch.h index 3f933a8f..5e669988 100644 --- a/sbnanaobj/StandardRecord/SRCRTTrackMatch.h +++ b/sbnanaobj/StandardRecord/SRCRTTrackMatch.h @@ -12,7 +12,7 @@ namespace caf public: SRCRTTrackMatch(); - virtual ~SRCRTTrackMatch() {} + float time; ///< Time of the CRT Track [us] float angle; ///< Relative angle between the TPC track and CRT track [rad] }; diff --git a/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h b/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h index 690f1de7..dbc850bb 100644 --- a/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h +++ b/sbnanaobj/StandardRecord/SRSBNDCRTTrack.h @@ -15,7 +15,6 @@ namespace caf { public: SRSBNDCRTTrack(); - virtual ~SRSBNDCRTTrack() {} std::vector points; ///< fitted track points at each tagger [cm] float time; ///< average time [ns] From 4875e260f45821b1844a356f6d3bce86e906a1bb Mon Sep 17 00:00:00 2001 From: Henry Lay Date: Fri, 13 Mar 2026 06:34:17 -0500 Subject: [PATCH 12/12] Update checksums, only keeping most recent from this development --- sbnanaobj/StandardRecord/classes_def.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index 37244856..9160758e 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -417,12 +417,12 @@ - + - + @@ -432,7 +432,7 @@ - +