Stokes.h

Classes

Stokes -- Stokes parameter definitions for interface to table data. (full description)

class Stokes

Types

enum StokesTypes

Undefined = 0
undefined value = 0
I
Q
U
V
standard stokes parameters
RR
RL
LR
LL
circular correlation products
XX
XY
YX
YY
linear correlation products
RX
RY
LX
LY
XR
XL
YR
YL
mixed correlation products
PP
PQ
QP
QQ
general quasi-orthogonal correlation products
RCircular
LCircular
Linear
single dish polarization types
Ptotal
Polarized intensity ((Q^2+U^2+V^2)^(1/2))
Plinear
Linearly Polarized intensity ((Q^2+U^2)^(1/2))
PFtotal
Polarization Fraction (Ptotal/I)
PFlinear
Linear Polarization Fraction (Plinear/I)
Pangle
Linear Polarization Angle (0.5 arctan(U/Q)) (in radians)

enum

NumberOfTypes = 33
The number of StokesTypes.

Interface

Public Members
static StokesTypes type(Int stokesNumber)
static StokesTypes type(const String & stokesName)
static String name(StokesTypes stokesType)
static Fallible<Int> receptor1(StokesTypes stokesType)
static Fallible<Int> receptor2(StokesTypes stokesType)
static Int FITSValue(StokesTypes which)
static StokesTypes fromFITSValue(Int)

Description

Review Status

Programs:
Tests:

Synopsis

This enumerates the available Stokes types, but does not define the operations for conversion between Stokes types. This class is a wrapper for the ENUM and conversion functions.

Member Description

enum StokesTypes

The Stokes types are defined by this enum.

Warning DO NOT CHANGE THE ORDER OF THESE TYPES, as the integers corresponding to the enum are required for storage in Tables. One can add to these types, but the order must be preserved. The correlation products are required to have the order indicated with values of 1,2,3,4 plus n*4.

enum

The number of StokesTypes.
Warning Update NumberOfTypes when entries are added.

static StokesTypes type(Int stokesNumber)

convert Int to StokesTypes, returns Stokes::Undefined if it is an invalid type

static StokesTypes type(const String & stokesName)

convert String to StokesTypes, returns Stokes::Undefined if it is an unrecognized string. The valid strings are the same as the characters used in the enum above (i.e. "I" returns Stokes::I, "Linear" returns Stokes::Linear, etc).

static String name(StokesTypes stokesType)

convert StokesTypes to String, Stokes::Undefined returns "??".

static Fallible<Int> receptor1(StokesTypes stokesType)
static Fallible<Int> receptor2(StokesTypes stokesType)

map StokesTypes to receptor number (0 or 1) for the interferometric correlation products. e.g. XY will give receptor1==0 receptor2==1 etc. I,Q,U,V and the single dish types will produce invalid Fallible.

static Int FITSValue(StokesTypes which)
static StokesTypes fromFITSValue(Int)

These two functions map stokes type to FITS type and vice versa. If you add a StokesType you should change these functions as well.