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
17namespace Pulsar
18{
19
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
62
71
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
135
138
141
144
147
150
151 };
152}
153
154class Mount;
155
156namespace Pulsar
157{
158 // return a new Mount object
159 Mount* mount_factory (Telescope::Mount mount);
160
161 // return true if the mount naturally tracks celestial coordinates
162 bool naturally_celestial (Telescope::Mount mount);
163}
164
165#endif
Definition ArchiveExtension.h:24
Reflector get_primary() const
Get the type of primary reflector.
Definition Telescope.h:116
Directional * get_Directional() const
Get a Directional object set up for this telescope.
Definition Telescope.C:75
Reflector primary
Type of primary reflector.
Definition Telescope.h:146
Mount
Types of primary reflector mounts.
Definition Telescope.h:48
@ KrausType
Kraus-type (e.g. Nancay)
Definition Telescope.h:56
@ Mobile
Mobile (satellite)
Definition Telescope.h:60
@ Fixed
Fixed (e.g. LOFAR)
Definition Telescope.h:58
@ Meridian
Meridian (aka X-Y, meridianal longitude and latitude)
Definition Telescope.h:54
@ Equatorial
Equatorial (right ascension, declination)
Definition Telescope.h:50
@ Horizon
Horizon (altidue, azimuth)
Definition Telescope.h:52
float get_elevation() const
Get the elevation of the antenna in metres.
Definition Telescope.h:101
Angle get_longitude() const
Get the longitude of the antenna.
Definition Telescope.h:96
Angle get_latitude() const
Get the latitude of the antenna.
Definition Telescope.h:91
const Telescope & operator=(const Telescope &extension)
Operator =.
Definition Telescope.C:38
Reflector
Types of primary reflector.
Definition Telescope.h:65
@ Spherical
Spherical.
Definition Telescope.h:69
@ Parabolic
Parabolic.
Definition Telescope.h:67
Focus get_focus() const
Get the type of focus.
Definition Telescope.h:121
void set_mount(Mount _mount)
Set the type of primary reflector mount.
Definition Telescope.h:113
void set_elevation(float _elevation)
Set the elevation of the antenna in metres.
Definition Telescope.h:103
void set_name(const std::string &_name)
Set the name of the observatory and/or primary reflector.
Definition Telescope.h:88
~Telescope()
Destructor.
Definition Telescope.C:54
void set_primary(Reflector _primary)
Set the type of primary reflector.
Definition Telescope.h:118
Focus
Types of focus.
Definition Telescope.h:74
@ Cassegrain
Definition Telescope.h:79
@ PrimeFocus
Definition Telescope.h:76
@ Gregorian
Definition Telescope.h:82
Telescope()
Default constructor.
Definition Telescope.C:19
Mount get_mount() const
Get the type of primary reflector mount.
Definition Telescope.h:111
std::string name
Name of the observatory and/or primary reflector.
Definition Telescope.h:131
Angle longitude
Longitude of the antenna.
Definition Telescope.h:137
Telescope * clone() const
Clone method.
Definition Telescope.h:39
Focus focus
Type of focus.
Definition Telescope.h:149
Mount mount
Mount type of primary reflector.
Definition Telescope.h:143
float elevation
Elevation of the antenna in metres.
Definition Telescope.h:140
void set_focus(Focus _focus)
Set the type of focus.
Definition Telescope.h:123
void set_latitude(const Angle &_latitude)
Set the latitude of the antenna.
Definition Telescope.h:93
void set_longitude(const Angle &_longitude)
Set the longitude of the antenna.
Definition Telescope.h:98
void set_coordinates()
Set the coordinates using the telescope name.
Definition Telescope.h:108
std::string get_name() const
Get the name of the observatory and/or primary reflector.
Definition Telescope.h:86
Angle latitude
Latitude of the antenna.
Definition Telescope.h:134
Defines the PSRCHIVE library.
Definition CalSource.h:17

Generated using doxygen 1.14.0