1 #include <utl/PhysicalConstants.h>
2 #include <utl/ErrorLogger.h>
3 #include <utl/UTMPoint.h>
4 #include <det/Detector.h>
5 #include <fdet/FDetector.h>
7 #include <fdet/Telescope.h>
9 #include <fdet/FTimeFitModel.h>
10 #include <atm/Atmosphere.h>
17 FTimeFitModel::GetTimeAtAperture(
const double t0,
const double rp,
const double chi0,
18 const double chi_i,
const double thetaSDP,
const int eye,
const int tel)
const
24 case eRealisticAtmNoDeex:
27 det::Detector::GetInstance().GetAtmosphere();
30 const Point& telposition =
31 det::Detector::GetInstance().GetFDetector().GetEye(eye).GetTelescope(tel).GetPosition();
33 const double telescopeHeight = eyeUTM.
GetHeight();
35 const double lSDP = rp / std::sin(chi0 - chi_i);
36 const double height = lSDP * std::sin(chi_i) * std::sin(thetaSDP);
37 const double height_asl = height + telescopeHeight;
38 const double sinAlpha = height/lSDP;
43 const double showerFrontTime = t0 - rp/
kSpeedOfLight/std::tan(chi0 - chi_i);
45 const double propagationTime = verticalTOF/sinAlpha;
49 return propagationTime + showerFrontTime + ((fModel == eRealisticAtm) ? lifeTime : 0.);
60 std::string FTimeFitModel::GetModelName()
const {
65 return std::string(
"realistic speed of light");
68 return std::string(
"vacuum speed of light");
71 return std::string(
"unknown");
Top of the interface to Atmosphere information.
Class to hold and convert a point in geodetic coordinates.
double GetHeight() const
Get the height.
double GetDeExcitationTime(const double height) const
get fluorescence de-excitation time
static const ReferenceEllipsoid & GetWGS84()
Get the auger standard ellipsoid: wgs84.
constexpr double kSpeedOfLight
double GetVerticalTimeOfFlight(const double height1, const double height2) const
Evaluate light signal time-of-flight between two altitudes.