Horizon.h
1 //-*-C++-*-
2 /***************************************************************************
3  *
4  * Copyright (C) 2008 by Willem van Straten
5  * Licensed under the Academic Free License version 2.1
6  *
7  ***************************************************************************/
8 
9 // psrchive/Util/genutil/Horizon.h
10 
11 #ifndef __Horizon_H
12 #define __Horizon_H
13 
14 #include "Directional.h"
15 
17 
18 class Horizon : public Directional
19 {
20 public:
21 
23  Horizon (double az=0, double el=0);
24 
26  double get_azimuth () const;
27 
29  double get_elevation () const;
30 
32  double get_zenith () const;
33 
35  std::string get_name () const;
36 
38  std::vector< std::pair<double,Mount*> >
39  slew_times (const sky_coord& coords);
40 
41  std::vector< std::pair<double,Mount*> >
42  slew_times (double az, double el);
43 
44  void set_minimum_azimuth (double a) { minimum_azimuth = a; }
45  double get_minimum_azimuth () const { return minimum_azimuth; }
46 
47  void set_maximum_azimuth (double a) { maximum_azimuth = a; }
48  double get_maximum_azimuth () const { return maximum_azimuth; }
49 
50  void set_minimum_elevation (double a) { minimum_elevation = a; }
51  double get_minimum_elevation () const { return minimum_elevation; }
52 
53  void set_maximum_elevation (double a) { maximum_elevation = a; }
54  double get_maximum_elevation () const { return maximum_elevation; }
55 
56  void set_azimuth_velocity (double a) { azimuth_velocity = a; }
57  double get_azimuth_velocity () const { return azimuth_velocity; }
58 
59  void set_elevation_velocity (double a) { elevation_velocity = a; }
60  double get_elevation_velocity () const { return elevation_velocity; }
61 
62 protected:
63 
65  Matrix<3,3,double> get_basis (const Vector<3,double>& from_source) const;
66 
68  mutable double azimuth;
69 
71  mutable double elevation;
72 
73  double minimum_azimuth;
74  double maximum_azimuth;
75 
76  double minimum_elevation;
77  double maximum_elevation;
78 
79  double azimuth_velocity;
80  double elevation_velocity;
81 };
82 
83 #endif
std::string get_name() const
Get the name of the mount.
Definition: Horizon.C:48
Directional antennae.
Definition: Directional.h:17
void set_source_coordinates(const sky_coord &coords)
Set the coordinates of the source.
Definition: Mount.C:31
double elevation
The telescope elevation in radians.
Definition: Horizon.h:76
Horizon(double az=0, double el=0)
Default constructor.
Definition: Horizon.C:12
double get_elevation() const
Get the elevation angle in radians.
Definition: Horizon.C:34
double get_azimuth() const
Get the azimuth angle in radians.
Definition: Horizon.C:27
Matrix< 3, 3, double > get_basis(const Vector< 3, double > &from_source) const
Get the receptor basis in the reference frame of the observatory.
Definition: Horizon.C:54
Class for sky coordinates.
Definition: sky_coord.h:19
double azimuth
The telescope azimuth in radians.
Definition: Horizon.h:73
std::vector< std::pair< double, Mount * > > slew_times(const sky_coord &coords)
Return all possible slew times and resulting telescope states.
Definition: Horizon.C:106
Horizon mounted antenna with first rotation in horizontal plane.
Definition: Horizon.h:18
double get_zenith() const
Get the zenith angle in radians.
Definition: Horizon.C:41

Generated using doxygen 1.8.17