GBTIFFiller.h
Classes
- GBTIFFiller -- A filler for the GBT IF Manager FITS files. (full description)
Interface
- Public Members
- GBTIFFiller(Table &parent, const String &backend)
- virtual ~GBTIFFiller()
- virtual Bool isValid() const
- virtual Int fill(const String &fileName)
- Int whichRow(const String &bank, Int port) const
- virtual const ROScalarColumn<Int> &feed() const
- virtual const ROScalarColumn<Int> &srfeed1() const
- virtual const ROScalarColumn<Int> &srfeed2() const
- virtual const ROScalarColumn<Int> &highCal() const
- virtual const ROScalarColumn<String> &receiver() const
- virtual const ROScalarColumn<String> &receptor() const
- virtual const ROScalarColumn<String> &loCircuit() const
- virtual const ROScalarColumn<String> &loComponent() const
- virtual const ROScalarColumn<String> &sideband() const
- virtual const ROScalarColumn<String> &polarize() const
- virtual const ROScalarColumn<Float> ¢erIF() const
- virtual const ROScalarColumn<Float> ¢erSky() const
- virtual const ROScalarColumn<Float> &bandwidth() const
- virtual const ROScalarColumn<Double> &sffMultiplier() const
- virtual const ROScalarColumn<Double> &sffSideband() const
- virtual const ROScalarColumn<Double> &sffOffset() const
- virtual const ROScalarColumn<String> &bank() const
- Bool feedIds(Int whichRow, Int &feedId, Int &receptorId, Int &nReceptors) const
- const Table ¤tTable() const
- Int index()
- const String &backend() const
- Bool associateIF(const String &bank, Int port, Double ifFreq, Double refChan, Double deltaFreq, Int nchan)
- Bool getIF(const String &bank, Int port, Double &ifFreq, Double &refChan, Double &deltaFreq, Int &nchan)
- void flush()
- Private Members
- void unknownReceiver(const String &rec, Int whichRow, Int &feedId)
- void digestTable()
- GBTIFFiller()
- GBTIFFiller(const GBTIFFiller &)
- GBTIFFiller &operator=(const GBTIFFiller &)
Review Status
- Date Reviewed:
- yyyy/mm/dd
Prerequisite
Etymology
This fills a subtable of a MS using the contents of the IF fits file.
Synopsis
Example
Motivation
It is necessary to have access to the frequency and polarization information
during each scan for use in filling other parts of the MS.
Thrown Exceptions
Member Description
makes a new NRAO_GBT_IF subtable if one is not already present in
parent, otherwise it opens that one up as is. The backend string is
used throughout to indicate which backend device this corresponds to.
Each backend filler will have its own GBTIFFiller object. Only rows
appropriate for that backend are saved to the subtable.
virtual Bool isValid() const
are all of the expected columns present - any SEVERE error results in
this being set to False
virtual Int fill(const String &fileName)
fill the subtable using the indicated IF FITS file. The return value
is the value of the IF_ID in the subtable used when filling from this file.
Int whichRow(const String &bank, Int port) const
Indicate which row number in the most recently filled IF FITS file matches
this combination of bank and port. A return value of -1 indicates
that no match was found. A LogIO::SEVERE message is emitted if more than
one match is found. This should not happen, but it also would be bad to
throw an exception in that case since the rest of the filling process should
proceed.
Return the column information from the most recently filled table.
Bool feedIds(Int whichRow, Int &feedId, Int &receptorId, Int &nReceptors) const
Get the feed ID and receptor ID for a given row number, returns False if
the row number is not valid. The feedIds start from 0 for each receiver
in the table. The receptorIds start from 0 for each feed. Also returns
the number of possible receptors for that feed. These feedIds are used
in coordinating the filling of the data rows and may not be the same
as the FEED_ID in the FEED table, which corresponds to physical feeds -
if multiple IFs are used, each IF/physical FEED has a unique FEED_ID here.
return a reference to the current table
return the index number of the underying simple table
get the backend used at construction time
Bool associateIF(const String &bank, Int port, Double ifFreq, Double refChan, Double deltaFreq, Int nchan)
Associate an IF frequency (for use in the sky frequency formula)
a number of channels and the reference channel at which IF
is valid with a specific bank and port in this table.
Returns False if bank and port are not found. deltaFreq gives
the frequency increment per channel with increasing channel
number. The bandwidth here should not be used because it
may go to zero if the IF manager determines that that signal
path has zero bandwidth at any point. Instead, rely on the
backend. The only exception is that if deltaFreq is zero,
use the bandwidth()/nchan here. That should only be used for
the DCR.
Bool getIF(const String &bank, Int port, Double &ifFreq, Double &refChan, Double &deltaFreq, Int &nchan)
Get the associated IF frequency, nchan, refChan, and delta
frequency for the given bank and port. Returns False if not found.
flush the underlying simple table
void unknownReceiver(const String &rec, Int whichRow, Int &feedId)
digest table to get feedIds and receptor ids for each feed on each receiver
unavailable, undefined
GBTIFFiller &operator=(const GBTIFFiller &)