33                    double& azimuth, 
double& elevation); 
 
   34     void sla_dh2e_(
double& azimuth, 
double& elevation, 
double& observer_latitude,
 
   39                     double& ecliptic_longitude, 
double& ecliptic_latitude);
 
   40     void sla_ecleq_(
double& ecliptic_longitude, 
double& ecliptic_latitude, 
double& time,
 
   45                     double& galactic_longitude, 
double& galactic_latitude);
 
   46     void sla_galeq_(
double& galactic_longitude, 
double& galactic_latitude,
 
   50     void sla_galsup_(
double& galactic_longitude, 
double& galactic_latitude,
 
   51                      double& sgalactic_longitude, 
double& sgalactic_latitude);
 
   52     void sla_supgal_(
double& sgalactic_longitude, 
double& sgalactic_latitude,
 
   53                      double& galactic_longitude, 
double& galactic_latitude);
 
   60                     double& mjd, 
int& status);
 
   63     void sla_clyd_(
int& year, 
int& month, 
int& 
day, 
int& nyears, 
int& ndays, 
int&status);
 
   67                     int result[4],  
int& status); 
 
   79                      double& rightascension, 
double& 
declination, 
double& diam);
 
   82     void sla_preces_(
char *system, 
double& ep0, 
double& ep1, 
double& ra, 
double& dec, 
int length);
 
   87     void sla_prenut_(
double& epoch, 
double& mjd, 
double rmatpn[3][3] );
 
  104   inline double wrap( 
double angle )
 
  106     int n = int(angle / (2 * 
JMATH::PI)) - (angle < 0);
 
  127     const double zone_width = 6 * 
JMATH::PI / 180;
 
  128     return  -
JMATH::PI + (utmzone -1)*zone_width + zone_width/2;
 
  145     if ( latitude_deg > 84. || latitude_deg < -80.)
 
  147         std::cout << 
"UTM coordinate system not defined for given Latitude: %f (max 84 deg N or min -80 deg S), setting meridian convergence angle to 0 deg.";
 
  158     double omega   = lambda-lambda0;
 
  162     double e2 = 0.0066943800;  
 
  164     double rho = 
a*(1.-e2)/
pow(1.-e2*
pow(sin(phi),2),3./2.);
 
  165     double nu  = 
a/sqrt(1-e2*
pow(sin(phi),2.));
 
  170     double gamma = sin(phi) * omega
 
  171       - sin(phi) * 
pow(omega,3.)/3.  * 
pow(cos(phi),2.) * (2.*
pow(psi,2.)-psi)
 
  172       - sin(phi) * 
pow(omega,5.)/15. * 
pow(cos(phi),4.) * (
pow(psi,4.)*(11.-24.*
pow(t,2.))-
 
  173                                                            pow(psi,3.)*(11.-36.*
pow(t,2.))+
 
  174                                                            2.*
pow(psi,2.)*(1.-7.*
pow(t,2.))+
 
  177       - sin(phi) * 
pow(omega,7.)/315. * 
pow(cos(phi),6.) * (17.-26.*
pow(t,2.)+2.*
pow(t,4.));
 
  193   inline void correct_to_j2000(
double& in_dec, 
double& in_ra, 
double& mjd, 
double& out_dec, 
double& out_ra, 
bool reverse=
false)
 
  201     double rmatpn[3][3] {};
 
  204     JMATH::JMatrix3D M = 
JMATH::JMatrix3D(rmatpn[0][0], rmatpn[0][1], rmatpn[0][2], rmatpn[1][0], rmatpn[1][1], rmatpn[1][2], rmatpn[2][0], rmatpn[2][1], rmatpn[2][2]);
 
  211     v[0] = sin (theta) * cos(phi);
 
  212     v[1] = sin (theta) * sin(phi);
 
  225     double phi_2 = atan2( 
v[1], 
v[0] ); 
double theta_2 =  acos(
v[2]);
 
  227     out_ra = 
wrap(phi_2);
 
  257                         (
double) amin  /   60.0 + 
 
  258                         (double) asec  / 3600.0)  /  180.0;
 
  274     double ha = (
JMATH::PI * (double) hour /    12.0 + 
 
  308                     const double right_ascension) :
 
  324       double dec_j2000; 
double ra_j2000;
 
  328       const double const_dec_j2000 = dec_j2000;
 
  329       return const_dec_j2000;
 
  340       double dec_j2000; 
double ra_j2000;
 
  344       const double const_ra_j2000 = ra_j2000;
 
  345       return const_ra_j2000;
 
  374                          const double gal_longitude) :
 
  409                        const double& azimuth) :
 
  460                           const int minutesNorth,
 
  461                           const int degreesEast,
 
  462                           const int minutesEast) 
 
  527       double ha  = lst - ra;
 
  537       double theta = -elevation + 
JMATH::PI/2.0;
 
  569       double azimuth_geo = azimuth_utm - meridian_convergence_angle;
 
  571       double elevation   = -zenith  + 
JMATH::PI/2.0;
 
  583       double ra = lst - ha;
 
  604       double &dec_j2000_n = 
const_cast<double&
> (dec_j2000);
 
  605       double &ra_j2000_n  = 
const_cast<double&
> (ra_j2000);
 
  606       double galactic_longitude; 
double galactic_latitude;
 
  607       sla_eqgal_(ra_j2000_n, dec_j2000_n, galactic_longitude, galactic_latitude);
 
  633       double elevation = -theta  + 
JMATH::PI/2.0;
 
  658       double ra = lst - ha;
 
Auxiliary class to make coordinate transformations for a specific geographical location of the detect...
 
JNeutrinoDirection getDirectionOfNeutrino(const double &t1, const JSourceLocation &pos) const
Get direction pointing to source.
 
JAstronomy(const JGeographicalLocation &location)
Constructor.
 
JSourceLocation getLocationOfSource(const double t1, const JNeutrinoDirection &dir) const
Get location of source.
 
JSourceLocation getLocationOfSourceFromZenithAzimuth(const double t1, const JGEOMETRY3D::JAngle3D &dir) const
Get location of source given a neutrino direction (zenith,azimuth) and time.
 
JGalacticCoordinates getGalacticCoordinatesOfSource(const double t1, const JGEOMETRY3D::JAngle3D &dir) const
Get location of source in galactic coordinates given a neutrino direction and time.
 
Location of astrophysical source in Galactic coordinates.
 
JGalacticCoordinates()
Default constructor.
 
const double & getGalacticLongitude() const
 
JGalacticCoordinates(const double gal_latitude, const double gal_longitude)
Constructor.
 
const double & getGalacticLatitude() const
 
const double & getLongitude() const
 
const double & getLatitude() const
 
JGeographicalLocation()
Default constructor.
 
JGeographicalLocation(const int degreesNorth, const int minutesNorth, const int degreesEast, const int minutesEast)
Constructor.
 
JGeographicalLocation(const double latitude, const double longitude)
Constructor.
 
Direction of incident neutrino.
 
JNeutrinoDirection()
Default constructor.
 
JNeutrinoDirection(const double &zenith, const double &azimuth)
Constructor.
 
const double & getAzimuth() const
 
const double & getZenith() const
 
Location of astrophysical source.
 
const double & getDeclination() const
 
double getDeclinationJ2000(const double t1) const
Get declination in J2000.
 
JSourceLocation()
Default constructor.
 
const double & getRightAscension() const
 
JSourceLocation(const double declination, const double right_ascension)
Constructor.
 
double getRightAscensionJ2000(const double t1) const
Get Right Ascension in J2000.
 
Data structure for angles in three dimensions.
 
double getTheta() const
Get theta angle.
 
double getPhi() const
Get phi angle.
 
JMatrix3D & transpose()
Transpose.
 
void transform(double &__x, double &__y, double &__z) const
Transform.
 
Singular value decomposition.
 
const JMatrix3D & invert(const double precision=1.0e-12) const
Get inverted matrix.
 
static const JGeographicalLocation Sicily(36, 16, 16, 06)
 
static const JSourceLocation VELAX(getRadians(-45, -10, -35.2), getHourAngle(8, 35, 20.66))
 
double getHourAngle(const int hour, const int min, const double sec)
Convert hour angle to radians.
 
double getDot(const JSourceLocation &first, const JSourceLocation &second)
Dot product.
 
void sla_clyd_(int &year, int &month, int &day, int &nyears, int &ndays, int &status)
 
double wrap(double angle)
 
double longitude_of_central_meridian(int utmzone)
 
static const double NUMBER_OF_SECONDS_PER_YEAR
 
void sla_dh2e_(double &azimuth, double &elevation, double &observer_latitude, double &hourangle, double &declination)
 
void sla_ecleq_(double &ecliptic_longitude, double &ecliptic_latitude, double &time, double &rightascension, double &declination)
 
void sla_djcal_(int &precision, double &mjd, int result[4], int &status)
 
static const JSourceLocation RXJ1713(getRadians(-39, -46, 0.0), getHourAngle(17, 13, 7))
 
double sla_gmst_(double &ut1)
 
void sla_galeq_(double &galactic_longitude, double &galactic_latitude, double &rightascension, double &declination)
 
void sla_prenut_(double &epoch, double &mjd, double rmatpn[3][3])
 
void sla_dd2tf_(int &ndec, double &day, char sign[1], int result[4])
 
double compute_meridian_convergence_angle(double longitude, double latitude)
 
void sla_eqgal_(double &rightascension, double &declination, double &galactic_longitude, double &galactic_latitude)
 
void sla_galsup_(double &galactic_longitude, double &galactic_latitude, double &sgalactic_longitude, double &sgalactic_latitude)
 
static const double NUMBER_OF_SECONDS_PER_DAY
 
double sla_gmsta_(double &ut1, double &part_day)
 
void sla_eqecl_(double &rightascension, double &declination, double &time, double &ecliptic_longitude, double &ecliptic_latitude)
 
static const JGeographicalLocation ORCA(42, 48, 06, 02)
 
static const double NUMBER_OF_SECONDS_PER_SEDERIAL_DAY
 
void correct_to_j2000(double &in_dec, double &in_ra, double &mjd, double &out_dec, double &out_ra, bool reverse=false)
Convert (Dec, RA) to J2000.
 
double getRadians(const int angle, const int amin, const double asec)
Convert angle to radians.
 
double sla_eqeqx_(double &ut1)
 
void sla_preces_(char *system, double &ep0, double &ep1, double &ra, double &dec, int length)
 
static const JGeographicalLocation ARCA(36, 17, 15, 58)
 
static const double NUMBER_OF_SECONDS_PER_HOUR
 
void sla_supgal_(double &sgalactic_longitude, double &sgalactic_latitude, double &galactic_longitude, double &galactic_latitude)
 
int get_utm_zone(double lat)
 
static const double MJD_EPOCH
 
static const JGeographicalLocation Pylos(36, 33, 16, 06)
 
void sla_rdplan_(double &dtt, int &object, const double &longitude, const double &latitude, double &rightascension, double &declination, double &diam)
 
void sla_de2h_(double &hourangle, double &declination, double &observer_latitude, double &azimuth, double &elevation)
 
double sla_dtt_(double &ut1)
 
static const JGeographicalLocation Antares(42, 48, 06, 10)
 
static const JSourceLocation galacticCenter(-0.5062816, -1.633335)
 
void sla_caldj_(int &year, int &month, int &day, double &mjd, int &status)
 
int sign(const T &value)
Get sign of value.
 
T pow(const T &x, const double y)
Power .
 
static const double PI
Mathematical constants.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
const char *const hourangle