source: branches/polybatch/src/STPolLinear.h@ 3079

Last change on this file since 3079 was 1353, checked in by mar637, 18 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.