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 
20 namespace MEAL
21 {
22  template<typename> class Gain;
23  class Boost1;
24  class Rotation1;
25 }
26 
27 namespace 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;
56 
58  void set_cyclic (bool flag = true);
59 
64 
66  Estimate<double> get_gain () const;
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 
91  Vector<3, double> get_axis () const;
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 
MEAL::Rotation1 * get_rotation_transformation()
Get the rotation transformation.
Definition: SingleAxis.C:314
SingleAxis * clone() const
Clone operator.
Definition: SingleAxis.C:72
SingleAxis()
Default Constructor.
Definition: SingleAxis.C:43
Estimate< double > get_gain() const
Get the instrumental gain, , in calibrator flux units.
Definition: SingleAxis.C:84
void invert()
Invert the transformation represented by this instance.
Definition: SingleAxis.C:271
void set_cyclic(bool flag=true)
Set cyclical bounds on the differential phase.
Definition: SingleAxis.C:143
~SingleAxis()
Destructor.
Definition: SingleAxis.C:48
void set_upper_bound(double bound)
MEAL::Boost1 * get_boost_transformation()
Get the boost transformation.
Definition: SingleAxis.C:308
void set_lower_bound(double bound)
void solve(const std::vector< Estimate< double > > &output)
Solve for gain, boost, and rotation given output cal state.
Definition: SingleAxis.C:175
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
void set_diff_phase(const Estimate< double > &phi)
Set the differential phase, , in radians.
Definition: SingleAxis.C:124
const SingleAxis & operator*=(const SingleAxis &other)
Combine the transformation from other into this instance.
Definition: SingleAxis.C:284
MEAL::Gain< Complex2 > * get_gain_transformation()
Get the gain transformation.
Definition: SingleAxis.C:302
Estimate< double > get_diff_phase() const
Get the differential phase, , in radians.
Definition: SingleAxis.C:96
Estimate< double > get_diff_gain() const
Get the differential gain, , in hyperbolic radians.
Definition: SingleAxis.C:90
Instrumental gain, differential gain, and differential phase.
Definition: SingleAxis.h:38
Vector< 3, double > get_axis() const
Get the unit-vector along which the boost and rotation occur.
Definition: SingleAxis.C:138
void set_period(double period)
Reference::To< MEAL::Gain< Complex2 > > gain
Gain Complex2.
Definition: SingleAxis.h:123
const SingleAxis & operator=(const SingleAxis &s)
Assignement Operator.
Definition: SingleAxis.C:60
std::string get_name() const
Return the name of the class.
Definition: SingleAxis.C:78
void set_param_name(const std::string &name)
void set_axis(const Vector< 3, double > &axis)
Set the axis along which the boost and rotation occur.
Definition: SingleAxis.C:131
void set_gain(const Estimate< double > &gain)
Set the instrumental gain, , in calibrator flux units.
Definition: SingleAxis.C:110
Reference::To< MEAL::Rotation1 > rotation
Rotation Complex2.
Definition: SingleAxis.h:129
Definition: SingleAxis.h:27

Generated using doxygen 1.8.17