4 #ifndef PHOTONLIBRARYHYBRID_H 5 #define PHOTONLIBRARYHYBRID_H 13 namespace sim{
class PhotonVoxelDef;}
25 virtual float GetCount(
size_t Voxel,
size_t OpChannel)
const override;
28 virtual const float* GetCounts(
size_t Voxel)
const override;
32 virtual const float*
GetReflCounts(
size_t Voxel)
const override {
return 0;}
33 virtual float GetReflCount(
size_t Voxel,
size_t OpChannel)
const override {
return 0;}
37 virtual const float*
GetReflT0s(
size_t Voxel)
const override {
return 0;}
38 virtual float GetReflT0(
size_t Voxel,
size_t OpChannel)
const override {
return 0;}
40 virtual int NOpChannels()
const override {
return fRecords.size();}
41 virtual int NVoxels()
const override;
50 double Eval(
double x)
const {
return exp(
norm+decay*x)/(x*
x);}
57 Exception(
size_t _vox,
float _vis) : vox(_vox), vis(_vis) {}
Index OpChannel(Index detNum, Index channel)
bool operator<(const Exception &e) const
FitFunc(float n, float d)
Representation of a region of space diced into voxels.
double Eval(double x) const
bool operator<(size_t v) const
virtual const float * GetReflCounts(size_t Voxel) const override
std::vector< Exception > exceptions
virtual float GetReflCount(size_t Voxel, size_t OpChannel) const override
Code to link reconstructed objects back to the MC truth information.
virtual bool hasReflectedT0() const override
Don't implement reflected light timing.
const sim::PhotonVoxelDef & fVoxDef
auto norm(Vector const &v)
Return norm of the specified vector.
virtual int NOpChannels() const override
General LArSoft Utilities.
virtual const float * GetReflT0s(size_t Voxel) const override
Exception(size_t _vox, float _vis)
std::vector< OpDetRecord > fRecords
Interface shared by all PhotonLibrary-like classes.
virtual bool hasReflected() const override
Don't implement reflected light.
virtual float GetReflT0(size_t Voxel, size_t OpChannel) const override