1 #ifndef _LDFFinderKG_NKGLDF_h_
2 #define _LDFFinderKG_NKGLDF_h_
9 #include <utl/AugerUnits.h>
12 namespace LDFFinderKG {
17 NKGLDF(
const double refDistance) :
VLDF(refDistance, 18, 2) { }
20 NKGLDF(
const double refDistance,
const unsigned int shapeSize) :
VLDF(refDistance, shapeSize, 2) { }
26 Value(
const double r,
const std::vector<double>&
shape)
30 const double beta = shape[0];
41 const double beta = shape[0];
42 const double gamma = shape[1];
46 return Value(r, shape) * (
48 (tbg - 1)*(2*
k700*beta*r + tbg*
r2)
53 ShapeModel(
const double cosTheta,
const double showerSize)
56 std::vector<double>
shape(2);
58 double& beta = shape[0];
59 const double lgS = std::log10(showerSize);
60 const double sec = 1 / cosTheta;
67 beta = a0 + a1*lgS + sec*(b0 + b1*lgS + sec*(c0 + c1*
lgS));
69 double& gamma = shape[1];
85 (fa0 + fa1 *
lgS) / (std::exp((fs0 + fs1 *
lgS) * (cos2 - (fp0 + fp1 * lgS))) + 1) +
86 fb *
std::pow(cos2, fet) / (std::exp((lgS - fps) * fss) + 1) -
96 const double lgS = std::log10(showerSize);
constexpr T Sqr(const T &x)
const double fReferenceDistance
std::vector< double > fShapeModelVector
double pow(const double x, const unsigned int i)
NKGLDF(const double refDistance, const unsigned int shapeSize)
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
unsigned int GetNShapeParameters() const
return fBetaUncertaintyModelVector *[0] exp(fBetaUncertaintyModelVector[1]*lgS)
NKGLDF(const double refDistance)
virtual std::vector< double > ShapeModel(const double cosTheta, double showerSize) const =0
virtual double BetaUncertainty(const double showerSize) const =0