GBTIFLOHelper.h
Classes
- GBTIFLOHelper -- GBTIFLOHelper helps the GBT filler use the IF and LO FITS files. (full description)
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> ¢erFreqs(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 &)
Review Status
- Date Reviewed:
- yyyy/mm/dd
Prerequisite
- GBTIFFiller
- GBTLO1DAPFiller
- Contents of the GBT IF and LO FITS files
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
- This needs to work for the other backends as well.
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.
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.
Feed information for the indicated feed. The validity of whichFeed is
not checked.
From the "receiver" column
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.
Feed information for the indicated feed. The validity of whichFeed is
not checked.
The feedName corresponding to srbank
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> ¢erFreqs(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.
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.
undefined and unavailable
GBTIFLOHelper &operator=(const GBTIFLOHelper &)