43 EarthModel(
int model = 0,
int WEIGHTABSORPTION_SETTING=1);
46 static constexpr
double R_EARTH=6.378140E6;
54 double max_icevol_perbin;
55 double max_icethk_perbin;
56 virtual double Geoid(
double latitude) ;
57 virtual double Geoid(
const Position &pos) ;
58 virtual double IceThickness(
double lon,
double lat) ;
59 virtual double IceThickness(
const Position& pos) ;
60 virtual double Surface(
double lon,
double lat) ;
61 virtual double Surface(
const Position& pos) ;
62 virtual int InFirn(
const Position& pos) ;
63 virtual double SurfaceDeepIce(
const Position& pos) ;
64 virtual double SurfaceAboveGeoid(
double lon,
double lat) ;
65 virtual double SurfaceAboveGeoid(
const Position& pos) ;
66 virtual double WaterDepth(
double lon,
double lat) ;
67 virtual double WaterDepth(
const Position& pos) ;
68 virtual double RockSurface(
double lon,
double lat) ;
69 virtual double RockSurface(
const Position& pos) ;
70 double GetDensity(
double altitude,
const Position earth_in,
int& crust_entered,
bool * inice = 0);
71 int Getchord(
bool unbiased_selection,
74 double distance_in_ice,
75 bool include_ice_absorption,
79 double& probability_tmp,
89 static double LongtoPhi_0isPrimeMeridian(
double longitude);
90 static double LongtoPhi_0is180thMeridian(
double longitude);
91 void EarthCurvature(
double *array,
double depth_temp);
102 int CONSTANTICETHICKNESS;
106 int weightabsorption;
110 static constexpr
int getchord_method=2;
112 static const double GEOID_MAX;
113 static const double GEOID_MIN;
114 static const double COASTLINE;
117 static constexpr
int NLON=180;
118 static constexpr
int NLAT=90;
119 static constexpr
int NPHI=180;
120 static const double MAXTHETA;
123 static const int ILAT_COASTLINE;
124 double surfacer[NLON][NLAT];
125 double icer[NLON][NLAT];
126 double waterr[NLON][NLAT];
127 double softsedr[NLON][NLAT];
128 double hardsedr[NLON][NLAT];
129 double uppercrustr[NLON][NLAT];
130 double middlecrustr[NLON][NLAT];
131 double lowercrustr[NLON][NLAT];
133 double MIN_ALTITUDE_CRUST;
135 double elevationarray[NLON][NLAT];
136 double waterthkarray[NLON][NLAT];
137 double icethkarray[NLON][NLAT];
138 double softsedthkarray[NLON][NLAT];
139 double hardsedthkarray[NLON][NLAT];
140 double uppercrustthkarray[NLON][NLAT];
141 double middlecrustthkarray[NLON][NLAT];
142 double lowercrustthkarray[NLON][NLAT];
143 double crustthkarray[NLON][NLAT];
144 double waterdensityarray[NLON][NLAT];
145 double icedensityarray[NLON][NLAT];
146 double softseddensityarray[NLON][NLAT];
147 double hardseddensityarray[NLON][NLAT];
148 double uppercrustdensityarray[NLON][NLAT];
149 double middlecrustdensityarray[NLON][NLAT];
150 double lowercrustdensityarray[NLON][NLAT];
152 double average_iceth;
156 void ReadCrust(
string);
157 double SmearPhi(
int ilon,
double rand);
158 double SmearTheta(
int ilat,
double rand) ;
159 double dGetTheta(
int itheta) ;
160 double dGetPhi(
int ilon) ;
161 void GetILonILat(
const Position&,
int& ilon,
int& ilat) ;
162 double GetLat(
double theta) ;
163 double GetLon(
double phi) ;
164 Vector PickPosnuForaLonLat(
double lon,
double lat,
double theta,
double phi);
169 constexpr
double densities[3]={14000.,3400.,2900.};
Functions you need to generate a primary interaction including cross sections and picking charged cur...
This class is a 3-vector that represents a position on the Earth's surface.
Stores everything about a particular neutrino interaction. Interaction.
int GeoidIntersection(Vector x0, Vector p0, Position *int1, Position *int2, double extra_height=5500, double *ds=0) const
Shape of the earth, ice thicknesses, profiles of earth layers, densities, neutrino absorption...
This class represents a three-vector. Operators are overloaded to provide for the familiar operations...
Ice thicknesses and water depth.