1 #ifndef _LDFFinderKG_NKGAGLDF_h_
2 #define _LDFFinderKG_NKGAGLDF_h_
9 #include <utl/AugerUnits.h>
12 namespace LDFFinderKG {
20 Value(
const double r,
const std::vector<double>&
shape)
24 const double beta = shape[0];
31 std::pow((k700 + r)/(rRef + k700), beta) *
39 const double beta = shape[0];
40 const double gamma = shape[1];
49 return Value(r, shape) *
50 (
std::pow(beta/r + beta/(r + k700) + 3*gamma/(r + k3000), 2) - (beta/r2 + beta/r700_2 + 3*gamma/
r3000_2));
54 ShapeModel(
const double cosTheta,
const double showerSize)
57 const double lgSRef = std::log10(showerSize);
60 std::vector<double>
shape(2);
61 double& beta = shape[0];
62 double& gamma = shape[1];
76 beta = a0_Beta + a1_Beta*lgSRef + secTheta*(b0_Beta + secTheta*(c0_Beta + secTheta*
d0_Beta));
93 const double lgS = std::log10(showerSize);
unsigned int GetNShapeParameters() const
constexpr T Sqr(const T &x)
const double fReferenceDistance
std::vector< double > fShapeModelVector
double pow(const double x, const unsigned int i)
virtual double Value(const double r, const std::vector< double > &shape) const =0
virtual double SecondDerivative(const double r, const std::vector< double > &shape) const =0
std::vector< double > fBetaUncertaintyModelVector
virtual std::vector< double > ShapeModel(const double cosTheta, double showerSize) const =0
NKGAGLDF(const double refDistance)
return fBetaUncertaintyModelVector *[0] exp(fBetaUncertaintyModelVector[1]*lgS)
virtual double BetaUncertainty(const double showerSize) const =0