Polar.h
1//-*-C++-*-
2/***************************************************************************
3 *
4 * Copyright (C) 2004 by Willem van Straten
5 * Licensed under the Academic Free License version 2.1
6 *
7 ***************************************************************************/
8
9// psrchive/More/MEAL/MEAL/Polar.h
10
11#ifndef __MEAL_Polar_H
12#define __MEAL_Polar_H
13
14#include "MEAL/ProductRule.h"
15#include "MEAL/Complex2.h"
16#include "Quaternion.h"
17#include "Estimate.h"
18
19namespace MEAL {
20
21 template<typename> class Gain;
22 class Boost;
23 class Rotation;
24
26
29 class Polar : public ProductRule<Complex2> {
30
31 public:
32
34 Polar ();
35
37 Polar (const Polar& s);
38
40 const Polar& operator = (const Polar& s);
41
43 ~Polar ();
44
46 Polar* clone () const override;
47
49 Estimate<double> get_gain () const;
50
52 Estimate<double> get_boost (unsigned i) const;
53
55 Estimate<double> get_rotation (unsigned i) const;
56
58 void set_gain (const Estimate<double>& gain);
59
61 void set_boost (unsigned i, const Estimate<double>& b_i);
62
64 void set_rotation (unsigned i, const Estimate<double>& phi_i);
65
67 void solve (Jones< Estimate<double> >& jones);
68
69 // ///////////////////////////////////////////////////////////////////
70 //
71 // Function implementation
72 //
73 // ///////////////////////////////////////////////////////////////////
74
76 std::string get_name () const;
77
81
83 const Boost* get_boost_transformation () const;
85
89
90 protected:
91
94
97
100
101 private:
102
104 void init ();
105
106 };
107
108}
109
110#endif
111
Represents a boost (Hermitian, dichroic) transformation.
Definition Boost.h:22
A gain transformation.
Definition Gain.h:23
Estimate< double > get_rotation(unsigned i) const
Get the specified component of the rotation vector.
Definition Polar.C:118
void solve(Jones< Estimate< double > > &jones)
Polar decompose the Jones matrix.
std::string get_name() const
Return the name of the class.
Definition Polar.C:101
const Polar & operator=(const Polar &s)
Assignment Operator.
Definition Polar.C:79
Estimate< double > get_boost(unsigned i) const
Get the specified component of the boost vector.
Definition Polar.C:113
void set_boost(unsigned i, const Estimate< double > &b_i)
Set the specified component of the boost vector.
Definition Polar.C:128
Polar()
Default Constructor.
Definition Polar.C:49
const Gain< Complex2 > * get_gain_transformation() const
Provide access to the gain transformation.
Definition Polar.C:139
void set_gain(const Estimate< double > &gain)
Set the instrumental gain, , in calibrator voltage units.
Definition Polar.C:123
void set_rotation(unsigned i, const Estimate< double > &phi_i)
Set the specified component of the rotation vector.
Definition Polar.C:133
Reference::To< Rotation > rotation
Rotation Complex2s.
Definition Polar.h:99
Reference::To< Boost > boost
Boost Complex2.
Definition Polar.h:96
Polar * clone() const override
Clone operator.
Definition Polar.C:95
const Boost * get_boost_transformation() const
Provide access to the boost transformation.
Definition Polar.C:150
const Rotation * get_rotation_transformation() const
Provide access to the rotation transformation.
Definition Polar.C:161
Reference::To< Gain< Complex2 > > gain
Gain<Complex2>
Definition Polar.h:93
~Polar()
Destructor.
Definition Polar.C:54
Estimate< double > get_gain() const
Get the instrumental gain, , in calibrator voltage units.
Definition Polar.C:107
Represents a product of models.
Definition ProductRule.h:21
Represents a rotation (passive unitary transformation) about a free axis.
Definition Rotation.h:34
Namespace in which all modeling and calibration related code is declared.
Definition ExampleComplex2.h:16

Generated using doxygen 1.14.0