SingleAxis.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/Polarimetry/Pulsar/SingleAxis.h
10
11#ifndef __Calibration_SingleAxis_H
12#define __Calibration_SingleAxis_H
13
14#include "MEAL/ProductRule.h"
15#include "MEAL/Complex2.h"
16
17#include "Estimate.h"
18#include "Stokes.h"
19
20namespace MEAL
21{
22 template<typename> class Gain;
23 class Boost1;
24 class Rotation1;
25}
26
27namespace Calibration {
28
30
38 class SingleAxis : public MEAL::ProductRule<MEAL::Complex2> {
39
40 public:
41
43 SingleAxis ();
44
46 SingleAxis (const SingleAxis& s);
47
49 const SingleAxis& operator = (const SingleAxis& s);
50
52 ~SingleAxis ();
53
55 SingleAxis* clone () const override;
56
58 void set_cyclic (bool flag = true);
59
64
67
70
73
75 void set_gain (const Estimate<double>& gain);
76
78 void set_diff_gain (const Estimate<double>& gamma);
79
81 void set_diff_phase (const Estimate<double>& phi);
82
84
85 // Non-free parameters
86
88 void set_axis (const Vector<3, double>& axis);
89
92
94 void solve (const std::vector< Estimate<double> >& output);
95
97 void invert ();
98
100 const SingleAxis& operator *= (const SingleAxis& other);
101
102 // ///////////////////////////////////////////////////////////////////
103 //
104 // Model implementation
105 //
106 // ///////////////////////////////////////////////////////////////////
107
109 std::string get_name () const;
110
113
116
119
120 protected:
121
124
127
130
131 private:
132
134 void init ();
135
136 };
137
138}
139
140#endif
141
void solve(const std::vector< Estimate< double > > &output)
Solve for gain, boost, and rotation given output cal state.
Definition SingleAxis.C:175
void invert()
Invert the transformation represented by this instance.
Definition SingleAxis.C:271
MEAL::Rotation1 * get_rotation_transformation()
Get the rotation transformation.
Definition SingleAxis.C:314
Reference::To< MEAL::Rotation1 > rotation
Rotation Complex2.
Definition SingleAxis.h:129
Vector< 3, double > get_axis() const
Get the unit-vector along which the boost and rotation occur.
Definition SingleAxis.C:138
SingleAxis * clone() const override
Clone operator.
Definition SingleAxis.C:72
void set_gain(const Estimate< double > &gain)
Set the instrumental gain, , in calibrator flux units.
Definition SingleAxis.C:110
void set_cyclic(bool flag=true)
Set cyclical bounds on the differential phase.
Definition SingleAxis.C:143
Reference::To< MEAL::Gain< Complex2 > > gain
Gain Complex2.
Definition SingleAxis.h:123
Estimate< double > get_gain() const
Get the instrumental gain, , in calibrator flux units.
Definition SingleAxis.C:84
MEAL::Boost1 * get_boost_transformation()
Get the boost transformation.
Definition SingleAxis.C:308
Estimate< double > get_diff_phase() const
Get the differential phase, , in radians.
Definition SingleAxis.C:96
const SingleAxis & operator*=(const SingleAxis &other)
Combine the transformation from other into this instance.
Definition SingleAxis.C:284
SingleAxis()
Default Constructor.
Definition SingleAxis.C:43
Reference::To< MEAL::Boost1 > boost
Boost Complex2.
Definition SingleAxis.h:126
void set_diff_gain(const Estimate< double > &gamma)
Set the differential gain, , in hyperbolic radians.
Definition SingleAxis.C:117
Estimate< double > get_diff_gain() const
Get the differential gain, , in hyperbolic radians.
Definition SingleAxis.C:90
~SingleAxis()
Destructor.
Definition SingleAxis.C:48
void set_diff_phase(const Estimate< double > &phi)
Set the differential phase, , in radians.
Definition SingleAxis.C:124
void set_axis(const Vector< 3, double > &axis)
Set the axis along which the boost and rotation occur.
Definition SingleAxis.C:131
std::string get_name() const
Return the name of the class.
Definition SingleAxis.C:78
MEAL::Gain< Complex2 > * get_gain_transformation()
Get the gain transformation.
Definition SingleAxis.C:302
const SingleAxis & operator=(const SingleAxis &s)
Assignement Operator.
Definition SingleAxis.C:60

Generated using doxygen 1.14.0