4 #ifndef IPHOTONLIBRARY_H
5 #define IPHOTONLIBRARY_H
35 virtual float GetCount(
size_t Voxel,
size_t OpChannel)
const = 0;
36 virtual float GetReflCount(
size_t Voxel,
size_t OpChannel)
const = 0;
37 virtual float GetReflT0(
size_t Voxel,
size_t OpChannel)
const = 0;
51 virtual int NVoxels()
const = 0;
54 {
return Voxel < (std::size_t)
NVoxels(); }
virtual float GetReflT0(size_t Voxel, size_t OpChannel) const =0
virtual float GetReflCount(size_t Voxel, size_t OpChannel) const =0
virtual float GetCount(size_t Voxel, size_t OpChannel) const =0
virtual bool hasReflected() const =0
Returns whether the current library deals with reflected light count.
virtual ~IPhotonLibrary()=default
virtual int NVoxels() const =0
virtual T0s_t GetReflT0s(size_t Voxel) const =0
std::vector< float > const * Params_t
virtual bool isVoxelValid(size_t Voxel) const
virtual int NOpChannels() const =0
virtual Counts_t GetCounts(size_t Voxel) const =0
Returns a pointer to NOpChannels() visibility values, one per channel.
size_t LibrarySize() const
Returns the number of elements in the library.
const float * Counts_t
Type for visibility count per optical channel.
Interface shared by all PhotonLibrary-like classes.
const float * T0s_t
Type for time of arrival per optical channel.
virtual Counts_t GetReflCounts(size_t Voxel) const =0
virtual bool hasReflectedT0() const =0
Returns whether the current library deals with reflected light timing.