casa
$Rev:20696$
|
A filler for the GBT IF Manager FITS files. More...
#include <GBTIFFiller.h>
Public Member Functions | |
GBTIFFiller (Table &parent, const String &backend) | |
makes a new NRAO_GBT_IF subtable if one is not already present in parent, otherwise it opens that one up as is. | |
virtual | ~GBTIFFiller () |
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. | |
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. | |
virtual const ROScalarColumn < Int > & | feed () const |
Return the column information from the most recently filled table. | |
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 > & | centerIF () const |
virtual const ROScalarColumn < Float > & | centerSky () 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 |
Get the feed ID and receptor ID for a given row number, returns False if the row number is not valid. | |
const Table & | currentTable () const |
return a reference to the current table | |
Int | index () |
return the index number of the underying simple table | |
const String & | backend () const |
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. | |
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. | |
void | flush () |
flush the underlying simple table | |
Private Member Functions | |
void | unknownReceiver (const String &rec, Int whichRow, Int &feedId) |
void | digestTable () |
digest table to get feedIds and receptor ids for each feed on each receiver | |
GBTIFFiller () | |
unavailable, undefined | |
GBTIFFiller (const GBTIFFiller &) | |
GBTIFFiller & | operator= (const GBTIFFiller &) |
Private Attributes | |
GBTSimpleTable * | itsMSTable |
Table | itsCurrTable |
ColumnsIndex * | itsIndex |
RecordFieldPtr< String > | itsBankKey |
RecordFieldPtr< Int > | itsPortKey |
Int | itsLastRow |
String | itsBackend |
Bool | itsUseBank |
Bool | itsSingleReceptor |
ROScalarColumn< String > | itsReceiverCol |
ROScalarColumn< String > | itsReceptorCol |
ROScalarColumn< String > | itsLOCircuit |
ROScalarColumn< String > | itsLOComponent |
ROScalarColumn< String > | itsSidebandCol |
ROScalarColumn< String > | itsPolarizeCol |
ROScalarColumn< String > | itsBankCol |
ROScalarColumn< Int > | itsFeedCol |
ROScalarColumn< Int > | itsSRFeed1Col |
ROScalarColumn< Int > | itsSRFeed2Col |
ROScalarColumn< Int > | itsHighCalCol |
ROScalarColumn< Float > | itsCenterIfCol |
ROScalarColumn< Float > | itsCenterSkyCol |
ROScalarColumn< Float > | itsBandwidthCol |
ROScalarColumn< Double > | itsSffMultiplierCol |
ROScalarColumn< Double > | itsSffSidebandCol |
ROScalarColumn< Double > | itsSffOffsetCol |
SimpleOrderedMap< String, Int > | itsMaxFeedIdMap |
SimpleOrderedMap< Int, Int > | itsFeedIdMap |
Block< Int > | itsFeedIDs |
Block< Int > | itsReceptorIDs |
Block< Int > | itsNReceptors |
Vector< Double > | itsIFs |
Vector< Double > | itsRefChans |
Vector< Double > | itsDeltaFreqs |
Vector< Int > | itsNchans |
Bool | itsValid |
A filler for the GBT IF Manager FITS files.
Internal
This fills a subtable of a MS using the contents of the IF fits file.
It is necessary to have access to the frequency and polarization information during each scan for use in filling other parts of the MS.
Definition at line 83 of file GBTIFFiller.h.
GBTIFFiller::GBTIFFiller | ( | Table & | parent, |
const String & | backend | ||
) |
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 GBTIFFiller::~GBTIFFiller | ( | ) | [virtual] |
GBTIFFiller::GBTIFFiller | ( | ) | [private] |
unavailable, undefined
GBTIFFiller::GBTIFFiller | ( | const GBTIFFiller & | ) | [private] |
Bool GBTIFFiller::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.
const String& GBTIFFiller::backend | ( | ) | const [inline] |
get the backend used at construction time
Definition at line 148 of file GBTIFFiller.h.
References itsBackend.
virtual const ROScalarColumn<Float>& GBTIFFiller::bandwidth | ( | ) | const [inline, virtual] |
Definition at line 125 of file GBTIFFiller.h.
References itsBandwidthCol.
virtual const ROScalarColumn<String>& GBTIFFiller::bank | ( | ) | const [inline, virtual] |
Definition at line 129 of file GBTIFFiller.h.
References itsBankCol.
virtual const ROScalarColumn<Float>& GBTIFFiller::centerIF | ( | ) | const [inline, virtual] |
Definition at line 123 of file GBTIFFiller.h.
References itsCenterIfCol.
virtual const ROScalarColumn<Float>& GBTIFFiller::centerSky | ( | ) | const [inline, virtual] |
Definition at line 124 of file GBTIFFiller.h.
References itsCenterSkyCol.
const Table& GBTIFFiller::currentTable | ( | ) | const [inline] |
return a reference to the current table
Definition at line 142 of file GBTIFFiller.h.
References itsCurrTable.
void GBTIFFiller::digestTable | ( | ) | [private] |
digest table to get feedIds and receptor ids for each feed on each receiver
virtual const ROScalarColumn<Int>& GBTIFFiller::feed | ( | ) | const [inline, virtual] |
Return the column information from the most recently filled table.
Definition at line 113 of file GBTIFFiller.h.
References itsFeedCol.
Bool GBTIFFiller::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.
virtual Int GBTIFFiller::fill | ( | const String & | fileName | ) | [virtual] |
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.
void GBTIFFiller::flush | ( | ) | [inline] |
flush the underlying simple table
Definition at line 172 of file GBTIFFiller.h.
References GBTSimpleTable::flush(), and itsMSTable.
Bool GBTIFFiller::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.
virtual const ROScalarColumn<Int>& GBTIFFiller::highCal | ( | ) | const [inline, virtual] |
Definition at line 116 of file GBTIFFiller.h.
References itsHighCalCol.
Int GBTIFFiller::index | ( | ) | [inline] |
return the index number of the underying simple table
Definition at line 145 of file GBTIFFiller.h.
References GBTSimpleTable::index(), and itsMSTable.
virtual Bool GBTIFFiller::isValid | ( | ) | const [inline, virtual] |
are all of the expected columns present - any SEVERE error results in this being set to False
Definition at line 97 of file GBTIFFiller.h.
References itsValid.
virtual const ROScalarColumn<String>& GBTIFFiller::loCircuit | ( | ) | const [inline, virtual] |
Definition at line 119 of file GBTIFFiller.h.
References itsLOCircuit.
virtual const ROScalarColumn<String>& GBTIFFiller::loComponent | ( | ) | const [inline, virtual] |
Definition at line 120 of file GBTIFFiller.h.
References itsLOComponent.
GBTIFFiller& GBTIFFiller::operator= | ( | const GBTIFFiller & | ) | [private] |
virtual const ROScalarColumn<String>& GBTIFFiller::polarize | ( | ) | const [inline, virtual] |
Definition at line 122 of file GBTIFFiller.h.
References itsPolarizeCol.
virtual const ROScalarColumn<String>& GBTIFFiller::receiver | ( | ) | const [inline, virtual] |
Definition at line 117 of file GBTIFFiller.h.
References itsReceiverCol.
virtual const ROScalarColumn<String>& GBTIFFiller::receptor | ( | ) | const [inline, virtual] |
Definition at line 118 of file GBTIFFiller.h.
References itsReceptorCol.
virtual const ROScalarColumn<Double>& GBTIFFiller::sffMultiplier | ( | ) | const [inline, virtual] |
Definition at line 126 of file GBTIFFiller.h.
References itsSffMultiplierCol.
virtual const ROScalarColumn<Double>& GBTIFFiller::sffOffset | ( | ) | const [inline, virtual] |
Definition at line 128 of file GBTIFFiller.h.
References itsSffOffsetCol.
virtual const ROScalarColumn<Double>& GBTIFFiller::sffSideband | ( | ) | const [inline, virtual] |
Definition at line 127 of file GBTIFFiller.h.
References itsSffSidebandCol.
virtual const ROScalarColumn<String>& GBTIFFiller::sideband | ( | ) | const [inline, virtual] |
Definition at line 121 of file GBTIFFiller.h.
References itsSidebandCol.
virtual const ROScalarColumn<Int>& GBTIFFiller::srfeed1 | ( | ) | const [inline, virtual] |
Definition at line 114 of file GBTIFFiller.h.
References itsSRFeed1Col.
virtual const ROScalarColumn<Int>& GBTIFFiller::srfeed2 | ( | ) | const [inline, virtual] |
Definition at line 115 of file GBTIFFiller.h.
References itsSRFeed2Col.
void GBTIFFiller::unknownReceiver | ( | const String & | rec, |
Int | whichRow, | ||
Int & | feedId | ||
) | [private] |
Int GBTIFFiller::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.
String GBTIFFiller::itsBackend [private] |
Definition at line 184 of file GBTIFFiller.h.
Referenced by backend().
ROScalarColumn<Float> GBTIFFiller::itsBandwidthCol [private] |
Definition at line 194 of file GBTIFFiller.h.
Referenced by bandwidth().
ROScalarColumn<String> GBTIFFiller::itsBankCol [private] |
Definition at line 189 of file GBTIFFiller.h.
Referenced by bank().
RecordFieldPtr<String> GBTIFFiller::itsBankKey [mutable, private] |
Definition at line 179 of file GBTIFFiller.h.
ROScalarColumn<Float> GBTIFFiller::itsCenterIfCol [private] |
Definition at line 194 of file GBTIFFiller.h.
Referenced by centerIF().
ROScalarColumn<Float> GBTIFFiller::itsCenterSkyCol [private] |
Definition at line 194 of file GBTIFFiller.h.
Referenced by centerSky().
Table GBTIFFiller::itsCurrTable [private] |
Definition at line 175 of file GBTIFFiller.h.
Referenced by currentTable().
Vector<Double> GBTIFFiller::itsDeltaFreqs [private] |
Definition at line 205 of file GBTIFFiller.h.
ROScalarColumn<Int> GBTIFFiller::itsFeedCol [private] |
Definition at line 192 of file GBTIFFiller.h.
Referenced by feed().
SimpleOrderedMap<Int, Int> GBTIFFiller::itsFeedIdMap [private] |
Definition at line 199 of file GBTIFFiller.h.
Block<Int> GBTIFFiller::itsFeedIDs [private] |
Definition at line 201 of file GBTIFFiller.h.
ROScalarColumn<Int> GBTIFFiller::itsHighCalCol [private] |
Definition at line 192 of file GBTIFFiller.h.
Referenced by highCal().
Vector<Double> GBTIFFiller::itsIFs [private] |
Definition at line 205 of file GBTIFFiller.h.
ColumnsIndex* GBTIFFiller::itsIndex [mutable, private] |
Definition at line 177 of file GBTIFFiller.h.
Int GBTIFFiller::itsLastRow [mutable, private] |
Definition at line 182 of file GBTIFFiller.h.
ROScalarColumn<String> GBTIFFiller::itsLOCircuit [private] |
Definition at line 189 of file GBTIFFiller.h.
Referenced by loCircuit().
ROScalarColumn<String> GBTIFFiller::itsLOComponent [private] |
Definition at line 189 of file GBTIFFiller.h.
Referenced by loComponent().
SimpleOrderedMap<String, Int> GBTIFFiller::itsMaxFeedIdMap [private] |
Definition at line 198 of file GBTIFFiller.h.
GBTSimpleTable* GBTIFFiller::itsMSTable [private] |
Definition at line 174 of file GBTIFFiller.h.
Vector<Int> GBTIFFiller::itsNchans [private] |
Definition at line 206 of file GBTIFFiller.h.
Block<Int> GBTIFFiller::itsNReceptors [private] |
Definition at line 203 of file GBTIFFiller.h.
ROScalarColumn<String> GBTIFFiller::itsPolarizeCol [private] |
Definition at line 189 of file GBTIFFiller.h.
Referenced by polarize().
RecordFieldPtr<Int> GBTIFFiller::itsPortKey [mutable, private] |
Definition at line 180 of file GBTIFFiller.h.
ROScalarColumn<String> GBTIFFiller::itsReceiverCol [private] |
Definition at line 189 of file GBTIFFiller.h.
Referenced by receiver().
ROScalarColumn<String> GBTIFFiller::itsReceptorCol [private] |
Definition at line 189 of file GBTIFFiller.h.
Referenced by receptor().
Block<Int> GBTIFFiller::itsReceptorIDs [private] |
Definition at line 202 of file GBTIFFiller.h.
Vector<Double> GBTIFFiller::itsRefChans [private] |
Definition at line 205 of file GBTIFFiller.h.
ROScalarColumn<Double> GBTIFFiller::itsSffMultiplierCol [private] |
Definition at line 196 of file GBTIFFiller.h.
Referenced by sffMultiplier().
ROScalarColumn<Double> GBTIFFiller::itsSffOffsetCol [private] |
Definition at line 196 of file GBTIFFiller.h.
Referenced by sffOffset().
ROScalarColumn<Double> GBTIFFiller::itsSffSidebandCol [private] |
Definition at line 196 of file GBTIFFiller.h.
Referenced by sffSideband().
ROScalarColumn<String> GBTIFFiller::itsSidebandCol [private] |
Definition at line 189 of file GBTIFFiller.h.
Referenced by sideband().
Bool GBTIFFiller::itsSingleReceptor [private] |
Definition at line 187 of file GBTIFFiller.h.
ROScalarColumn<Int> GBTIFFiller::itsSRFeed1Col [private] |
Definition at line 192 of file GBTIFFiller.h.
Referenced by srfeed1().
ROScalarColumn<Int> GBTIFFiller::itsSRFeed2Col [private] |
Definition at line 192 of file GBTIFFiller.h.
Referenced by srfeed2().
Bool GBTIFFiller::itsUseBank [private] |
Definition at line 185 of file GBTIFFiller.h.
Bool GBTIFFiller::itsValid [private] |
Definition at line 208 of file GBTIFFiller.h.
Referenced by isValid().