ProjectionCorrection.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/More/Polarimetry/Pulsar/ProjectionCorrection.h
10
11#ifndef __Pulsar_ProjectionCorrection_H
12#define __Pulsar_ProjectionCorrection_H
13
14#include "Pulsar/Parallactic.h"
15#include "Reference.h"
16#include "Jones.h"
17
18class MountProjection;
19
20namespace Pulsar
21{
22 class Archive;
23 class Receiver;
24 class Telescope;
25 class Integration;
26 class Pointing;
27
29 /*
30 The projection consists of two parts:
31
32 - J_antenna - projection from the sky to the antenna basis (e.g. Earth + mechanical rotation)
33 - J_feed - projection from the anntenna basis to the feed horn basis (e.g. feed rotation)
34
35 If the Mount is of type MountProjection that computes its own projection transformation,
36 then both J_antenna will be equal to the transformation returned by this object.
37 Otherwise, J_antenna is a rotation about the line of sight by the parallactic angle.
38
39 J_feed is a rotation about the line of sight by the feed angle.
40
41 If one were to model the optics of the antenna (e.g. beam squint) then this
42 transformation should be placed between J_antenna and J_feed; i.e.
43
44 J_total = J_feed * J_optics * J_antenna
45
46 */
48 {
49 public:
50
53
56
61
63 void set_archive (const Archive*);
64
66
67 Jones<double> operator () (unsigned isub) const;
68
70 bool required (unsigned isub) const;
71
73 /* \pre The required method must be called before calling this method*/
75
77 /* \pre The required method must be called before calling this method*/
79
81 Mount* get_mount ();
82
84 std::string get_summary () const;
85
87 std::string get_short_summary () const;
88
91
92 protected:
93
95 /* \pre The required method must be called before calling this method*/
97
99 /* \pre The required method must be called before calling this method*/
101
107
110
113
116
119
122
125
128
131
134
137
140
142 mutable std::string summary;
143
145 mutable std::string short_summary;
147
148 };
149}
150
151#endif
Parallactic angle transformation of receiver feed.
Definition Parallactic.h:54
The primary interface to pulsar observational data.
Definition Archive.h:46
Array of Profiles integrated over the same time interval.
Definition Integration.h:37
Telescope pointing parameters recorded during the observation.
Definition Pointing.h:22
~ProjectionCorrection()
Destructor.
Definition ProjectionCorrection.C:29
void set_archive(const Archive *)
Set the archive for which projection corrections will be computed.
Definition ProjectionCorrection.C:34
Mount * get_mount()
Return the projection correction calculator.
Definition ProjectionCorrection.C:77
Reference::To< const Telescope, false > telescope
The telescope extension from the archive.
Definition ProjectionCorrection.h:112
Reference::To< MountProjection > projection
The projection correction calculator.
Definition ProjectionCorrection.h:130
Calibration::Parallactic para
The parallactic (vertical) angle rotation.
Definition ProjectionCorrection.h:124
Reference::To< const Integration, false > integration
The sub-integration for which projection corrections will be computed.
Definition ProjectionCorrection.h:118
std::string summary
Summary of relevant parameters.
Definition ProjectionCorrection.h:142
ProjectionCorrection()
Default constructor.
Definition ProjectionCorrection.C:25
Jones< double > get_feed_projection() const
Return the projection from the antenna to the feed.
Definition ProjectionCorrection.C:217
bool should_correct_projection
Flag set when the receiver projection should be corrected.
Definition ProjectionCorrection.h:136
void reset_summary()
Reset the summaries to empty strings.
Definition ProjectionCorrection.h:90
bool must_correct_platform
Flag set when either of the above corrections have not been performed.
Definition ProjectionCorrection.h:139
static bool trust_pointing_feed_angle
Always trust the feed angle stored in the Pointing extension.
Definition ProjectionCorrection.h:55
std::string short_summary
Short summary of relevant parameters.
Definition ProjectionCorrection.h:145
Reference::To< const Archive, false > archive
The archive for which projection corrections will be computed.
Definition ProjectionCorrection.h:109
Reference::To< Mount > mount
The type of mount.
Definition ProjectionCorrection.h:133
std::string get_summary() const
Return a long summary of parameters relevant to computing the projection correction.
Definition ProjectionCorrection.C:357
Jones< double > get_antenna_projection() const
Return the projection from the sky to the antenna.
Definition ProjectionCorrection.C:245
Jones< double > get_mount_projection() const
Return the antenna projection computed by the Mount projection.
Definition ProjectionCorrection.C:332
Reference::To< const Pointing, false > pointing
The pointing extension from the integration.
Definition ProjectionCorrection.h:121
Jones< double > get_antenna_rotation() const
Return the antenna rotation through the parallactic angle.
Definition ProjectionCorrection.C:253
static bool trust_pointing_para_angle
Trust Pointing parallactic angle more than computed value.
Definition ProjectionCorrection.h:52
Jones< double > operator()(unsigned isub) const
Return the projection correction for the given sub-integration.
Definition ProjectionCorrection.C:368
bool should_correct_vertical
Flag set when the receiver vertical angle should be corrected.
Definition ProjectionCorrection.h:127
Reference::To< const Receiver, false > receiver
The receiver extension from the archive.
Definition ProjectionCorrection.h:115
bool required(unsigned isub) const
Return true if the given sub-integration requires correction.
Definition ProjectionCorrection.C:100
std::string get_short_summary() const
Return a short summary of parameters relevant to computing the projection correction.
Definition ProjectionCorrection.C:362
Contains information about the receiver and receiver platform.
Definition Receiver.h:23
Contains information about the telescope used for the observation.
Definition Telescope.h:22
Defines the PSRCHIVE library.
Definition CalSource.h:17

Generated using doxygen 1.14.0