VCherenkovModel.h
Go to the documentation of this file.
1 #ifndef _atm_VCherenkovModel_h_
2 #define _atm_VCherenkovModel_h_
3 
4 #include <atm/VModel.h>
5 #include <vector>
6 
7 
8 namespace utl {
9  class Point;
10  class TabulatedFunction;
11 }
12 
13 namespace atm {
14 
25  class VCherenkovModel : public atm::VModel {
26 
27  public:
29  virtual ~VCherenkovModel() { }
30 
31  virtual utl::TabulatedFunction&
32  EvaluateCherenkovPhotons(const utl::Point& xA, const utl::Point& xB,
33  const double ShowerAge) const = 0;
34 
35  virtual utl::TabulatedFunction&
36  EvaluateCherenkovDirect(const utl::Point& xA, const utl::Point& xB,
37  const utl::Point& xEye,
38  const double ShowerAge) const = 0;
39 
40  virtual double
42  const utl::Point& xEye,
43  const double ShowerAge) const = 0;
44  virtual double
46  const utl::Point& xEye,
47  const double ShowerAge,
48  const double wavelength) const = 0;
49 
50  virtual const std::vector<double>& GetWavelengths() const = 0;
51 
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;
56 
57  virtual void SetEnergyCutoff(const double ecut) const = 0;
58  virtual double GetEnergyCutoff() const { return fEcut; }
59 
60  protected:
62  mutable double fEcut = 0;
63 
64  };
65 
66 
68 
69 }
70 
71 
72 #endif
Point object.
Definition: Point.h:32
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.
Definition: VModel.h:35
virtual double GetEnergyCutoff() const
Template for object factory.
Definition: ObjectFactory.h:71
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

, generated on Tue Sep 26 2023.