Simple/TankResponse.h
Go to the documentation of this file.
1 
8 #ifndef _SimpleTankResponseNS_TankResponse_h_
9 #define _SimpleTankResponseNS_TankResponse_h_
10 
11 #include <tls/VTankResponse.h>
12 #include <utl/AugerUnits.h>
13 #include <vector>
14 #include <limits>
15 
16 namespace utl {
17  class Branch;
18 }
19 
20 namespace SimpleTankResponseNS {
21 
23  public:
24  static TankResponse& GetInstance(const utl::Branch branch);
25 
26  virtual
27  double
28  PDF(const double signal,
29  const double theta,
30  const double r,
31  const ulong muons) const;
32 
33  virtual
34  double
35  CDF(const double threshold,
36  const double theta,
37  const double r,
38  const ulong muons) const;
39 
40  virtual
41  double
42  Mean(const double theta,
43  const double r,
44  const ulong muons) const;
45 
46  virtual
47  double
48  StDev(const double theta,
49  const double r,
50  const ulong muons) const;
51 
52  virtual double GetThetaMin() const { return 60*utl::degree; }
53  virtual double GetThetaMax() const { return 88*utl::degree; }
54 
55  virtual double GetRadiusMin() const { return 0.0; }
56  virtual double GetRadiusMax() const { return std::numeric_limits<double>::max(); }
57 
58  private:
59  // Singleton pattern: Keep constructor private
60  TankResponse(const utl::Branch branch);
61  virtual ~TankResponse() {}
62 
64 
65  std::vector<double> fParMean;
66  std::vector<double> fParSigma;
67 
68  void CalculateAverageAndSigma(double& mean, double& sigma,
69  const double theta, const ulong muons) const;
70  };
71 
72 } // SimpleTankResponseNS
73 
74 #endif
unsigned long ulong
Definition: VTankResponse.h:28
virtual double CDF(const double threshold, const double theta, const double r, const ulong muons) const
Probability of signal begin smaller than smax, given a fixed number of muons.
virtual double Mean(const double theta, const double r, const ulong muons) const
Average signal, given fixed number of muons.
void CalculateAverageAndSigma(double &mean, double &sigma, const double theta, const ulong muons) const
#define max(a, b)
Class representing a document branch.
Definition: Branch.h:107
Interface class for coupling different tank response calculations into the reconstruction code...
Definition: VTankResponse.h:26
constexpr double degree
virtual double GetThetaMax() const
Largest zenith angle at which the tank response is defined.
virtual double PDF(const double signal, const double theta, const double r, const ulong muons) const
PDF of signal, given a fixed number of muons.
virtual double GetThetaMin() const
Smallest zenith angle at which the tank response is defined.
virtual double GetRadiusMax() const
Largest radial distance at which the tank response is defined.
virtual double StDev(const double theta, const double r, const ulong muons) const
Standard deviation of signal, given fixed number of muons.
virtual double GetRadiusMin() const
Smallest radial distance at which the tank response is defined.

, generated on Tue Sep 26 2023.