1 #ifndef _utl_PhysicalFuctions_h_
2 #define _utl_PhysicalFuctions_h_
14 #include <utl/PhysicalConstants.h>
21 const double xMax,
const double nMax,
37 const double xMax,
const double nMax,
40 const double sxMax = (xMax - x0) / lambda;
41 const double sn = n / nMax;
44 return x * lambda + x0;
49 inline double Energy(
const double beta)
54 inline double Beta(
const double energy)
57 namespace RefractionIndex {
69 const double temperature,
70 const double pressure,
71 const double vaporPressure);
86 inline double ShowerAge(
const double slantDepth,
const double showerMax)
87 {
return 3 / (1 + 2*showerMax/slantDepth); }
92 const double pressure,
93 const double cosTheta = 0);
98 double GoraCDF(
const double rStar,
const double age);
108 double GoraPDF(
const double rStar,
const double age);
120 inline double EnergyDeposit(
const double depthX,
const double xMax,
const double enCut)
136 double& xMax,
double& yMax);
156 const double cosTheta);
161 const double cosTheta,
const double signal);
165 const double lgExpectedSignal,
const double sin2Theta);
187 const double cosTheta);
192 const double cosTheta,
const double signal);
197 namespace InvisibleEnergy {
232 const double CosTheta);
240 const double CosTheta);
262 namespace XmaxParam {
268 Mean(
const double energy,
const double massNumber,
278 namespace GumbelXmax {
291 Mu(
const double energy,
const double massNumber,
296 Sigma(
const double energy,
const double massNumber,
300 Lambda(
const double energy,
const double massNumber,
double Factor(const double energyEM, const EInteractionModel intMod, const ECompositionModel compMod, const double cosTheta)
invisible energy factor, finv=Etot/Eem, given Eem. CosTheta only needed when using data driven estima...
double InverseGoraCDF(const double fraction, const double age)
constexpr T Sqr(const T &x)
double GoraCDF(const double rStar, const double age)
double GladstoneDale(const double density, const double densityAtSeaLevel, const double refractiveIndexAtSeaLevel)
Calculate the refraction index for a given density.
double Energy(const double beta)
Calculate the electron energy for a relativistic beta.
double ElectronsAboveCut(double enCut)
Fraction of electrons above energy cutoff enCut (in MeV) at age = 1.
constexpr double kElectronMass
double ModelFactor(const EInteractionModel interaction, const ECompositionModel composition)
double FactorDerivative(const double energyEM, const EInteractionModel intMod, const ECompositionModel compMod, const double cosTheta)
derivative of invisible energy factor dfinv/dEem given Eem. CosTheta only needed when using data driv...
constexpr double kRefractiveIndexSeaLevel
double pow(const double x, const unsigned int i)
double StandardDeviation(const double energy, const double massNumber, const HadronicInteractionModel hadModel)
double CherenkovThreshold(const double nRef)
Calculate the electron Cherenkov threshold energy for refraction index.
double MoliereRadius(double temperature, double pressure, const double cosTheta)
The Moliere Radius (2 radiation length above obs-level, GAP-1998-002)
double SignalUncertaintyFactor(const ESignalVarianceModel model, const double cosTheta)
double LambertW(const double x)
constexpr double fraction
double SaturationVaporPressure(const double temperature)
Evaluate the saturation vapor pressure over ice or water.
double Beta(const double energy)
Calculate the electron energy versus the relativistic beta.
double Sigma(const double energy, const double massNumber, const HadronicInteractionModel hadModel)
double GaisserHillas(const double x, const double x0, const double xMax, const double nMax, const double lambda)
Calculate the Gaisser-Hillas function.
double LorentzLorentz(const double verticalDepth)
Calculate the refraction index for a given depth.
constexpr double kAirDensitySeaLevel
double Mean(const double energy, const double massNumber, const HadronicInteractionModel hadModel)
double GoraPDF(const double rStar, const double age)
double SignalUncertainty(const ESignalVarianceModel model, const double cosTheta, const double signal)
double Ciddor95(const double wl, const double temperature, const double pressure, const double vaporPressure)
Wavelength-dependent index of refraction for humid air.
double ShowerAge(const double slantDepth, const double showerMax)
General definition of shower age.
double TriggerProbability(const bool totdMoPSEnabled, const double lgExpectedSignal, const double sin2Theta)
const double * FitParameters(const ECompositionModel composition)
double PoissonFactor(const double sigmaFactor)
double EnergyDeposit(const double age, const double enCut)
Parametrization for the average energy deposit per particle.
double SignalUncertaintyFactor(const ESignalVarianceModel model, const double cosTheta)
double SignalUncertainty(const ESignalVarianceModel model, const double cosTheta, const double signal)
double GaisserHillasInverse(const double n, const double x0, const double xMax, const double nMax, const double lambda)
double Lambda(const double energy, const double massNumber, const HadronicInteractionModel hadModel)
double EnergyLimits(const double energy)
double FactorVariance(const double eCal, const double eTot)
double Mu(const double energy, const double massNumber, const HadronicInteractionModel hadModel)
bool QuadraticMaximumInterpolation(const std::vector< double > &x, const std::vector< double > &y, double &xMax, double &yMax)
double PoissonFactor(const double sigmaFactor)