From 1fa792a40e004e7181bf50f93b1f8ae5996d6806 Mon Sep 17 00:00:00 2001 From: Riccardo Triozzi Date: Wed, 24 Dec 2025 11:53:30 -0600 Subject: [PATCH 1/5] added more per-plane nugraph slice vars --- sbnanaobj/StandardRecord/SRNuGraphScore.cxx | 9 +++++++++ sbnanaobj/StandardRecord/SRNuGraphScore.h | 17 +++++++++++++++++ sbnanaobj/StandardRecord/SRSlice.cxx | 4 ---- sbnanaobj/StandardRecord/SRSlice.h | 9 ++++++--- sbnanaobj/StandardRecord/classes_def.xml | 11 ++++++++++- 5 files changed, 42 insertions(+), 8 deletions(-) diff --git a/sbnanaobj/StandardRecord/SRNuGraphScore.cxx b/sbnanaobj/StandardRecord/SRNuGraphScore.cxx index 32828d07..b1ce1038 100644 --- a/sbnanaobj/StandardRecord/SRNuGraphScore.cxx +++ b/sbnanaobj/StandardRecord/SRNuGraphScore.cxx @@ -1 +1,10 @@ #include "sbnanaobj/StandardRecord/SRNuGraphScore.h" + +namespace caf +{ + + SRNuGraphSliceInfo::SRNuGraphSliceInfo() : + ng_vtx_hip_hits(INT_MIN) + { } + +} // end namespace caf \ No newline at end of file diff --git a/sbnanaobj/StandardRecord/SRNuGraphScore.h b/sbnanaobj/StandardRecord/SRNuGraphScore.h index ae4b7b41..6050ccc3 100644 --- a/sbnanaobj/StandardRecord/SRNuGraphScore.h +++ b/sbnanaobj/StandardRecord/SRNuGraphScore.h @@ -5,9 +5,25 @@ #define SRNuGraphSCORE_H #include "sbnanaobj/StandardRecord/SRConstants.h" +#include namespace caf { + /** + * @brief Information on the slice by NuGraph. + * + * This object summarizes the results from running NuGraph over hits in a slice + * (see e.g. [https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=40585](SBN DocDB 40585). + * + * The number of HIP hits is computed for a circle around the vertex in each plane. + */ + class SRNuGraphSliceInfo { + public: + SRNuGraphSliceInfo(); + + unsigned int ng_vtx_hip_hits; ///< Number of hits tagged as HIP around the vertex (10 wires, 10 ticks) + }; + /** * @brief Categorization of the object/PFP by NuGraph. * @@ -37,6 +53,7 @@ namespace caf { float dif_frac = caf::kSignalingNaN; ///< Fraction of hits that are labeled as `Diffuse`. float bkg_frac = caf::kSignalingNaN; ///< Fraction of hits that are labeled as `Background`. }; + } #endif diff --git a/sbnanaobj/StandardRecord/SRSlice.cxx b/sbnanaobj/StandardRecord/SRSlice.cxx index 85f0e1eb..7a2fd8fa 100644 --- a/sbnanaobj/StandardRecord/SRSlice.cxx +++ b/sbnanaobj/StandardRecord/SRSlice.cxx @@ -11,15 +11,11 @@ namespace caf SRSlice::SRSlice() { } - SRSlice::~SRSlice(){ } - void SRSlice::setDefault() { charge = -5; } - - } // end namespace caf //////////////////////////////////////////////////////////////////////// diff --git a/sbnanaobj/StandardRecord/SRSlice.h b/sbnanaobj/StandardRecord/SRSlice.h index 2e6508f1..817f8e2e 100644 --- a/sbnanaobj/StandardRecord/SRSlice.h +++ b/sbnanaobj/StandardRecord/SRSlice.h @@ -18,6 +18,7 @@ #include "sbnanaobj/StandardRecord/SRNuID.h" #include "sbnanaobj/StandardRecord/SRConstants.h" #include "sbnanaobj/StandardRecord/SRCVNScore.h" +#include "sbnanaobj/StandardRecord/SRNuGraphScore.h" #include @@ -56,11 +57,13 @@ namespace caf bool is_clear_cosmic { false }; //!< Whether pandora marks the slice as a "clear" cosmic int nu_pdg { INT_MIN }; //!< PDG assigned to the PFParticle Neutrino float nu_score { kSignalingNaN }; //!< Score of how neutrino-like the slice is according to pandora - float ng_filt_pass_frac { kSignalingNaN }; //!< Fraction of slice hits that pass the nugraph filter decoder - SRCRUMBSResult crumbs_result; //!< Score of how neutrino-like the slice is according to the CRUMBS ID - SRNuID nuid; //!< Neutrino ID Features (BDT inputs) going into nu_score calculation + float ng_filt_pass_frac { kSignalingNaN }; //!< Fraction of slice hits that pass the nugraph filter decoder + SRNuGraphSliceInfo ng_plane[3]; //!< Slice-level nugraph information, provided for each plane + + SRCRUMBSResult crumbs_result; //!< Score of how neutrino-like the slice is according to the CRUMBS ID + std::vector primary; //!< ID's of primary tracks and showers in slice int self { INT_MIN }; //!< ID of the particle representing this slice diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index 6833f079..2f294094 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -46,6 +46,11 @@ + + + + + @@ -71,7 +76,11 @@ - + + + + + From ba51b8f32254d4bd7a186e615039bb411026d0f9 Mon Sep 17 00:00:00 2001 From: Riccardo Triozzi Date: Tue, 6 Jan 2026 08:06:38 -0600 Subject: [PATCH 2/5] change to int to allow for negative default --- sbnanaobj/StandardRecord/SRNuGraphScore.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbnanaobj/StandardRecord/SRNuGraphScore.h b/sbnanaobj/StandardRecord/SRNuGraphScore.h index 6050ccc3..192cd353 100644 --- a/sbnanaobj/StandardRecord/SRNuGraphScore.h +++ b/sbnanaobj/StandardRecord/SRNuGraphScore.h @@ -21,7 +21,7 @@ namespace caf { public: SRNuGraphSliceInfo(); - unsigned int ng_vtx_hip_hits; ///< Number of hits tagged as HIP around the vertex (10 wires, 10 ticks) + int ng_vtx_hip_hits; ///< Number of hits tagged as HIP around the vertex (10 wires, 10 ticks) }; /** From 8dcb315b342c6b8854bfcddd09eaea652028c934 Mon Sep 17 00:00:00 2001 From: Riccardo Triozzi Date: Wed, 7 Jan 2026 05:47:50 -0600 Subject: [PATCH 3/5] more shower vars --- sbnanaobj/StandardRecord/SRNuGraphScore.cxx | 4 +++- sbnanaobj/StandardRecord/SRNuGraphScore.h | 5 ++++- sbnanaobj/StandardRecord/SRSlice.h | 4 ++-- sbnanaobj/StandardRecord/classes_def.xml | 3 ++- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/sbnanaobj/StandardRecord/SRNuGraphScore.cxx b/sbnanaobj/StandardRecord/SRNuGraphScore.cxx index b1ce1038..7e1ba3ce 100644 --- a/sbnanaobj/StandardRecord/SRNuGraphScore.cxx +++ b/sbnanaobj/StandardRecord/SRNuGraphScore.cxx @@ -4,7 +4,9 @@ namespace caf { SRNuGraphSliceInfo::SRNuGraphSliceInfo() : - ng_vtx_hip_hits(INT_MIN) + ng_vtx_hip_hits(INT_MIN), + shr_hits(INT_MIN), + unclustered_shr_hits(INT_MIN) { } } // end namespace caf \ No newline at end of file diff --git a/sbnanaobj/StandardRecord/SRNuGraphScore.h b/sbnanaobj/StandardRecord/SRNuGraphScore.h index 192cd353..c5a9d826 100644 --- a/sbnanaobj/StandardRecord/SRNuGraphScore.h +++ b/sbnanaobj/StandardRecord/SRNuGraphScore.h @@ -21,7 +21,10 @@ namespace caf { public: SRNuGraphSliceInfo(); - int ng_vtx_hip_hits; ///< Number of hits tagged as HIP around the vertex (10 wires, 10 ticks) + int ng_vtx_hip_hits; ///< Number of hits tagged as HIP around the vertex (10 wires, 40 ticks). + int shr_hits; ///< Number of hits tagged as `Shower`. + int unclustered_shr_hits; ///< Number of hits tagged as `Shower` not belonging to any PFP object. + }; /** diff --git a/sbnanaobj/StandardRecord/SRSlice.h b/sbnanaobj/StandardRecord/SRSlice.h index 817f8e2e..2aa2eca2 100644 --- a/sbnanaobj/StandardRecord/SRSlice.h +++ b/sbnanaobj/StandardRecord/SRSlice.h @@ -59,8 +59,8 @@ namespace caf float nu_score { kSignalingNaN }; //!< Score of how neutrino-like the slice is according to pandora SRNuID nuid; //!< Neutrino ID Features (BDT inputs) going into nu_score calculation - float ng_filt_pass_frac { kSignalingNaN }; //!< Fraction of slice hits that pass the nugraph filter decoder - SRNuGraphSliceInfo ng_plane[3]; //!< Slice-level nugraph information, provided for each plane + float ng_filt_pass_frac { kSignalingNaN }; //!< Fraction of slice hits that pass the NuGraph2 filter decoder + SRNuGraphSliceInfo ng_plane[3]; //!< Slice-level NuGraph2 information, provided for each plane SRCRUMBSResult crumbs_result; //!< Score of how neutrino-like the slice is according to the CRUMBS ID diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index 2f294094..81e2bd56 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -46,7 +46,8 @@ - + + From 2276592f831db6b94e9dab6e9de1a1c42d9319d6 Mon Sep 17 00:00:00 2001 From: Riccardo Triozzi Date: Mon, 12 Jan 2026 05:39:16 -0600 Subject: [PATCH 4/5] changed doc --- sbnanaobj/StandardRecord/SRNuGraphScore.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbnanaobj/StandardRecord/SRNuGraphScore.h b/sbnanaobj/StandardRecord/SRNuGraphScore.h index c5a9d826..c00199b9 100644 --- a/sbnanaobj/StandardRecord/SRNuGraphScore.h +++ b/sbnanaobj/StandardRecord/SRNuGraphScore.h @@ -21,7 +21,7 @@ namespace caf { public: SRNuGraphSliceInfo(); - int ng_vtx_hip_hits; ///< Number of hits tagged as HIP around the vertex (10 wires, 40 ticks). + int ng_vtx_hip_hits; ///< Number of hits tagged as HIP around the vertex. int shr_hits; ///< Number of hits tagged as `Shower`. int unclustered_shr_hits; ///< Number of hits tagged as `Shower` not belonging to any PFP object. From c64eb6727bded2c66a9bae6c6d9571eba734f548 Mon Sep 17 00:00:00 2001 From: Riccardo Triozzi Date: Fri, 16 Jan 2026 08:40:35 -0600 Subject: [PATCH 5/5] add yet more NG2 vars --- sbnanaobj/StandardRecord/SRNuGraphScore.cxx | 6 +++++- sbnanaobj/StandardRecord/SRNuGraphScore.h | 10 +++++++--- sbnanaobj/StandardRecord/classes_def.xml | 3 ++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/sbnanaobj/StandardRecord/SRNuGraphScore.cxx b/sbnanaobj/StandardRecord/SRNuGraphScore.cxx index 7e1ba3ce..5d1452f9 100644 --- a/sbnanaobj/StandardRecord/SRNuGraphScore.cxx +++ b/sbnanaobj/StandardRecord/SRNuGraphScore.cxx @@ -4,8 +4,12 @@ namespace caf { SRNuGraphSliceInfo::SRNuGraphSliceInfo() : - ng_vtx_hip_hits(INT_MIN), + mip_hits(INT_MIN), + hip_hits(INT_MIN), shr_hits(INT_MIN), + mhl_hits(INT_MIN), + dif_hits(INT_MIN), + ng_vtx_hip_hits(INT_MIN), unclustered_shr_hits(INT_MIN) { } diff --git a/sbnanaobj/StandardRecord/SRNuGraphScore.h b/sbnanaobj/StandardRecord/SRNuGraphScore.h index c00199b9..e16f1abb 100644 --- a/sbnanaobj/StandardRecord/SRNuGraphScore.h +++ b/sbnanaobj/StandardRecord/SRNuGraphScore.h @@ -19,12 +19,16 @@ namespace caf { */ class SRNuGraphSliceInfo { public: + SRNuGraphSliceInfo(); - int ng_vtx_hip_hits; ///< Number of hits tagged as HIP around the vertex. + int mip_hits; ///< Number of hits tagged as `MIP`. + int hip_hits; ///< Number of hits tagged as `HIP`. int shr_hits; ///< Number of hits tagged as `Shower`. - int unclustered_shr_hits; ///< Number of hits tagged as `Shower` not belonging to any PFP object. - + int mhl_hits; ///< Number of hits tagged as `Michel`. + int dif_hits; ///< Number of hits tagged as `Diffuse`. + int ng_vtx_hip_hits; ///< Number of hits tagged as `HIP` around the reconstructed interaction vertex. + int unclustered_shr_hits; ///< Number of hits tagged as `Shower` not belonging to any reconstructed Pandora PFP object. }; /** diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index 81e2bd56..dec1a5cc 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -46,7 +46,8 @@ - + +