GBTIFLOHelper.h

Classes

GBTIFLOHelper -- GBTIFLOHelper helps the GBT filler use the IF and LO FITS files. (full description)

class GBTIFLOHelper

Interface

Public Members
GBTIFLOHelper(GBTIFFiller *ifFiller, const GBTLO1File *lo1AFile, const GBTLO1File *lo1BFile, GBTLO1DAPFiller *lo1Handler, const Table &samplerTable, const Table &portTable, uInt nphases, uInt nchannels, const String &dcrBank = "")
~GBTIFLOHelper()
uInt nfeeds() const
uInt whichFeed(uInt samplerFeed)
Int feedId(uInt whichFeed) const
const Block<uInt> &receiverRows(uInt whichFeed) const
const Vector<Int> &corrType(uInt whichFeed) const
const Array<Int> &corrProduct(uInt whichFeed) const
const Vector<String> &polarizationType(uInt whichFeed) const
const String &receiverName(uInt whichFeed) const
const Vector<String> &feedName(uInt whichFeed) const
Int feed(uInt whichFeed) const
Int srfeed1(uInt whichFeed) const
Int srfeed2(uInt whichFeed) const
Int highCal(uInt whichFeed) const
const String &bank(uInt whichFeed) const
const String &srbank(uInt whichFeed) const
const Vector<String> &srFeedName(uInt whichFeed) const
const Vector<Double> &centerFreqs(uInt whichFeed, MFrequency::Types &refframe, MDoppler::Types &doptype, Double &souvel)
Double deltaFreq(uInt whichFeed) const
Double refChan(uInt whichFeed) const
const GBTLO1File &lo1File(uInt whichFeed) const
const IPosition &shape(uInt whichFeed) const
Private Members
void ifParms(GBTIFFiller &ifFiller, Int whichRow, Double &sffSideband, Double &sffMultiplier, Double &sffOffset)
GBTIFLOHelper()
GBTIFLOHelper(const GBTIFLOHelper &)
GBTIFLOHelper &operator=(const GBTIFLOHelper &)

Description

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Etymology

The GBT fillers need to take the IF and LO fits files plus their receiver tables and other information to arrive at feeds, spectral windows, and polarizations as well as groupings of data so that they can be filled into the MS appropriately.

Synopsis

Currently, this is only useful for SpectralProcessor data. It needs to be generalized as much as possible.

Example

Motivation

The code in the SP filler that this is derived from was getting sufficiently large and confusing that it was difficult to see the forest for the trees. Moving it here served to encapsulate it all in one place, hopefully making it easier to modify, understand, and reuse.

To Do

Member Description

GBTIFLOHelper(GBTIFFiller *ifFiller, const GBTLO1File *lo1AFile, const GBTLO1File *lo1BFile, GBTLO1DAPFiller *lo1Handler, const Table &samplerTable, const Table &portTable, uInt nphases, uInt nchannels, const String &dcrBank = "")

the ifFiller, lo1File and lo1Handler are used directly here. If lo1File is a non-null pointer, it will be used in preference to lo1Handler. Neither should be deleted by the calling object until this object is no longer going to be used.

~GBTIFLOHelper()

uInt nfeeds() const

number of independent feeds in use in the sampler table

uInt whichFeed(uInt samplerFeed)

map from sampler feed number (starts from 0 through (nfeeds()-1) to feedNumber (from iffiller). feedNumber should be used as the whichFeed argument to the other methods here.

Int feedId(uInt whichFeed) const

the feed IDs as returned by GBTIFFiller

const Block<uInt> &receiverRows(uInt whichFeed) const

row(s) in receiver table for each feed. The validity of whichFeed is not checked.

const Vector<Int> &corrType(uInt whichFeed) const
const Array<Int> &corrProduct(uInt whichFeed) const

Polarization information for the indicated feed. The validity of whichFeed is not checked.

const String &receiverName(uInt whichFeed) const

Feed information for the indicated feed. The validity of whichFeed is not checked.

From the "receiver" column

const Vector<String> &feedName(uInt whichFeed) const

Feed information for the indicated feed. The validity of whichFeed is not checked.

From the "receptor" column

Int feed(uInt whichFeed) const

Feed information for the indicated feed. The validity of whichFeed is not checked.

From the "feed" column if present, returns -1 if not.

Int srfeed1(uInt whichFeed) const

Feed information for the indicated feed. The validity of whichFeed is not checked.

From the "srfeed1" column if present, returns -1 if not.

Int srfeed2(uInt whichFeed) const

Feed information for the indicated feed. The validity of whichFeed is not checked.

From the "srfeed2" column if present, returns -1 if not.

Int highCal(uInt whichFeed) const

Feed information for the indicated feed. The validity of whichFeed is not checked.

From the "high_cal" column if present, returns -1 if not.

const String &bank(uInt whichFeed) const

Feed information for the indicated feed. The validity of whichFeed is not checked.

From the "bank" column if present, returns "" if not.

const String &srbank(uInt whichFeed) const

Feed information for the indicated feed. The validity of whichFeed is not checked.

Also from the "bank" column, but for the appropriate switched feed, this returns the bank of other feed involved if any switching is going on AND this is from the ACS.

const Vector<String> &srFeedName(uInt whichFeed) const

Feed information for the indicated feed. The validity of whichFeed is not checked.

The feedName corresponding to srbank

const Vector<String> &polarizationType(uInt whichFeed) const

Feed information for the indicated feed. The validity of whichFeed is not checked.

Double deltaFreq(uInt whichFeed) const

Spectral information. The validity of whichFeed and whichPhase is not checked. Currently the SPECTRAL_WINDOW filler constructs the frequency axis from these linear values, although that could move here if appropriate.

channel spacing is independent of phase and time

Double refChan(uInt whichFeed) const

Spectral information. The validity of whichFeed and whichPhase is not checked. Currently the SPECTRAL_WINDOW filler constructs the frequency axis from these linear values, although that could move here if appropriate.

reference channel is independent of phase and time Channels are numbered from 0 in this scheme.

const Vector<Double> &centerFreqs(uInt whichFeed, MFrequency::Types &refframe, MDoppler::Types &doptype, Double &souvel)

Spectral information. The validity of whichFeed and whichPhase is not checked. Currently the SPECTRAL_WINDOW filler constructs the frequency axis from these linear values, although that could move here if appropriate.

const GBTLO1File &lo1File(uInt whichFeed) const

The LO1 file in use for each feed

const IPosition &shape(uInt whichFeed) const

The shape of the FLOAT_DATA column for the indicated feed. The value of whichFeed is not checked.

void ifParms(GBTIFFiller &ifFiller, Int whichRow, Double &sffSideband, Double &sffMultiplier, Double &sffOffset)

function to try and ensure that SFF_sideband, SFF_multiplier, SFF_offset, initial LO1, center_IF and center_Sky are all consistent.

GBTIFLOHelper()

undefined and unavailable

GBTIFLOHelper(const GBTIFLOHelper &)

GBTIFLOHelper &operator=(const GBTIFLOHelper &)