icemc
|
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 | ~EarthModel () |
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 (Settings *settings1, 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) |
Static Protected Attributes | |
static constexpr int | getchord_method =2 |
static const double | GEOID_MAX |
static const double | GEOID_MIN |
static const double | COASTLINE |
static constexpr int | NLON =180 |
static constexpr int | NLAT =90 |
static constexpr int | NPHI =180 |
static const double | MAXTHETA |
static const int | ILAT_COASTLINE |
Shape of the earth, ice thicknesses, profiles of earth layers, densities, neutrino absorption.
EarthModel::EarthModel | ( | int | model = 0 , |
int | WEIGHTABSORPTION_SETTING = 1 |
||
) |
|
virtual |
|
protected |
|
protected |
void EarthModel::EarthCurvature | ( | double * | array, |
double | depth_temp | ||
) |
|
virtual |
|
virtual |
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
int EarthModel::Getchord | ( | Settings * | settings1, |
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 | ||
) |
double EarthModel::GetDensity | ( | double | altitude, |
const Position | earth_in, | ||
int & | crust_entered, | ||
bool * | inice = 0 |
||
) |
|
protected |
|
protected |
|
protected |
|
virtual |
Reimplemented in IceModel.
|
virtual |
|
static |
|
static |
|
protected |
|
protected |
|
virtual |
|
virtual |
|
protected |
|
protected |
|
virtual |
Reimplemented in IceModel.
|
virtual |
Reimplemented in IceModel.
|
virtual |
|
virtual |
Reimplemented in IceModel.
|
protected |
|
protected |
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
staticprotected |
|
staticprotected |
|
staticprotected |
double EarthModel::ice_area |
|
staticprotected |
double EarthModel::max_icethk_perbin |
double EarthModel::max_icevol_perbin |
|
staticprotected |
|
protected |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
protected |
|
static |
double EarthModel::radii[3] |
|
protected |
double EarthModel::volume |
|
protected |