Telescope.h
1 //-*-C++-*-
2 /***************************************************************************
3  *
4  * Copyright (C) 2004 - 2016 by Willem van Straten
5  * Licensed under the Academic Free License version 2.1
6  *
7  ***************************************************************************/
8 
9 // psrchive/Base/Extensions/Pulsar/Telescope.h
10 
11 #ifndef __Telescope_Extension_h
12 #define __Telescope_Extension_h
13 
14 #include "Pulsar/ArchiveExtension.h"
15 #include "Directional.h"
16 
17 namespace Pulsar
18 {
19 
21  class Telescope : public Pulsar::Archive::Extension
22  {
23 
24  public:
25 
27  Telescope ();
28 
30  Telescope (const Telescope& extension);
31 
33  const Telescope& operator= (const Telescope& extension);
34 
36  ~Telescope ();
37 
39  Telescope* clone () const { return new Telescope(*this); }
40 
42  //
43  // Information about the primary reflector
44  //
45 
47  enum Mount
48  {
50  Equatorial,
52  Horizon,
54  Meridian,
56  KrausType,
58  Fixed,
61  };
62 
64  enum Reflector
65  {
67  Parabolic,
69  Spherical
70  };
71 
73  enum Focus
74  {
76  PrimeFocus,
82  Gregorian
83  };
84 
86  std::string get_name() const { return name; }
88  void set_name (const std::string& _name) { name = _name; }
89 
91  Angle get_latitude() const { return latitude; }
93  void set_latitude (const Angle& _latitude) { latitude = _latitude; }
94 
96  Angle get_longitude() const { return longitude; }
98  void set_longitude (const Angle& _longitude) { longitude = _longitude; }
99 
101  float get_elevation() const { return elevation; }
103  void set_elevation (float _elevation) { elevation = _elevation; }
104 
106  void set_coordinates (const std::string& code);
109 
111  Mount get_mount() const { return mount; }
113  void set_mount (Mount _mount) { mount = _mount; }
114 
116  Reflector get_primary() const { return primary; }
118  void set_primary (Reflector _primary) { primary = _primary; }
119 
121  Focus get_focus() const { return focus; }
123  void set_focus (Focus _focus) { focus = _focus; }
124 
127 
128  protected:
129 
131  std::string name;
132 
134  Angle latitude;
135 
138 
140  float elevation;
141 
143  Mount mount;
144 
147 
149  Focus focus;
150 
151  };
152 
153 }
154 
155 #endif
void set_coordinates()
Set the coordinates using the telescope name.
Definition: Telescope.h:118
std::string get_name() const
Get the name of the observatory and/or primary reflector.
Definition: Telescope.h:96
Telescope * clone() const
Clone method.
Definition: Telescope.h:49
@ Equatorial
Equatorial (right ascension, declination)
Definition: Telescope.h:60
Reflector
Types of primary reflector.
Definition: Telescope.h:74
@ Horizon
Horizon (altidue, azimuth)
Definition: Telescope.h:62
void set_primary(Reflector _primary)
Set the type of primary reflector.
Definition: Telescope.h:128
@ Meridian
Meridian (aka X-Y, meridianal longitude and latitude)
Definition: Telescope.h:64
void set_mount(Mount _mount)
Set the type of primary reflector mount.
Definition: Telescope.h:123
@ Spherical
Spherical.
Definition: Telescope.h:79
@ Mobile
Mobile (satellite)
Definition: Telescope.h:70
Angle get_longitude() const
Get the longitude of the antenna.
Definition: Telescope.h:106
Mount get_mount() const
Get the type of primary reflector mount.
Definition: Telescope.h:121
Mount mount
Mount type of primary reflector.
Definition: Telescope.h:153
std::string name
Name of the observatory and/or primary reflector.
Definition: Telescope.h:141
Telescope()
Default constructor.
Definition: Telescope.C:19
Focus
Types of focus.
Definition: Telescope.h:83
void set_longitude(const Angle &_longitude)
Set the longitude of the antenna.
Definition: Telescope.h:108
static const Site * location(const std::string &antenna)
Type * release()
Focus focus
Type of focus.
Definition: Telescope.h:159
float get_elevation() const
Get the elevation of the antenna in metres.
Definition: Telescope.h:111
Angle longitude
Longitude of the antenna.
Definition: Telescope.h:147
@ KrausType
Kraus-type (e.g. Nancay)
Definition: Telescope.h:66
Directional * get_Directional() const
Get a Directional object set up for this telescope.
Definition: Telescope.C:75
Contains information about the telescope used for the observation.
Definition: Telescope.h:26
@ Parabolic
Parabolic.
Definition: Telescope.h:77
float elevation
Elevation of the antenna in metres.
Definition: Telescope.h:150
Angle get_latitude() const
Get the latitude of the antenna.
Definition: Telescope.h:101
@ PrimeFocus
Definition: Telescope.h:86
Angle latitude
Latitude of the antenna.
Definition: Telescope.h:144
Definition: ArchiveExtension.h:28
@ Cassegrain
Definition: Telescope.h:89
@ Fixed
Fixed (e.g. LOFAR)
Definition: Telescope.h:68
void set_focus(Focus _focus)
Set the type of focus.
Definition: Telescope.h:133
Defines the PSRCHIVE library.
Definition: CalSource.h:17
void set_name(const std::string &_name)
Set the name of the observatory and/or primary reflector.
Definition: Telescope.h:98
Focus get_focus() const
Get the type of focus.
Definition: Telescope.h:131
const Telescope & operator=(const Telescope &extension)
Operator =.
Definition: Telescope.C:38
void set_elevation(float _elevation)
Set the elevation of the antenna in metres.
Definition: Telescope.h:113
Reflector get_primary() const
Get the type of primary reflector.
Definition: Telescope.h:126
~Telescope()
Destructor.
Definition: Telescope.C:54
Reflector primary
Type of primary reflector.
Definition: Telescope.h:156
void set_latitude(const Angle &_latitude)
Set the latitude of the antenna.
Definition: Telescope.h:103
@ Gregorian
Definition: Telescope.h:92

Generated using doxygen 1.8.17