icemc
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
EarthModel Class Reference

Shape of the earth, ice thicknesses, profiles of earth layers, densities, neutrino absorption. More...

#include <earthmodel.hh>

Inheritance diagram for EarthModel:
IceModel

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)
 

Protected Attributes

int EARTH_MODEL
 
int CONSTANTICETHICKNESS
 
int CONSTANTCRUST
 
int FIXEDELEVATION
 
int FLATSURFACE
 
int weightabsorption
 
double thetastep
 
double phistep
 
double surfacer [NLON][NLAT]
 
double icer [NLON][NLAT]
 
double waterr [NLON][NLAT]
 
double softsedr [NLON][NLAT]
 
double hardsedr [NLON][NLAT]
 
double uppercrustr [NLON][NLAT]
 
double middlecrustr [NLON][NLAT]
 
double lowercrustr [NLON][NLAT]
 
double geoid [NLAT]
 
double MIN_ALTITUDE_CRUST
 
double elevationarray [NLON][NLAT]
 
double waterthkarray [NLON][NLAT]
 
double icethkarray [NLON][NLAT]
 
double softsedthkarray [NLON][NLAT]
 
double hardsedthkarray [NLON][NLAT]
 
double uppercrustthkarray [NLON][NLAT]
 
double middlecrustthkarray [NLON][NLAT]
 
double lowercrustthkarray [NLON][NLAT]
 
double crustthkarray [NLON][NLAT]
 
double waterdensityarray [NLON][NLAT]
 
double icedensityarray [NLON][NLAT]
 
double softseddensityarray [NLON][NLAT]
 
double hardseddensityarray [NLON][NLAT]
 
double uppercrustdensityarray [NLON][NLAT]
 
double middlecrustdensityarray [NLON][NLAT]
 
double lowercrustdensityarray [NLON][NLAT]
 
double area [NLAT]
 
double average_iceth
 

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
 

Detailed Description

Shape of the earth, ice thicknesses, profiles of earth layers, densities, neutrino absorption.

Constructor & Destructor Documentation

◆ EarthModel()

EarthModel::EarthModel ( int  model = 0,
int  WEIGHTABSORPTION_SETTING = 1 
)

◆ ~EarthModel()

EarthModel::~EarthModel ( )
virtual

Member Function Documentation

◆ dGetPhi()

double EarthModel::dGetPhi ( int  ilon)
protected

◆ dGetTheta()

double EarthModel::dGetTheta ( int  itheta)
protected

◆ EarthCurvature()

void EarthModel::EarthCurvature ( double *  array,
double  depth_temp 
)

◆ Geoid() [1/2]

double EarthModel::Geoid ( double  latitude)
virtual

◆ Geoid() [2/2]

double EarthModel::Geoid ( const Position pos)
virtual

◆ GeoidIntersection()

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

◆ Getchord()

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 
)

◆ GetDensity()

double EarthModel::GetDensity ( double  altitude,
const Position  earth_in,
int &  crust_entered,
bool *  inice = 0 
)

◆ GetILonILat()

void EarthModel::GetILonILat ( const Position p,
int &  ilon,
int &  ilat 
)
protected

◆ GetLat()

double EarthModel::GetLat ( double  theta)
protected

◆ GetLon()

double EarthModel::GetLon ( double  phi)
protected

◆ GetSurfaceNormal()

Vector EarthModel::GetSurfaceNormal ( const Position r_out)

◆ IceThickness() [1/2]

double EarthModel::IceThickness ( double  lon,
double  lat 
)
virtual

Reimplemented in IceModel.

◆ IceThickness() [2/2]

double EarthModel::IceThickness ( const Position pos)
virtual

Reimplemented in IceModel.

◆ InFirn()

int EarthModel::InFirn ( const Position pos)
virtual

◆ LongtoPhi_0is180thMeridian()

double EarthModel::LongtoPhi_0is180thMeridian ( double  longitude)
static

◆ LongtoPhi_0isPrimeMeridian()

double EarthModel::LongtoPhi_0isPrimeMeridian ( double  longitude)
static

◆ PickPosnuForaLonLat()

Vector EarthModel::PickPosnuForaLonLat ( double  lon,
double  lat,
double  theta,
double  phi 
)
protected

◆ ReadCrust()

void EarthModel::ReadCrust ( string  test)
protected

◆ RockSurface() [1/2]

double EarthModel::RockSurface ( double  lon,
double  lat 
)
virtual

◆ RockSurface() [2/2]

double EarthModel::RockSurface ( const Position pos)
virtual

◆ SmearPhi()

double EarthModel::SmearPhi ( int  ilon,
double  rand 
)
protected

◆ SmearTheta()

double EarthModel::SmearTheta ( int  ilat,
double  rand 
)
protected

◆ Surface() [1/2]

double EarthModel::Surface ( double  lon,
double  lat 
)
virtual

Reimplemented in IceModel.

◆ Surface() [2/2]

double EarthModel::Surface ( const Position pos)
virtual

Reimplemented in IceModel.

◆ SurfaceAboveGeoid() [1/2]

double EarthModel::SurfaceAboveGeoid ( double  lon,
double  lat 
)
virtual

Reimplemented in IceModel.

◆ SurfaceAboveGeoid() [2/2]

double EarthModel::SurfaceAboveGeoid ( const Position pos)
virtual

Reimplemented in IceModel.

◆ SurfaceDeepIce()

double EarthModel::SurfaceDeepIce ( const Position pos)
virtual

◆ WaterDepth() [1/2]

double EarthModel::WaterDepth ( double  lon,
double  lat 
)
virtual

Reimplemented in IceModel.

◆ WaterDepth() [2/2]

double EarthModel::WaterDepth ( const Position pos)
virtual

Reimplemented in IceModel.

◆ WhereDoesItEnter()

Position EarthModel::WhereDoesItEnter ( const Position posnu,
const Vector nnu 
)

Member Data Documentation

◆ area

double EarthModel::area[NLAT]
protected

◆ average_iceth

double EarthModel::average_iceth
protected

◆ COASTLINE

const double EarthModel::COASTLINE
staticprotected

◆ CONSTANTCRUST

int EarthModel::CONSTANTCRUST
protected

◆ CONSTANTICETHICKNESS

int EarthModel::CONSTANTICETHICKNESS
protected

◆ crustthkarray

double EarthModel::crustthkarray[NLON][NLAT]
protected

◆ EARTH_MODEL

int EarthModel::EARTH_MODEL
protected

◆ elevationarray

double EarthModel::elevationarray[NLON][NLAT]
protected

◆ FIXEDELEVATION

int EarthModel::FIXEDELEVATION
protected

◆ FLATSURFACE

int EarthModel::FLATSURFACE
protected

◆ geoid

double EarthModel::geoid[NLAT]
protected

◆ GEOID_MAX

const double EarthModel::GEOID_MAX
staticprotected

◆ GEOID_MIN

const double EarthModel::GEOID_MIN
staticprotected

◆ getchord_method

constexpr int EarthModel::getchord_method =2
staticprotected

◆ hardseddensityarray

double EarthModel::hardseddensityarray[NLON][NLAT]
protected

◆ hardsedr

double EarthModel::hardsedr[NLON][NLAT]
protected

◆ hardsedthkarray

double EarthModel::hardsedthkarray[NLON][NLAT]
protected

◆ ice_area

double EarthModel::ice_area

◆ icedensityarray

double EarthModel::icedensityarray[NLON][NLAT]
protected

◆ icer

double EarthModel::icer[NLON][NLAT]
protected

◆ icethkarray

double EarthModel::icethkarray[NLON][NLAT]
protected

◆ ILAT_COASTLINE

const int EarthModel::ILAT_COASTLINE
staticprotected

◆ lowercrustdensityarray

double EarthModel::lowercrustdensityarray[NLON][NLAT]
protected

◆ lowercrustr

double EarthModel::lowercrustr[NLON][NLAT]
protected

◆ lowercrustthkarray

double EarthModel::lowercrustthkarray[NLON][NLAT]
protected

◆ max_icethk_perbin

double EarthModel::max_icethk_perbin

◆ max_icevol_perbin

double EarthModel::max_icevol_perbin

◆ MAXTHETA

const double EarthModel::MAXTHETA
staticprotected

◆ middlecrustdensityarray

double EarthModel::middlecrustdensityarray[NLON][NLAT]
protected

◆ middlecrustr

double EarthModel::middlecrustr[NLON][NLAT]
protected

◆ middlecrustthkarray

double EarthModel::middlecrustthkarray[NLON][NLAT]
protected

◆ MIN_ALTITUDE_CRUST

double EarthModel::MIN_ALTITUDE_CRUST
protected

◆ NLAT

constexpr int EarthModel::NLAT =90
staticprotected

◆ NLON

constexpr int EarthModel::NLON =180
staticprotected

◆ NPHI

constexpr int EarthModel::NPHI =180
staticprotected

◆ phistep

double EarthModel::phistep
protected

◆ R_EARTH

constexpr double EarthModel::R_EARTH =6.378140E6
static

◆ radii

double EarthModel::radii[3]

◆ softseddensityarray

double EarthModel::softseddensityarray[NLON][NLAT]
protected

◆ softsedr

double EarthModel::softsedr[NLON][NLAT]
protected

◆ softsedthkarray

double EarthModel::softsedthkarray[NLON][NLAT]
protected

◆ surfacer

double EarthModel::surfacer[NLON][NLAT]
protected

◆ thetastep

double EarthModel::thetastep
protected

◆ uppercrustdensityarray

double EarthModel::uppercrustdensityarray[NLON][NLAT]
protected

◆ uppercrustr

double EarthModel::uppercrustr[NLON][NLAT]
protected

◆ uppercrustthkarray

double EarthModel::uppercrustthkarray[NLON][NLAT]
protected

◆ volume

double EarthModel::volume

◆ waterdensityarray

double EarthModel::waterdensityarray[NLON][NLAT]
protected

◆ waterr

double EarthModel::waterr[NLON][NLAT]
protected

◆ waterthkarray

double EarthModel::waterthkarray[NLON][NLAT]
protected

◆ weightabsorption

int EarthModel::weightabsorption
protected

The documentation for this class was generated from the following files: