1 #ifndef _ANITA_REFRACTION_MODEL_HH 2 #define _ANITA_REFRACTION_MODEL_HH 5 #include "AntarcticAtmosphere.h" 23 virtual ~
Model() { ; }
28 virtual double getElevationCorrection(
const Adu5Pat * pat,
const AntarcticCoord * source,
double * correction_at_source = 0,
double dth = 0.01)
const = 0;
43 virtual double getElevationCorrection(
double theta,
double hSource,
double hPayload,
double * correction_at_source = 0)
const = 0;
48 virtual double getElevationCorrection(
const Adu5Pat * pat,
const AntarcticCoord * source,
double * correction_at_source = 0,
double dth = 0.01)
const ;
57 virtual ~
PGFit() { ; }
59 virtual double getElevationCorrection(
double el,
double hSource,
double hPayload,
double * correction_at_source = 0)
const ;
78 Setup() : start_alt(0) , end_alt(40e3), thrown_payload_angle(1), save_path(
true), R_c(6399593.6258), surface_alt(0) {;}
81 double thrown_payload_angle;
89 double apparent_source_angle;
90 double actual_source_angle;
91 double actual_payload_angle;
92 double actual_distance;
93 double surface_distance;
97 double reflection_angle;
107 int raytrace(
const Setup * setup,
Result * result);
111 int nSteps()
const {
return (
int) last_path_x.size(); }
112 const double * lastY()
const {
return &last_path_y[0]; }
113 const double * lastX()
const {
return &last_path_x[0]; }
116 const double * lastGrammage()
const {
return &last_path_X[0]; }
117 const double * lastS()
const {
return &last_path_s[0]; }
118 const double * lastT()
const {
return &last_path_t[0]; }
119 double lastMinAlt()
const;
121 TGraph * makeXYGraph(TGraph * g = 0)
const;
122 TGraph * makeXTGraph(TGraph * g = 0)
const;
123 TGraph * makeSTGraph(TGraph * g = 0)
const;
124 TGraph * makeRTGraph(TGraph * g = 0)
const;
125 TGraph * makePhiAltGraph(TGraph * g = 0)
const;
129 std::vector<double> last_path_x;
130 std::vector<double> last_path_t;
131 std::vector<double> last_path_s;
132 std::vector<double> last_path_y;
133 std::vector<double> last_path_X;
149 : atm(a), step(step_size), use_cache(cache_similar)
151 adjustLatitude(-90,0);
153 void adjustLatitude(
double lat,
double bearing);
155 virtual double getElevationCorrection(
double el,
double hSource,
double hPayload,
double * correction_at_source = 0)
const ;
162 mutable TMutex cache_lock;
164 mutable std::map<UInt_t, std::pair<double,double> > cache;
Adu5Pat – The ADU5 Position and Attitude Data.