38 #ifndef CrustalProfile_H
39 #define CrustalProfile_H
144 const double& lat,
const double& lon,
const double& depth);
166 void getData(vector<double>& depths, vector<double>& velocities);
176 void getDepths(
double* depths);
186 double getDepth(
const int& k);
235 const double& rayParameter,
282 const double& rayParameter,
324 static int crustalProfileClassCount;
348 double radius[NLAYERS];
353 double velocity[NLAYERS];
405 inline void CrustalProfile::getData(vector<double>& depths,
406 vector<double>& velocities)
410 double R = getEarthRadius();
411 for (
int i=0; i<getNIntervals(); i++)
413 depths.push_back(R - radius[i]);
414 velocities.push_back(velocity[i]);
418 inline double CrustalProfile::getDepth(
const int& k)
420 return getEarthRadius() - radius[k];
423 inline void CrustalProfile::getDepths(
double* depths)
425 double R = getEarthRadius();
426 for (
int i=0; i<getNIntervals(); i++)
427 depths[i] = R - radius[i];
A profile through the Earth model that stores interface radius, and interval P or S wave velocity inf...
int getNIntervals()
Retrieve the number of intervals associated with this Profile.
CrustalProfile()
Default constructor.
double * getVelocities()
Retrieve the P or S wave velocity of each interval, in km/sec.
const Location & getLocation() const
Retrieve a const reference to the Location associated with this Profile.
double getInterfaceRadius(const int &k)
Retrieve the radius of the top of the k'th interval, in km.
taup::TauPSite * getTauPSite()
Return this CrustalProfiles TauPSite object;.
void xtCrust(GreatCircle *greatCircle, const double &rayParameter, double &xTotal, double &zTotal, double &sTotal, double &tTotal)
Compute the horizontal offset (radians) and the travel time (sec) of the ray through the crust.
void xtCrust(GreatCircle *greatCircle, const double &rayParameter, int layid[], double x[], double r[], double v[], double t[], int &npoints)
Compute the horizontal offset (radians) and the travel time (sec) of the ray through the crust.
static int getClassCount()
virtual ~CrustalProfile()
bool operator!=(const CrustalProfile &other)
Inequality operator.
double getVelocity(const int &k)
Retrieve the P or S wave velocity of the k'th interval, in km/sec.
string toString(GreatCircle *greatCircle, double rayParameter)
Returns a formatted string containing detailed information about this Profile.
CrustalProfile & operator=(const CrustalProfile &other)
Equal operator.
CrustalProfile(const CrustalProfile &CrustalProfile)
Copy constructor.
void setup(Grid &grid, const int &phase, const double &lat, const double &lon, const double &depth)
Parameterized constructor.
bool isInCrust()
true location radius > moho radius.
void setTauPSite(taup::TauPSite *tps)
Set the input TauPSite into this CrustalProfile;.
bool operator==(const CrustalProfile &other)
Equality operator.
The GreatCircle class manages information related to a great circle path between two Locations on the...
const int & getHeadWaveInterface()
Retrieve the index of the head wave interface (SLBMGlobals::MANTLE for Pn, Sn; SLBMGlobals::MIDDLE_CR...
A 2 dimensional, horizontal grid of GirdProfile objects.
Manages all information related to a single node in a Grid object.
A Profile object based on values interpolated from nearby GridProfile objects.
The Location Class manages a single point in/on the Earth, which is described by the GRS80 ellipsoid.