source: trunk/src/STPolLinear.h @ 1353

Last change on this file since 1353 was 1353, checked in by mar637, 17 years ago

added explicit keyword for single arument constructors

File size: 1.3 KB
Line 
1//
2// C++ Interface: STPolLinear
3//
4// Description:
5//
6//
7// Author: Malte Marquarding <Malte.Marquarding@csiro.au>, (C) 2006
8//
9// Copyright: See COPYING file that comes with this distribution
10//
11//
12#ifndef ASAPSTPOLLINEAR_H
13#define ASAPSTPOLLINEAR_H
14
15#include "Factory.h"
16#include "STPol.h"
17
18namespace asap {
19
20/**
21  The linear representation of polarisation.
22  We are using the following convention:
23  @li I = XX + YY
24  @li Q = XX - YY
25  @li U = 2*Real(XY)
26  @li V = 2*Imag(XY)
27
28  resulting in:
29  @li I' = I
30  @li Q' = Q * cos(theta) - V *sin(theta)
31  @li U' = Q * sin(theta) + U * cos(theta)
32  @li V' = V
33  @author Malte Marquarding
34
35*/
36class STPolLinear : public STPol
37{
38public:
39  STPolLinear() {}
40
41  explicit STPolLinear(const casa::Matrix<casa::Float>& specs)
42    { setSpectra(specs); }
43
44  ~STPolLinear();
45
46  static Factory<STPol,STPolLinear> myFactory;
47
48  virtual casa::Vector<casa::Float> getCircular( casa::uInt index );
49
50  virtual casa::Vector<casa::Float> getStokes( casa::uInt index);
51
52  virtual casa::Vector<casa::Float> getLinPol( casa::uInt index);
53
54  virtual casa::Vector<casa::Float> getLinear( casa::uInt index );
55
56  virtual void rotatePhase( casa::Float phase );
57  virtual void rotateLinPolPhase( casa::Float phase );
58
59  virtual void invertPhase( casa::Float phase );
60
61};
62
63}
64
65#endif
Note: See TracBrowser for help on using the repository browser.