casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Member Functions | Private Attributes
GBTIFFiller Class Reference

A filler for the GBT IF Manager FITS files. More...

#include <GBTIFFiller.h>

List of all members.

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 Stringbackend () 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 &)
GBTIFFilleroperator= (const GBTIFFiller &)

Private Attributes

GBTSimpleTableitsMSTable
Table itsCurrTable
ColumnsIndex * itsIndex
RecordFieldPtr< StringitsBankKey
RecordFieldPtr< Int > itsPortKey
Int itsLastRow
String itsBackend
Bool itsUseBank
Bool itsSingleReceptor
ROScalarColumn< StringitsReceiverCol
ROScalarColumn< StringitsReceptorCol
ROScalarColumn< StringitsLOCircuit
ROScalarColumn< StringitsLOComponent
ROScalarColumn< StringitsSidebandCol
ROScalarColumn< StringitsPolarizeCol
ROScalarColumn< StringitsBankCol
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

Detailed Description

A filler for the GBT IF Manager FITS files.

Intended use:

Internal

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

Definition at line 83 of file GBTIFFiller.h.


Constructor & Destructor Documentation

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]

Member Function Documentation

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.


Member Data Documentation

Definition at line 184 of file GBTIFFiller.h.

Referenced by backend().

Definition at line 194 of file GBTIFFiller.h.

Referenced by bandwidth().

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.

Definition at line 194 of file GBTIFFiller.h.

Referenced by centerIF().

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.

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.

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.

Definition at line 189 of file GBTIFFiller.h.

Referenced by loCircuit().

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.

Definition at line 174 of file GBTIFFiller.h.

Referenced by flush(), and index().

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.

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.

Definition at line 189 of file GBTIFFiller.h.

Referenced by receiver().

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.

Definition at line 196 of file GBTIFFiller.h.

Referenced by sffMultiplier().

Definition at line 196 of file GBTIFFiller.h.

Referenced by sffOffset().

Definition at line 196 of file GBTIFFiller.h.

Referenced by sffSideband().

Definition at line 189 of file GBTIFFiller.h.

Referenced by sideband().

Definition at line 187 of file GBTIFFiller.h.

Definition at line 192 of file GBTIFFiller.h.

Referenced by srfeed1().

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().


The documentation for this class was generated from the following file: