FluxCalcLogFreqPolynomial: Implementation base class for flux standards which are polynomials of log10(frequency). More...
#include <FluxCalcLogFreqPolynomial.h>
Public Types | |
typedef RigidVector< Float, 2 > | RVF2 |
Some abbreviations, since the classes derived from this have to define many polynomial coefficients. | |
typedef RigidVector< Float, 3 > | RVF3 |
typedef RigidVector< Float, 4 > | RVF4 |
typedef RigidVector< Float, 5 > | RVF5 |
Public Member Functions | |
virtual Bool | operator() (Flux< Double > &value, Flux< Double > &error, const MFrequency &mfreq, const 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. | |
virtual Bool | setSource (const String &sourceName, const MDirection &sourceDir) |
void | setFreqUnit (const String &freqUnit) |
template<Int lford, Int errord> | |
void | fill_coeffs (const RigidVector< Float, lford > &lfrv, const RigidVector< Float, errord > &errrv) |
Functions for setting up coeffs_p by taking a bunch of numbers (packaged in RigidVectors) and formatting them into coeffs_p. | |
template<Int lford> | |
void | fill_coeffs (const RigidVector< Float, lford > &lfrv) |
Like fill_coeffs(lfrv, errrv), but it only takes the flux density coefficients, and substitutes an empty Vector for the error coefficients. | |
void | fill_coeffs (const Vector< Float > &lfv) |
Private Member Functions | |
virtual Bool | setSourceCoeffs ()=0 |
Private Attributes | |
RigidVector< Vector< Float >, 2 > | coeffs_p |
The first element of this pair of Vectors is a Vector of coefficients for the flux density polynomial (of log10(frequency)). | |
String | freqUnit_p |
The frequency unit (e.g. |
FluxCalcLogFreqPolynomial: Implementation base class for flux standards which are polynomials of log10(frequency).
Public interface
From "flux density", "calculator", "log10(frequency)", and "polynomial".
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).
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.
typedef RigidVector<Float, 2> casa::FluxCalcLogFreqPolynomial::RVF2 |
Some abbreviations, since the classes derived from this have to define many polynomial coefficients.
Definition at line 84 of file FluxCalcLogFreqPolynomial.h.
typedef RigidVector<Float, 3> casa::FluxCalcLogFreqPolynomial::RVF3 |
Definition at line 85 of file FluxCalcLogFreqPolynomial.h.
typedef RigidVector<Float, 4> casa::FluxCalcLogFreqPolynomial::RVF4 |
Definition at line 86 of file FluxCalcLogFreqPolynomial.h.
typedef RigidVector<Float, 5> casa::FluxCalcLogFreqPolynomial::RVF5 |
Definition at line 87 of file FluxCalcLogFreqPolynomial.h.
void casa::FluxCalcLogFreqPolynomial::fill_coeffs | ( | const Vector< Float > & | lfv | ) |
void casa::FluxCalcLogFreqPolynomial::fill_coeffs | ( | const RigidVector< Float, lford > & | lfrv | ) | [inline] |
Like fill_coeffs(lfrv, errrv), but it only takes the flux density coefficients, and substitutes an empty Vector for the error coefficients.
void casa::FluxCalcLogFreqPolynomial::fill_coeffs | ( | const RigidVector< Float, lford > & | lfrv, | |
const RigidVector< Float, errord > & | errrv | |||
) | [inline] |
Functions for setting up coeffs_p by taking a bunch of numbers (packaged in RigidVectors) and formatting them into coeffs_p.
Takes a RigidVector for the flux density coefficients and second one for the uncertainty coefficients, and fills coeffs_p with them.
virtual Bool casa::FluxCalcLogFreqPolynomial::operator() | ( | Flux< Double > & | value, | |
Flux< Double > & | error, | |||
const MFrequency & | mfreq, | |||
const 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 String& freqUnit, const Vector<Double>& lfcoeffs, const Vector<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 String & | freqUnit | ) |
virtual Bool casa::FluxCalcLogFreqPolynomial::setSource | ( | const String & | sourceName, | |
const MDirection & | sourceDir | |||
) | [virtual] |
virtual Bool casa::FluxCalcLogFreqPolynomial::setSourceCoeffs | ( | ) | [private, pure virtual] |
Implemented in casa::FluxStdBaars, casa::FluxStdPerley90, casa::FluxStdPerleyTaylor95, casa::FluxStdPerleyTaylor99, casa::FluxStdPerleyButler2010, casa::FluxStdPerleyButler2013, casa::NSTDS::FluxStdBaars, casa::NSTDS::FluxStdPerley90, casa::NSTDS::FluxStdPerleyTaylor95, casa::NSTDS::FluxStdPerleyTaylor99, casa::NSTDS::FluxStdPerleyButler2010, casa::NSTDS::FluxStdPerleyButler2013, and casa::NSTDS::FluxStdStevensReynolds2016.
RigidVector<Vector<Float>, 2> casa::FluxCalcLogFreqPolynomial::coeffs_p [private] |
The first element of this pair of Vectors is a 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.
String casa::FluxCalcLogFreqPolynomial::freqUnit_p [private] |
The frequency unit (e.g.
"MHz" or "GHz") assumed by coeffs_p.
Definition at line 134 of file FluxCalcLogFreqPolynomial.h.