GBTIF.h

Classes

GBTIF -- (full description)

class GBTIF

Interface

Public Members
GBTIF(uInt nchan, uInt nstate)
GBTIF(uInt nchan, uInt nstate, const String &bank, Int port, Double ifFreq, Double bw, Bool increases, const GBTIFFiller &iffiller, const GBTLO1File &lo1aFile, const GBTLO1File &lo1bFile, Bool continuum)
GBTIF(const GBTIF &other)
~GBTIF()
GBTIF &operator=(const GBTIF &other)
Bool operator==(const GBTIF &other) const
void addIFRow(Int whichRow)
const Vector<Int> &ifrows() const
uInt ncorr() const
void addCorr(const GBTCorrelation &corr)
GBTCorrelation &getCorr(Int whichCorr)
const GBTCorrelation &getCorr(Int whichCorr) const
uInt nchan() const
uInt nstate() const
Double refFreq() const
Double deltaFreq() const
Double refChan() const
MFrequency::Types refFrame() const
Double tolerance() const
const MVFrequency &restFreq() const
MDoppler::Types dopType() const
Double vsource() const
const Vector<Double> &offsets() const
Int spwId(Int state) const
void setSpwId(Int swid, Int state)
Private Members
void clearCorrs()
GBTIF()

Description

Review Status

Date Reviewed:
yyyy/mm/dd
Programs:
Tests:

Prerequisite

Etymology

This describes a GBT IF and its associated correlations.

Motivation

It is necessary to know what the unique IFs are given a backend FITS file, an IF fits file, and any LO1 fits files. It is also necessary to associated each correlation with an IF.

Member Description

GBTIF(uInt nchan, uInt nstate)

This is used where there is NO associated IF FITS file returns defaults. This is constructed with one GBTCorrelation - the default.

GBTIF(uInt nchan, uInt nstate, const String &bank, Int port, Double ifFreq, Double bw, Bool increases, const GBTIFFiller &iffiller, const GBTLO1File &lo1aFile, const GBTLO1File &lo1bFile, Bool continuum)

Matches bank and port in the iffiller (which has already been constructed with the backend already selected) to get the IF information. Uses the appropriate LO1 file for that row to get the LO1 doppler tracking and frequency switching information along with the LO1 offsets which finishes the description of the frequency axis. ifFreq is the IF frequency to be used in the sky frequency formula corresponding to channel 0. bw is the total bandwith. increases indicates whether the IF frequency increases with increasing channel number. For the ACS backend, some bandwidths decrease with increasing channel number. If ifFreq is < 0, then the value in CENTER_IF is used. If bw is < 0, then the value in BANDWDTH is used.

GBTIF(const GBTIF &other)

Copy constructor.

~GBTIF()

GBTIF &operator=(const GBTIF &other)

Assignment operator. Uses copy semantics.

Bool operator==(const GBTIF &other) const

Comparison operator.

void addIFRow(Int whichRow)

This one adds another associated IF row. The intent is that when you collect all of the rows associated with each unique IF. This is a row from the IF fits file which shares this frequency axis information. Each row then contributes to one of the associated correlations.

const Vector<Int> &ifrows() const

The vector of associated IF rows (rows from the IF fits file which all share this frequency axis).

uInt ncorr() const

The number of associated GBTCorrelations

void addCorr(const GBTCorrelation &corr)

Add this correlation to this GBTIF.

GBTCorrelation &getCorr(Int whichCorr)

Get a specific correlation.

const GBTCorrelation &getCorr(Int whichCorr) const

Get a specific const correlation.

uInt nchan() const

The values which define this IF. These are used in the comparison operators and they are also used when filling the spectral window table. These describe a linear frequency axis. The comparison operators also require that nstate be the same for equality to be true.

The number of channels along the frequency axis. This is the same as used in the constructor.

uInt nstate() const

The values which define this IF. These are used in the comparison operators and they are also used when filling the spectral window table. These describe a linear frequency axis. The comparison operators also require that nstate be the same for equality to be true.

The number of states.

Double refFreq() const

The values which define this IF. These are used in the comparison operators and they are also used when filling the spectral window table. These describe a linear frequency axis. The comparison operators also require that nstate be the same for equality to be true.

The frequency at the refChan(), in Hz. This defaults to refChan() if insufficient information is available to construct the whole frequency axis.

Double deltaFreq() const

The values which define this IF. These are used in the comparison operators and they are also used when filling the spectral window table. These describe a linear frequency axis. The comparison operators also require that nstate be the same for equality to be true.

The channel spacing (may be negative) with positive increasing channel number, in Hz. This defaults to 1.0.

Double refChan() const

The values which define this IF. These are used in the comparison operators and they are also used when filling the spectral window table. These describe a linear frequency axis. The comparison operators also require that nstate be the same for equality to be true.

The reference channel. This will be nchan/2 or 0 if nchan==1.

MFrequency::Types refFrame() const

The values which define this IF. These are used in the comparison operators and they are also used when filling the spectral window table. These describe a linear frequency axis. The comparison operators also require that nstate be the same for equality to be true.

The reference frame. This defaults to Mfrequency::TOPO.

Double tolerance() const

The values which define this IF. These are used in the comparison operators and they are also used when filling the spectral window table. These describe a linear frequency axis. The comparison operators also require that nstate be the same for equality to be true.

The tolerance, in Hz. This defaults to 10.0. The comparison operators use this when comparing refFreq and deltaFreq.

const MVFrequency &restFreq() const

The values which define this IF. These are used in the comparison operators and they are also used when filling the spectral window table. These describe a linear frequency axis. The comparison operators also require that nstate be the same for equality to be true.

The rest frequency from the appropriate LO1 file.

MDoppler::Types dopType() const

The values which define this IF. These are used in the comparison operators and they are also used when filling the spectral window table. These describe a linear frequency axis. The comparison operators also require that nstate be the same for equality to be true.

The doppler type from the LO1 file

Double vsource() const

The values which define this IF. These are used in the comparison operators and they are also used when filling the spectral window table. These describe a linear frequency axis. The comparison operators also require that nstate be the same for equality to be true.

The source velocity from the LO1 file

const Vector<Double> &offsets() const

Offsets in refFreq for each state from the LO1 table. These will be all 0 for non-frequency switched data, and if the LO1 file is missing.

Int spwId(Int state) const

The SPECTRAL_WINDOW_ID appropriate for this state. Returns -1 if unset.

void setSpwId(Int swid, Int state)

Set the associated SPECTRAL_WINDOW_ID for the given state.

void clearCorrs()

GBTIF()