casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
casa::FluxCalcLogFreqPolynomial Class Referenceabstract

FluxCalcLogFreqPolynomial: Implementation base class for flux standards which are polynomials of log10(frequency). More...

#include <FluxCalcLogFreqPolynomial.h>

Inheritance diagram for casa::FluxCalcLogFreqPolynomial:
casa::FluxCalcVQS casa::FluxStdSrcs casa::FluxCalcLogFreqBrokenPolynomial casa::FluxStdBaars casa::FluxStdPerley90 casa::FluxStdPerleyTaylor95 casa::NSTDS::FluxStdBaars casa::NSTDS::FluxStdPerley90 casa::NSTDS::FluxStdPerleyButler2013 casa::NSTDS::FluxStdPerleyButler2017 casa::NSTDS::FluxStdPerleyTaylor95

Public Types

typedef casacore::RigidVector
< casacore::Float, 2 > 
RVF2
 Some abbreviations, since the classes derived from this have to define many polynomial coefficients. More...
 
typedef casacore::RigidVector
< casacore::Float, 3 > 
RVF3
 
typedef casacore::RigidVector
< casacore::Float, 4 > 
RVF4
 
typedef casacore::RigidVector
< casacore::Float, 5 > 
RVF5
 
- Public Types inherited from casa::FluxCalcVQS
typedef FluxCalcVQS FCVQS
 
typedef casacore::RigidVector
< casacore::String, 4 > 
RVS4
 
typedef casacore::RigidVector
< casacore::String, 5 > 
RVS5
 
- Public Types inherited from casa::FluxStdSrcs
enum  Source {
  THREEC286,
  THREEC48,
  THREEC147,
  THREEC138,
  NINETEEN34M638,
  THREEC295,
  THREEC196,
  THREEC123,
  THREEC380,
  J0133,
  FORNAXA,
  J0444,
  PICTORA,
  TAURUSA,
  HYDRAA,
  VIRGOA,
  HERCULESA,
  THREEC353,
  CYGNUSA,
  THREEC444,
  CASSIOPEIAA,
  NUMBER_SOURCES,
  UNKNOWN_SOURCE
}
 Source identifiers. More...
 
typedef FluxStdSrcs FSS
 
typedef casacore::RigidVector
< casacore::String, 6 > 
RVS6
 

Public Member Functions

virtual casacore::Bool operator() (Flux< casacore::Double > &value, Flux< casacore::Double > &error, const casacore::MFrequency &mfreq, const casacore::Bool updatecoeffs=false)
 Set the log10(frequency) polynomial coefficients for calculating the flux density and its uncertainty, and the unit (typically "MHz" or "GHz") that the coefficients assume. More...
 
virtual casacore::Bool setSource (const casacore::String &sourceName, const casacore::MDirection &sourceDir)
 
void setFreqUnit (const casacore::String &freqUnit)
 
template<casacore::Int lford, casacore::Int errord>
void fill_coeffs (const casacore::RigidVector< casacore::Float, lford > &lfrv, const casacore::RigidVector< casacore::Float, errord > &errrv)
 Functions for setting up coeffs_p by taking a bunch of numbers (packaged in RigidVectors) and formatting them into coeffs_p. More...
 
template<casacore::Int lford>
void fill_coeffs (const casacore::RigidVector< casacore::Float, lford > &lfrv)
 Like fill_coeffs(lfrv, errrv), but it only takes the flux density coefficients, and substitutes an empty casacore::Vector for the error coefficients. More...
 
void fill_coeffs (const casacore::Vector< casacore::Float > &lfv)
 
- Public Member Functions inherited from casa::FluxStdSrcs
FSS::Source srcNameToEnum (const casacore::String &srcName, const casacore::MDirection &dir) const
 Returns an enum of srcName. More...
 
casacore::String EnumToSrcName (const FSS::Source srcEnum) const
 Returns srcName string of the srcEnum. More...
 
casacore::MDirection getDirection (const FSS::Source srcEnum) const
 Get source direction of srcEnum. More...
 
 ~FluxStdSrcs ()
 

Private Member Functions

virtual casacore::Bool setSourceCoeffs ()=0
 

Private Attributes

casacore::RigidVector
< casacore::Vector
< casacore::Float >, 2 > 
coeffs_p
 The first element of this pair of Vectors is a casacore::Vector of coefficients for the flux density polynomial (of log10(frequency)). More...
 
casacore::Vector
< casacore::MFrequency
validfrange_p
 casacore::RigidVector<casacore::Double, 2> validfrange_p; More...
 
casacore::String freqUnit_p
 The frequency unit (e.g. More...
 

Additional Inherited Members

- Public Attributes inherited from casa::FluxCalcVQS
 NUMBER_SOURCES
 Source identifiers. More...
 
- Protected Member Functions inherited from casa::FluxStdSrcs
 FluxStdSrcs ()
 

Detailed Description

FluxCalcLogFreqPolynomial: Implementation base class for flux standards which are polynomials of log10(frequency).

Intended use:

Public interface

Prerequisite

Etymology

From "flux density", "calculator", "log10(frequency)", and "polynomial".

Synopsis

The FluxCalcLogFreqPolynomial class provides machinery to compute total flux densities for specified (variable or non-variable) sources where the flux density is well described by a low order polynomial of log(frequency).

Example

Motivation

Encapsulate the machinery for most of the flux density standards in one class.

The flux standards for cm astronomy are deliberately chosen to be distant, non-varying, and bright around 1 GHz. Since such objects tend to be dominated by synchrotron radiation their flux density is usually described by a polynomial of log(frequency).

Definition at line 80 of file FluxCalcLogFreqPolynomial.h.

Member Typedef Documentation

Some abbreviations, since the classes derived from this have to define many polynomial coefficients.

Definition at line 84 of file FluxCalcLogFreqPolynomial.h.

Definition at line 85 of file FluxCalcLogFreqPolynomial.h.

Definition at line 86 of file FluxCalcLogFreqPolynomial.h.

Definition at line 87 of file FluxCalcLogFreqPolynomial.h.

Member Function Documentation

template<casacore::Int lford, casacore::Int errord>
void casa::FluxCalcLogFreqPolynomial::fill_coeffs ( const casacore::RigidVector< casacore::Float, lford > &  lfrv,
const casacore::RigidVector< casacore::Float, errord > &  errrv 
)

Functions for setting up coeffs_p by taking a bunch of numbers (packaged in RigidVectors) and formatting them into coeffs_p.

Takes a casacore::RigidVector for the flux density coefficients and second one for the uncertainty coefficients, and fills coeffs_p with them.

template<casacore::Int lford>
void casa::FluxCalcLogFreqPolynomial::fill_coeffs ( const casacore::RigidVector< casacore::Float, lford > &  lfrv)

Like fill_coeffs(lfrv, errrv), but it only takes the flux density coefficients, and substitutes an empty casacore::Vector for the error coefficients.

void casa::FluxCalcLogFreqPolynomial::fill_coeffs ( const casacore::Vector< casacore::Float > &  lfv)
virtual casacore::Bool casa::FluxCalcLogFreqPolynomial::operator() ( Flux< casacore::Double > &  value,
Flux< casacore::Double > &  error,
const casacore::MFrequency mfreq,
const casacore::Bool  updatecoeffs = false 
)
virtual

Set the log10(frequency) polynomial coefficients for calculating the flux density and its uncertainty, and the unit (typically "MHz" or "GHz") that the coefficients assume.

Note that errcoeffs does not have to have the same number of terms as lfcoeffs, or any terms at all, and that each term in its polynomial is (errcoeff[order] * pow(log10(freq), order))**2. FluxCalcLogFreqPolynomial(const casacore::String& freqUnit, const casacore::Vector<casacore::Double>& lfcoeffs, const casacore::Vector<casacore::Double>& errcoeffs);

Set value and error with the expected flux density and its uncertainty (0.0 if unknown) at mfreq. Set updatecoeffs = true if the source considered to be time variable.

Reimplemented in casa::FluxCalcLogFreqBrokenPolynomial.

void casa::FluxCalcLogFreqPolynomial::setFreqUnit ( const casacore::String freqUnit)
virtual casacore::Bool casa::FluxCalcLogFreqPolynomial::setSource ( const casacore::String sourceName,
const casacore::MDirection sourceDir 
)
virtual
virtual casacore::Bool casa::FluxCalcLogFreqPolynomial::setSourceCoeffs ( )
privatepure virtual

Member Data Documentation

casacore::RigidVector<casacore::Vector<casacore::Float>, 2> casa::FluxCalcLogFreqPolynomial::coeffs_p
private

The first element of this pair of Vectors is a casacore::Vector of coefficients for the flux density polynomial (of log10(frequency)).

The second element is for estimating the flux density's uncertainty with a similar polynomial, but each term is (coeff * log10(freq))**2. It does not need to have the same number of coefficients as the first element, or even any coefficients. Both Vectors start with the 0th order term.

Definition at line 131 of file FluxCalcLogFreqPolynomial.h.

casacore::String casa::FluxCalcLogFreqPolynomial::freqUnit_p
private

The frequency unit (e.g.

"MHz" or "GHz") assumed by coeffs_p.

Definition at line 136 of file FluxCalcLogFreqPolynomial.h.

casacore::Vector<casacore::MFrequency> casa::FluxCalcLogFreqPolynomial::validfrange_p
private

casacore::RigidVector<casacore::Double, 2> validfrange_p;

Definition at line 133 of file FluxCalcLogFreqPolynomial.h.


The documentation for this class was generated from the following file: