1 #ifndef _ScintillatorLDFFinderKG_NKGScintillatorLDF_h_
2 #define _ScintillatorLDFFinderKG_NKGScintillatorLDF_h_
9 #include <utl/AugerUnits.h>
12 namespace ScintillatorLDFFinderKG {
20 Value(
const double r,
const std::vector<double>&
shape)
24 const double beta = shape[0];
30 std::pow((k700 + r)/(rRef + k700), beta+gamma);
37 const double beta = shape[0];
38 const double gamma = shape[1];
42 *
std::pow((r+k700)/(k700+rRef),beta+gamma)/rRef)
51 const double beta = shape[0];
52 const double gamma = shape[1];
58 return Value(r, shape) * (
60 (tbg - 1)*(2*k700*beta*r + tbg*
r2)
65 ShapeModel(
const double cosTheta,
const double showerSize)
68 const double lgSRef = std::log10(showerSize);
86 std::vector<double>
shape(2);
87 double& beta = shape[0];
88 double& gamma = shape[1];
92 (b0 + b1*lgSRef) * secTheta +
97 (e0 + e1*lgSRef) * secTheta +
98 (f0 + f1*lgSRef) * sec2Theta -
beta;
107 const double lgS = std::log10(showerSize);
unsigned int GetNShapeParameters() const
const double fReferenceDistance
constexpr T Sqr(const T &x)
virtual std::vector< double > ShapeModel(const double cosTheta, double showerSize) const =0
double pow(const double x, const unsigned int i)
virtual double BetaUncertainty(const double showerSize) const =0
std::vector< double > fShapeModelVector
virtual double FirstDerivative(const double r, const std::vector< double > &shape) const =0
std::vector< double > fBetaUncertaintyModelVector
virtual double Value(const double r, const std::vector< double > &shape) const =0
return fBetaUncertaintyModelVector *[0] exp(fBetaUncertaintyModelVector[1]*lgS)
virtual double SecondDerivative(const double r, const std::vector< double > &shape) const =0
NKGScintillatorLDF(const double refDistance)