#include <StokesVector.hpp>
Public Member Functions | |
StokesVector () | |
StokesVector (double I, double Q, double U, double V, Direction n) | |
void | applyMueller (double S11, double S12, double S22, double S33, double S34, double S44) |
void | applyMueller (double S11, double S12, double S33, double S34) |
bool | isPolarized () const |
double | linearPolarizationDegree () const |
Direction | normal () const |
double | polarizationAngle () const |
double | rotateIntoPlane (Direction k, Direction knew) |
void | rotateStokes (double phi, Direction k) |
void | setPolarized (const StokesVector &polarization) |
void | setPolarized (double I, double Q, double U, double V) |
void | setPolarized (double I, double Q, double U, double V, Direction n) |
void | setUnpolarized () |
void | stokes (double &I, double &Q, double &U, double &V) |
double | stokesI () const |
double | stokesQ () const |
double | stokesU () const |
double | stokesV () const |
double | totalPolarizationDegree () const |
Private Attributes | |
Direction | _normal |
bool | _polarized |
double | _Q |
double | _U |
double | _V |
An object of the StokesVector class describes the polarization state of a photon packet, and offers functions to apply certain transformations to it. Specifically, a Stokes vector contains the four Stokes parameters
|
inline |
The default constructor initializes the Stokes vector to an unpolarized state.
StokesVector::StokesVector | ( | double | I, |
double | Q, | ||
double | U, | ||
double | V, | ||
Direction | n | ||
) |
This constructor initializes the Stokes vector to the specified parameter values, after normalizing them through division by
void StokesVector::applyMueller | ( | double | S11, |
double | S12, | ||
double | S22, | ||
double | S33, | ||
double | S34, | ||
double | S44 | ||
) |
This function transforms the polarization state described by this Stokes vector by applying to its existing state a Mueller matrix of the form
assuming that
void StokesVector::applyMueller | ( | double | S11, |
double | S12, | ||
double | S33, | ||
double | S34 | ||
) |
This function transforms the polarization state described by this Stokes vector by applying to its existing state a Mueller matrix of the form
assuming that
|
inline |
This function returns true if the Stokes vector represents polarised radiation, and false if it represents unpolarised radiation.
double StokesVector::linearPolarizationDegree | ( | ) | const |
This function returns the linear polarization degree for the Stokes vector.
|
inline |
This function returns the normal to the propagation direction of the photon and the reference direction in which the Stokes vector is defined. If the Stokes vector is in an unpolarized state, the zero vector is returned.
double StokesVector::polarizationAngle | ( | ) | const |
This function returns the polarization position angle in radians for the Stokes vector.
This function adjusts the stokes vector reference axis so it is in the plane of the given propagation direction
void StokesVector::rotateStokes | ( | double | phi, |
Direction | k | ||
) |
This function adjusts the Stokes vector for a rotation of the reference axis about the given flight direction
void StokesVector::setPolarized | ( | const StokesVector & | polarization | ) |
This function copies the specified Stokes vector into the receiver.
void StokesVector::setPolarized | ( | double | I, |
double | Q, | ||
double | U, | ||
double | V | ||
) |
This function sets the Stokes vector to the specified vector components leaving the normal to the reference direction unchanged. This function can be used when the reference direction should not be updated, or in case it is determined by an external convention and no further transformations will be performed on the Stokes vector. The
void StokesVector::setPolarized | ( | double | I, |
double | Q, | ||
double | U, | ||
double | V, | ||
Direction | n | ||
) |
This function sets the Stokes vector to the specified vector components and the specified normal to the reference direction. The
|
inline |
This function sets the Stokes vector to an unpolarized state.
|
inline |
This function returns the Stokes parameters in the provided arguments.
|
inline |
This function returns the Stokes parameter
|
inline |
This function returns the Stokes parameter
|
inline |
This function returns the Stokes parameter
|
inline |
This function returns the Stokes parameter
double StokesVector::totalPolarizationDegree | ( | ) | const |
This function returns the total polarization degree for the Stokes vector.