/** \author Javier Gonzalez \author Hans Dembinski \date 17 Nov 2011 */ #ifndef _tls_VTankResponse_h_ #define _tls_VTankResponse_h_ namespace tls { /** \class VTankResponse \brief Interface class for coupling different tank response calculations into the reconstruction code. Common arguments are "theta" for the zenith angle of incoming muons and "r" the radial distance of the station to the shower axis. \author Javier Gonzalez \author Hans Dembinski \date 17 Nov 2011 \ingroup has_tools */ class VTankResponse { public: typedef unsigned long ulong; VTankResponse() {} virtual ~VTankResponse() {} /// PDF of signal, given a fixed number of muons. virtual double PDF(const double signal, const double theta, const double r, const ulong muons) const = 0; /// Probability of signal begin smaller than smax, given a fixed number of muons. virtual double CDF(const double smax, const double theta, const double r, const ulong muons) const = 0; /// Average signal, given fixed number of muons. virtual double Mean(const double theta, const double r, const ulong muons) const = 0; /// Standard deviation of signal, given fixed number of muons. virtual double StDev(const double theta, const double r, const ulong muons) const = 0; /// Smallest zenith angle at which the tank response is defined. virtual double GetThetaMin() const = 0; /// Largest zenith angle at which the tank response is defined. virtual double GetThetaMax() const = 0; /// Smallest radial distance at which the tank response is defined. virtual double GetRadiusMin() const = 0; /// Largest radial distance at which the tank response is defined. virtual double GetRadiusMax() const = 0; /// PDF of signal, given an average number of muons (Poisson convolved). double PoissonConvolvedPDF(const double signal, const double theta, const double r, const double muons) const; /// Probability of signal begin smaller [complement = false] /// or greater than [complement = true] than sThreshold, /// given an average number of muons (Poisson convolved). double PoissonConvolvedCDF(const double sThreshold, const double theta, const double r, const double muons, const bool complement) const; /// Mean and standard deviation of signal, given an average number of muons (Poisson convolved). void PoissonConvolvedMeanAndStDev(double& mean, double& stDev, const double theta, const double r, const double muons) const; }; } // tls #endif // _tls_VTankResponse_h_ // Configure (x)emacs for this file ... // Local Variables: // mode:c++ // compile-command: "make -C .. -k" // End: