VisJones.h

Classes

VisJones -- VisJones: Model multiplicative errors for the VisEquation (full description)

class VisJones : public Iterate

Types

enum Type

K
B
G
D
C
E
P
T
F

Interface

Public Members
VisJones()
virtual ~VisJones()
virtual void setSolver(const Record& solver)
virtual void setInterpolation(const Record& interpolation)
virtual VisBuffer& apply(VisBuffer& vb) = 0
virtual VisBuffer& applyInv(VisBuffer& vb) = 0
virtual Type type() = 0
virtual Bool freqDep() = 0
virtual Bool isSolveable()
virtual Bool isSolved()
virtual Bool isApplied()
virtual Double interval()
virtual Double preavg()
virtual Bool prenorm()
virtual Int refant()
virtual VisBuffer& applyGradient(VisBuffer& vb, const Vector<Int>& antenna, Int i, Int j, Int pos) = 0
virtual void initializeGradients()
virtual void finalizeGradients()
virtual void addGradients(const VisBuffer& vb, Int row, const Antenna& a, const Vector<Float>& sumwt, const Vector<Float>& chisq, const Vector<mjJones2>& c, const Vector<mjJones2F>& f) = 0
virtual Bool solve (VisEquation& ve) = 0
Protected Members
virtual String typeName()

Description

Prerequisite

Etymology

VisJones describes an interface for multiplicative errors to be used in the VisEquation. It is an Abstract Base Class: most methods must be defined in derived classes.

Synopsis

See VisEquation for definition of the Visibility Measurement Equation.

The following examples illustrate how an VisJones can be used:

Example

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

      VisEquation ve(vs);

      // Make an VisJones
      PhaseScreenVisJones coac(vs);

      // Correct the visset
      ve.correct();

Motivation

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

To Do

Member Description

enum Type

Allowed types of VisJones matrices

VisJones()

virtual ~VisJones()

virtual void setSolver(const Record& solver)

Set the solver parameters

virtual void setInterpolation(const Record& interpolation)

Set the interpolation parameters

virtual VisBuffer& apply(VisBuffer& vb) = 0

Apply actual Jones matrix and adjoint

virtual VisBuffer& applyInv(VisBuffer& vb) = 0

virtual Type type() = 0

Return the type of this Jones matrix (actual type of derived class).

virtual Bool freqDep() = 0

Frequency-dependent ?

virtual Bool isSolveable()

Is this solveable?

virtual Bool isSolved()

Is this Jones matrix to be solved for, applied or both ?

virtual Bool isApplied()

virtual Double interval()

Return the time interval over which this Jones matrix is constant

virtual Double preavg()

Return the pre-averaging interval (applies only to solveable components)

virtual Bool prenorm()

Return the pre-normalization flag (applies only to solveable components)

virtual Int refant()

Return the reference antenna if this component is solved for.

virtual VisBuffer& applyGradient(VisBuffer& vb, const Vector<Int>& antenna, Int i, Int j, Int pos) = 0

Apply Gradient

virtual void initializeGradients()

Initialize for gradient search

virtual void finalizeGradients()

virtual void addGradients(const VisBuffer& vb, Int row, const Antenna& a, const Vector<Float>& sumwt, const Vector<Float>& chisq, const Vector<mjJones2>& c, const Vector<mjJones2F>& f) = 0

Add to Gradient Chisq

virtual Bool solve (VisEquation& ve) = 0

Solve

virtual String typeName()