diff --git a/sbnanaobj/StandardRecord/SRLightCalo.h b/sbnanaobj/StandardRecord/SRLightCalo.h new file mode 100644 index 0000000..b39a38e --- /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..52615cd --- /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 true deposited energy, charge, and photons for each MCTruth interaction. + * + */ + struct SRTrueDeposit { + float electrons = caf::kSignalingNaN; ///< # of electrons at the site of energy deposition (after recombination, before drift) + float photons = caf::kSignalingNaN; ///< # of photons at the site of energy deposition (after recombination, before propagation) + float energy = caf::kSignalingNaN; ///< total **deposited energy** [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 9b6f8fb..8e041fc 100644 --- a/sbnanaobj/StandardRecord/classes_def.xml +++ b/sbnanaobj/StandardRecord/classes_def.xml @@ -95,6 +95,7 @@ + @@ -174,6 +175,8 @@ + + @@ -215,7 +218,8 @@ - + + @@ -336,6 +340,7 @@ +