Skip to content
Open
1 change: 1 addition & 0 deletions sbnobj/Common/Reco/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ cet_make_library(
CNNScore.cc
CRUMBSResult.cc
FlashTriggerPrimitive.cc
LightCalo.cc
MVAPID.cc
MergedTrackInfo.cc
OpT0FinderResult.cc
Expand Down
1 change: 1 addition & 0 deletions sbnobj/Common/Reco/LightCalo.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "sbnobj/Common/Reco/LightCalo.h"
47 changes: 47 additions & 0 deletions sbnobj/Common/Reco/LightCalo.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/**
* @file sbnobj/Common/Reco/LightCalo.h
* @brief Defines data structures for light calorimetry products.
* @author Lynn Tung
* @date December 2nd, 2025
*
*/

#ifndef sbnobj_LightCalo_H
#define sbnobj_LightCalo_H

#include <limits>

namespace sbn{

/**
* @brief A simple class to store reconstructed charge, light, and visible energy.
*/

class LightCalo {
public:

// NaN value to initialize data members
static constexpr double nan = std::numeric_limits<double>::signaling_NaN();

/// @name Reconstructed charge, light, and visible energy data members.
/// @{
double charge = nan; ///< Total charge in a reconstructed interaction (recob::Slice) [# of electrons]
double light = nan; ///< Total light in a reconstructed interaction (recob::Slice + recob::OpFlash) [# of photons]
double energy = nan; ///< Total visible energy (sum of charge+light) for a reconstructed interaction [GeV]
int bestplane = -1; ///< Plane that was used for the total charge
/// @}

/**
* Default constructor.
*/
LightCalo() = default;
LightCalo(double charge, double light, double energy, int bestplane)
: charge(charge)
, light(light)
, energy(energy)
, bestplane(bestplane)
{}
};
}

#endif
1 change: 1 addition & 0 deletions sbnobj/Common/Reco/classes.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include "sbnobj/Common/Reco/VertexHit.h"
#include "sbnobj/Common/Reco/MVAPID.h"
#include "sbnobj/Common/Reco/CRUMBSResult.h"
#include "sbnobj/Common/Reco/LightCalo.h"
#include "sbnobj/Common/Reco/OpT0FinderResult.h"
#include "sbnobj/Common/Reco/CNNScore.h"
#include "sbnobj/Common/Reco/TPCPMTBarycenterMatch.h"
Expand Down
16 changes: 16 additions & 0 deletions sbnobj/Common/Reco/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,22 @@
<class name="art::Assns<sbn::crt::CRTHit, recob::Track, void>" />
<class name="art::Wrapper<art::Assns<sbn::crt::CRTHit, recob::Track, void>>" />

<class name="sbn::LightCalo">
</class>
<class name="std::vector<sbn::LightCalo>" />
<class name="art::Wrapper<sbn::LightCalo>" />
<class name="art::Wrapper<std::vector<sbn::LightCalo>>" />

<class name="art::Assns<recob::Slice, sbn::LightCalo>" />
<class name="art::Wrapper<art::Assns<recob::Slice, sbn::LightCalo>>" />
<class name="art::Assns<sbn::LightCalo, recob::Slice, void>" />
<class name="art::Wrapper<art::Assns<sbn::LightCalo, recob::Slice, void>>"/>

<class name="art::Assns<recob::OpFlash, sbn::LightCalo>" />
<class name="art::Assns<sbn::LightCalo, recob::OpFlash, void>" />
<class name="art::Wrapper<art::Assns<recob::OpFlash, sbn::LightCalo>>" />
<class name="art::Wrapper<art::Assns<sbn::LightCalo, recob::OpFlash, void>>" />

<class name="sbn::OpT0Finder">
</class>
<class name="std::vector<sbn::OpT0Finder>" />
Expand Down