TimeVarMJones.h

Classes

TimeVarMJones -- Model baseline-related multiplicative errors for the VisEquation (full description)

class TimeVarMJones : public MJones

Interface

Public Members
TimeVarMJones()
TimeVarMJones(VisSet& vs, Double interval=DBL_MAX, Double deltat=1.0)
TimeVarMJones(const TimeVarMJones& other)
virtual ~TimeVarMJones()
virtual TimeVarMJones& operator=(const TimeVarMJones& other)
virtual VisBuffer& apply(VisBuffer& vb)
virtual VisBuffer& applyInv(VisBuffer& vb)
virtual void store(const String& file, const Bool& append)
virtual void load(const String& file, const String& select, const String& type)
Protected Members
void initialize(VisSet& vs)
void initializeCache()
virtual void getIntGain(Cube<mjJones4>& ig, const VisBuffer& vb, Int Row) = 0
Bool inSlot(Double start, Double end, Double time)
Bool inSlot(Int slot, Double time)
Int findSlot(Double time)
void checkCache(const VisBuffer& vb, Int row)
void invalidateCache()
void validateCache(Int spectralWindow)
Bool cacheValid(Int spectralWindow)
LogSink& logSink()

Description

forward

Prerequisite

Etymology

TimeVarMJones describes an interface for time variable but not solvable baseline-related, multiplicative errors to be used in the VisEquation.

Synopsis

See VisEquation for definition of the Visibility Measurement Equation.

TimeVarMJones performs caching of values to minimize computation.

Values may be saved to a table.

Example

      // Read the VisSet from disk
      VisSet vs("3c84.MS");

      VisEquation ve(vs);

      // Make an MJones
      SMIfr ij(vs);

      ve.setMJones(ij);

      // Correct the visset
      ve.correct();

Motivation

The properties of an multiplicative component must be described for the VisEquation.

To Do

Member Description

TimeVarMJones()

TimeVarMJones(VisSet& vs, Double interval=DBL_MAX, Double deltat=1.0)

From VisSet - caching interval is in seconds

TimeVarMJones(const TimeVarMJones& other)

Copy

virtual ~TimeVarMJones()

virtual TimeVarMJones& operator=(const TimeVarMJones& other)

Assignment

virtual VisBuffer& apply(VisBuffer& vb)

Apply actual Jones matrix and inverse

virtual VisBuffer& applyInv(VisBuffer& vb)

virtual void store(const String& file, const Bool& append)

Store the time-variable gains as a table. Derived classes may need to redefine this

virtual void load(const String& file, const String& select, const String& type)

Retrieve the time-variable gains from a table

void initialize(VisSet& vs)

void initializeCache()

virtual void getIntGain(Cube<mjJones4>& ig, const VisBuffer& vb, Int Row) = 0

Calculate gains ab initio. To be defined in derived class

Bool inSlot(Double start, Double end, Double time)

Is this time in the slot?

Bool inSlot(Int slot, Double time)

Is the time in the specified slot. slot must be in range

Int findSlot(Double time)

Find the relevant slot. Throw an exception if not found.

void checkCache(const VisBuffer& vb, Int row)

check the cache : if necessary find new slot, get new interferometer gains and then refresh values in the cache

void invalidateCache()

(in)validate cache

void validateCache(Int spectralWindow)

Bool cacheValid(Int spectralWindow)

LogSink& logSink()