Shape of the earth, ice thicknesses, profiles of earth layers, densities, neutrino absorption. More...
#include <earthmodel.hh>
Public Member Functions | |
EarthModel (int model=0, int WEIGHTABSORPTION_SETTING=1) | |
virtual double | Geoid (double latitude) |
virtual double | Geoid (const Position &pos) |
virtual double | IceThickness (double lon, double lat) |
virtual double | IceThickness (const Position &pos) |
virtual double | Surface (double lon, double lat) |
virtual double | Surface (const Position &pos) |
virtual int | InFirn (const Position &pos) |
virtual double | SurfaceDeepIce (const Position &pos) |
virtual double | SurfaceAboveGeoid (double lon, double lat) |
virtual double | SurfaceAboveGeoid (const Position &pos) |
virtual double | WaterDepth (double lon, double lat) |
virtual double | WaterDepth (const Position &pos) |
virtual double | RockSurface (double lon, double lat) |
virtual double | RockSurface (const Position &pos) |
double | GetDensity (double altitude, const Position earth_in, int &crust_entered, bool *inice=0) |
int | Getchord (bool unbiased_selection, double len_int_kgm2, const Position &earth_in, double distance_in_ice, bool include_ice_absorption, const Position &posnu, int inu, double &chord, double &probability_tmp, double &weight1_tmp, double &nearthlayers, double myair, double &total_kgm2, int &crust_entered, int &mantle_entered, int &core_entered) |
Vector | GetSurfaceNormal (const Position &r_out) |
void | EarthCurvature (double *array, double depth_temp) |
Position | WhereDoesItEnter (const Position &posnu, const Vector &nnu) |
int | GeoidIntersection (Vector x0, Vector p0, Position *int1, Position *int2, double extra_height=5500, double *ds=0) const |
Static Public Member Functions | |
static double | LongtoPhi_0isPrimeMeridian (double longitude) |
static double | LongtoPhi_0is180thMeridian (double longitude) |
Public Attributes | |
double | radii [3] |
double | volume |
double | ice_area |
double | max_icevol_perbin |
double | max_icethk_perbin |
Static Public Attributes | |
static constexpr double | R_EARTH =6.378140E6 |
Protected Member Functions | |
void | ReadCrust (string) |
double | SmearPhi (int ilon, double rand) |
double | SmearTheta (int ilat, double rand) |
double | dGetTheta (int itheta) |
double | dGetPhi (int ilon) |
void | GetILonILat (const Position &, int &ilon, int &ilat) |
double | GetLat (double theta) |
double | GetLon (double phi) |
Vector | PickPosnuForaLonLat (double lon, double lat, double theta, double phi) |
Shape of the earth, ice thicknesses, profiles of earth layers, densities, neutrino absorption.
Definition at line 40 of file earthmodel.hh.
int EarthModel::GeoidIntersection | ( | Vector | x0, |
Vector | p0, | ||
Position * | int1, | ||
Position * | int2, | ||
double | extra_height = 5500 , |
||
double * | ds = 0 |
||
) | const |
The reference ellipsoid is
x^2 y^2 z^2 -— + --— + --— = 1 R^2_eq R^2_eq + R^2_po
or x^2 + y^2 + r z^2 - R^2_eq= 0
where r is the ratio of squares of the equatorial to polar radius.
we have {x} = {x0} + {p0} d
or
x = x0_x + p0_x * d y = x0_y + p0_y * d z = x0_z + p0_z* d
so we must solve the quadratic in terms of d
Definition at line 1083 of file earthmodel.cc.