diff --git a/sbnanaobj/StandardRecord/SRLightCalo.h b/sbnanaobj/StandardRecord/SRLightCalo.h new file mode 100644 index 0000000..25324a3 --- /dev/null +++ b/sbnanaobj/StandardRecord/SRLightCalo.h @@ -0,0 +1,27 @@ +/** + * @file sbnanaobj/StandardRecord/SRLightCalo.h + * @brief Defines data structures to store light calorimetry info (header only). + * @author Lynn Tung + * @date November 19, 2025 + */ + +#ifndef SBNANAOBJ_STANDARDRECORD_SRLIGHTCALO_H +#define SBNANAOBJ_STANDARDRECORD_SRLIGHTCALO_H + +#include "sbnanaobj/StandardRecord/SRConstants.h" + +namespace caf { + + /** + * @brief A struct to store the reconstructed visible energy, light, and charge in a recob::Slice. + * + */ + struct SRLightCalo { + float charge = caf::kSignalingNaN; ///< the total charge in the slice (on bestplane) [# electrons] + float light = caf::kSignalingNaN; ///< the reconstructed total number of photons [# photons] + float energy = caf::kSignalingNaN; ///< (charge+light)*scaling, [GeV] + int bestplane = caf::kUninitializedInt; ///< plane with most number of hits +}; +} + +#endif diff --git a/sbnanaobj/StandardRecord/SRSlice.h b/sbnanaobj/StandardRecord/SRSlice.h index abd9e62..96cb385 100644 --- a/sbnanaobj/StandardRecord/SRSlice.h +++ b/sbnanaobj/StandardRecord/SRSlice.h @@ -19,6 +19,7 @@ #include "sbnanaobj/StandardRecord/SRNuID.h" #include "sbnanaobj/StandardRecord/SRConstants.h" #include "sbnanaobj/StandardRecord/SRCVNScore.h" +#include "sbnanaobj/StandardRecord/SRLightCalo.h" #include @@ -54,6 +55,8 @@ namespace caf SRCorrectedOpFlash correctedOpFlash; //!< OpFlash corrected with using tpc information matched to this slice + SRLightCalo lightcalo; // !< Reconstructed visible energy, light, and charge + SRFakeReco fake_reco; bool is_clear_cosmic { false }; //!< Whether pandora marks the slice as a "clear" cosmic diff --git a/sbnanaobj/StandardRecord/SRTrueDeposit.h b/sbnanaobj/StandardRecord/SRTrueDeposit.h new file mode 100644 index 0000000..e10ab10 --- /dev/null +++ b/sbnanaobj/StandardRecord/SRTrueDeposit.h @@ -0,0 +1,26 @@ +/** + * @file sbnanaobj/StandardRecord/SrTrueDeposit.h + * @brief Defines data structures to store summed SimEnergyDeposits (header only). + * @author Lynn Tung + * @date November 18, 2025 + */ + +#ifndef SBNANAOBJ_STANDARDRECORD_SRTRUEDEPOSIT_H +#define SBNANAOBJ_STANDARDRECORD_SRTRUEDEPOSIT_H + +#include "sbnanaobj/StandardRecord/SRConstants.h" + +namespace caf { + + /** + * @brief A struct to store total true deposited energy, charge, and photons for each MCTruth interaction. + * + */ + struct SRTrueDeposit { + float electrons = caf::kSignalingNaN; ///< total # of electrons from the sites of energy deposition, summed per nu interaction (after recombination, before drift) + float photons = caf::kSignalingNaN; ///< total # of photons from the sites of energy deposition, summed per nu interaction (after recombination, before propagation) + float energy = caf::kSignalingNaN; ///< total **deposited energy**, summed per nu interaction [GeV] + }; +} + +#endif diff --git a/sbnanaobj/StandardRecord/SRTruthBranch.h b/sbnanaobj/StandardRecord/SRTruthBranch.h index c98b78f..b65b468 100644 --- a/sbnanaobj/StandardRecord/SRTruthBranch.h +++ b/sbnanaobj/StandardRecord/SRTruthBranch.h @@ -5,6 +5,7 @@ #define SRTRUTHBRANCH_H #include "sbnanaobj/StandardRecord/SRTrueInteraction.h" +#include "sbnanaobj/StandardRecord/SRTrueDeposit.h" #include "sbnanaobj/StandardRecord/SRMeVPrtl.h" #include @@ -19,6 +20,7 @@ namespace caf ~SRTruthBranch(); std::vector nu; ///< Vector of true nu or cosmic + std::vector dep; ///< Vector of true energy deposits (summed), same size as nu size_t nnu; ///< Number of true nu or cosmic std::vector prtl; ///< If present -- information on decay of MeV "Portal" particle diff --git a/sbnanaobj/StandardRecord/classes_def.xml b/sbnanaobj/StandardRecord/classes_def.xml index 007cbb3..8a8de28 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -96,7 +96,13 @@ - + + + + + + + @@ -181,6 +187,10 @@ + + + + @@ -222,7 +232,8 @@ - + + @@ -344,6 +355,7 @@ +