1 #ifndef _atm_VCherenkovModel_h_
2 #define _atm_VCherenkovModel_h_
4 #include <atm/VModel.h>
10 class TabulatedFunction;
48 const double wavelength)
const = 0;
52 virtual double AngularCDF(
const double theta,
const double verticalDepth,
53 const double showerAge)
const = 0;
54 virtual double AngularPDF(
const double theta,
const double verticalDepth,
55 const double showerAge)
const = 0;
double fEcut
electron energy-cutoff
virtual double EvaluateDirectCherenkovProbability(const utl::Point &xA, const utl::Point &xB, const utl::Point &xEye, const double ShowerAge) const =0
Class to hold collection (x,y) points and provide interpolation between them.
Base class for a Cherenkov Model.
virtual void SetEnergyCutoff(const double ecut) const =0
virtual double AngularCDF(const double theta, const double verticalDepth, const double showerAge) const =0
Base class of atmospheric functions.
virtual ~VCherenkovModel()
virtual double GetEnergyCutoff() const
Template for object factory.
virtual const std::vector< double > & GetWavelengths() const =0
utl::ObjectFactory< VCherenkovModel *, std::string > VCherenkovModelFactory
virtual utl::TabulatedFunction & EvaluateCherenkovPhotons(const utl::Point &xA, const utl::Point &xB, const double ShowerAge) const =0
double ShowerAge(const double slantDepth, const double showerMax)
General definition of shower age.
virtual double AngularPDF(const double theta, const double verticalDepth, const double showerAge) const =0
virtual utl::TabulatedFunction & EvaluateCherenkovDirect(const utl::Point &xA, const utl::Point &xB, const utl::Point &xEye, const double ShowerAge) const =0