75 double posnu_length=posnu.
Mag();
86 double costheta=-1*(posnu*ntemp)/posnu_length;
90 double b=-1*2*posnu_length*costheta;
91 double c=posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
98 distance=(-1*b+sqrt(b*b-4*a*c))/2;
101 r_out = posnu + distance*ntemp;
106 c = posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
111 distance=distance/2.;
113 r_out = posnu + distance*ntemp;
116 c = posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
118 distance=distance/2.;
120 r_out = posnu + distance*ntemp;
123 c = posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
125 distance=distance/2.;
127 r_out = posnu + distance*ntemp;
130 c = posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
137 r_out=antarctica->
Surface(lon,lat)/posnu.
Mag()*posnu;
141 distance=distance*1.5;
143 r_out = posnu + distance*ntemp;
146 c = posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
148 distance=distance*2./3.;
149 r_out = posnu + distance*ntemp;
152 c = posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
160 distance=distance*1.5;
162 r_out = posnu + distance*ntemp;
165 c = posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
167 distance=distance*5./6.;
169 r_out = posnu + distance*ntemp;
172 c = posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
174 distance=distance*4./5.;
175 r_out = posnu + distance*ntemp;
178 c = posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
183 distance=distance*7./6.;
185 r_out = posnu + distance*ntemp;
188 c = posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
191 distance=distance*6./7.;
193 r_out = posnu + distance*ntemp;
196 c = posnu_length*posnu_length - pow(antarctica->
Surface(lon,lat),2);
202 distance=(-1*b+sqrt(b*b-4*a*c))/2;
203 r_out = posnu + distance*ntemp;
Vector nrf_iceside_eachboresight[5][Anita::NLAYERS_MAX][Anita::NPHI_MAX]
Definition: ray.hh:37
double Lat() const
Returns latitude, where the +z direction is at 0 latitude.
Definition: position.cc:47
void PrintAnglesofIncidence()
Definition: ray.cc:27
This class represents a three-vector. Operators are overloaded to provide for the familiar operations...
Definition: vector.hh:27
int whichray
Definition: icemc.cc:162
Vector nsurf_rfexit
Definition: ray.hh:33
Vector nsurf_rfexit_db
Definition: ray.hh:34
Position rfexit[5]
Definition: ray.hh:42
Ice thicknesses and water depth.
Definition: icemodel.hh:88
void GetRFExit(Settings *settings1, Anita *anita1, int whichray, Position posnu, Position posnu_down, Position r_bn, Position r_boresights[Anita::NLAYERS_MAX][Anita::NPHI_MAX], int whichtry, IceModel *antarctica)
Definition: ray.cc:54
double Surface(double lon, double lat)
Definition: icemodel.cc:1053
int TraceRay(Settings *settings1, Anita *anita1, int whichiteration, double n_depth)
Definition: ray.cc:197
This class is a 3-vector that represents a position on the Earth's surface.
Definition: position.hh:26
Vector yaxis
Definition: ray.hh:211
Ray()
Definition: ray.cc:18
double slopeyy
Definition: ray.hh:47
static const int NPHI_MAX
max number of antennas around in phi (in smex, 16)
Definition: anita.hh:61
Position rfexit_eachboresight[5][Anita::NLAYERS_MAX][Anita::NPHI_MAX]
Definition: ray.hh:39
int GetSurfaceNormal(Settings *settings1, IceModel *antarctica, Vector posnu, double &slopeyangle, int whichtry)
Definition: ray.cc:176
Ray tracing.
Definition: ray.hh:20
Reads in and stores input settings for the run.
Definition: Settings.h:35
Vector n_exit2bn[5]
Definition: ray.hh:32
double slopeyx
Definition: ray.hh:47
static const int NLAYERS_MAX
max number of layers (in smex design, it's 4)
Definition: anita.hh:59
int RandomizeSurface(Settings *settings1, Position rfexit_temp, Vector posnu, IceModel *antarctica, double &slopeyangle, int whichtry)
Definition: ray.cc:108
double slopeyz
Definition: ray.hh:47
void Initialize()
Definition: ray.cc:32
Position rfexit_db[5]
Definition: ray.hh:41
double Lon() const
Returns longitude.
Definition: position.cc:51
int GetRayIceSide(const Vector &n_exit2bn, const Vector &nsurf_rfexit, double nexit, double nenter, Vector &nrf2_iceside)
Definition: ray.cc:297
Vector nrf_iceside[5]
Definition: ray.hh:35
Contains everything about positions within payload and signals it sees for each event, in both the trigger and signal paths.
Definition: anita.hh:32
Vector zaxis
Definition: ray.hh:212
static int WhereDoesItLeave(const Position &posnu, const Vector &ntemp, IceModel *antarctica, Position &r_out)
Definition: ray.hh:73
Vector xaxis
Definition: ray.hh:210
Vector n_exit2bn_eachboresight[5][Anita::NLAYERS_MAX][Anita::NPHI_MAX]
Definition: ray.hh:38
double Mag() const
Definition: vector.cc:65
double sum_slopeyness
Definition: ray.hh:45
Radiation from interaction.
Definition: signal.hh:13