Private Members
- void deleteMuellerCache()
**********************************************************
VisMueller
Member Description
Constructor
Apply Mueller matrix
Apply inverse of Mueller matrix
Apply to VB
virtual void syncGain(const VisBuffer& vb, const Bool& doInv=False)
Synchronize "gains" with VisBuffer
virtual void syncGain(const Int& spw, const Double& time, const Int& field=-1, const Bool& doInv=False)
Synchronize "gains" with data
virtual void syncPar(const Int& spw, const Double& time, const Int& field=-1)
Sync parameters for this spw by time/field, return reference to them
virtual void syncMueller(const Int& spw, const Double& time, const Int& field=-1, const Bool& doInv=False)
Sync Mueller matrices for this spw by time/field, return reference to them
inline virtual Cube<Complex>& thisPar(const Int& spw)
Access to solution parameters and matrices
inline virtual Matrix<Bool>& thisParOK(const Int& spw)
inline mMat& thisMueller(const Int& spw, const Int& chn, const Int& bln)
Access to current Mueller by baseline index
inline mMat& thisMueller(const Int& spw, const Int& chn, const Int& a1, const Int& a2)
Access to current Mueller by antenna indices
inline Bool& thisMuellerOK(const Int& spw, const Int& chn, const Int& bln)
Access to current MuellerOK by baseline index
inline Bool& thisMuellerOK(const Int& spw, const Int& chn, const Int& a1, const Int& a2)
Access to current MuellerOK by antenna indices
inline virtual CalSet<Complex>& cs()
Access to CalSet and CalInterp
inline virtual CalInterp& ci()
inline virtual Int& nElem()
Number of elements is nominally number of baselines for native Muellers
inline Double& lastTime(const Int& spw)
Current coords
inline Double& lastTime()
inline Double& currTime(const Int& spw)
inline Double& currTime()
inline Int& currField(const Int& spw)
inline Double& refTime()
inline Double& refFreq()
inline Int blnidx(const Int& a1, const Int& a2)
Baseline index from antenna indices: (assumes a1<=a2 !!)
inline void invalidateMM(const Int& spw)
Validation of Mueller matrices
inline void validateMM(const Int& spw)
inline Bool MMValid(const Int& spw)
virtual void calcPar(const Int& spw, const Double& time, const Int& field)
Calculate a single Mueller parameters
virtual void calcMueller(mMat& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
Calculate a single Mueller matrix by some means
virtual void calcMueller(mMat& mmat, jMat& jmat1, jMat& jmat2)
Calculate a single Mueller matrix from Jones matrix
virtual void invMueller(const Int& spw)
Invert Mueller matrices
Return true if polarization re-sequencing required
Re-sequence to (XX,XY,YX,YY) or (RR,RL,LR,LL)
Re-sequence to (XX,YY,XY,YX) or (RR,LL,RL,LR)
Delete the this* caches
Interface
Public Members
- SolvableVisMueller(VisSet& vs)
- virtual ~SolvableVisMueller()
- virtual void setApply(const Record& apply)
- virtual void setSolve(const Record& solve)
- virtual Bool solve (VisEquation& ve)
- virtual Bool solvevb(const Int& slot)=0
Protected Members
- inline virtual CalSet<Complex>& cs()
- inline virtual CalInterp& ci()
- inline virtual VisBuffer& svb()
- inline Matrix<CStokesVector>& R()
- inline Cube<CStokesVector>& dR()
- inline Vector<Double>& chiSq()
- inline Vector<Double>& lastChiSq()
- inline Vector<Double>& sumWt()
- inline virtual Int& nHess()
- inline Matrix<Complex>& grad()
- inline Cube<Complex>& hess()
- inline Matrix<Complex>& dg()
- virtual void residual()
- void calcGradHess()
- void solveGradHess()
- virtual void updgain()
- Bool converged(const Int& iter)
- Bool& almostconverged()
- Float& tolerance()
- Cube<mMat>& diffMueller()
- virtual void syncDiffMueller(const Int& row)
- virtual void calcDiffMueller(Vector<mMat>& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
- void initSolve()
- void chiSquare()
- inline void invalidateDM()
- inline void validateDM()
- inline Bool DMValid()
**********************************************************
SolvableVisMueller
Member Description
Set the application parameters (apply from table)
Set the solver parameters and create empty CalSet
Solve (loops over solution intervals, calls type-specific per-vb solve mechanism)
virtual Bool solvevb(const Int& slot)=0
Type-specific per-vb solve mechanism (pure virtual here)
(shouldn't need slot, eventually)
inline virtual CalSet<Complex>& cs()
inline virtual CalInterp& ci()
Accessors to (differentiated) Residuals
Access to chi2
inline virtual Int& nHess()
Access to grad,hess,dg
inline Cube<Complex>& hess()
inline Matrix& hess() { return hess_; };
inline Matrix<Complex>& dg()
Calculate residuals
Solving methods
virtual void updgain()
Bool converged(const Int& iter)
Access to differentiated Muellers
Synchronize the Muellers AND diffMuellers
virtual void calcDiffMueller(Vector<mMat>& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
Calculate a diffMueller
Initialize chi2, grad, hess
Calculate chi2
Validation of diffMueller matrices
Interface
Public Members
- VisJones2(VisSet& vs)
- virtual ~VisJones2()
- virtual void syncMueller(const Int& spw, const Double& time, const Int& field=-1, const Bool& doInv=False)
- virtual void syncJones(const Int& spw, const Double& time, const Int& field=-1, const Bool& doInv=False)
- inline virtual Int& nElem()
- inline virtual Cube<Complex>& thisPar(const Int& spw)
- inline virtual Matrix<Bool>& thisParOK(const Int& spw)
- inline Matrix<jMat>& thisJones(const Int& spw)
- inline Matrix<jMat>& thisJonesConj(const Int& spw)
- inline Matrix<Bool>& thisJonesOK(const Int& spw)
- inline jMat& thisJones(const Int& spw, const Int& chn, const Int& ant)
- inline jMat& thisJonesConj(const Int& spw, const Int& chn, const Int& ant)
- inline Bool& thisJonesOK(const Int& spw, const Int& chn, const Int& ant)
Protected Members
- inline void invalidateJM(const Int& spw)
- inline void validateJM(const Int& spw)
- inline Bool JMValid(const Int& spw)
- virtual void calcPar(const Int& spw, const Double& time, const Int& field)
- virtual void calcJones(jMat& mat, Vector<Complex>& par )
- virtual void invJones(const Int& spw)
- virtual void conjJones(const Int& spw)
- virtual void calcMueller(mMat& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
- virtual void calcMueller(mMat& mmat, jMat& jmat1, jMat& jmat2)
Private Members
- void deleteJonesCache()
**********************************************************
VisJones2
Member Description
Constructor
virtual void syncMueller(const Int& spw, const Double& time, const Int& field=-1, const Bool& doInv=False)
Synchronize current Mueller matrices via Jones matrices
virtual void syncJones(const Int& spw, const Double& time, const Int& field=-1, const Bool& doInv=False)
Synchronize current Jones matrices
inline virtual Int& nElem()
Number of elements is number of antennas
inline virtual Cube<Complex>& thisPar(const Int& spw)
Access to solution parameters and matrices
inline virtual Matrix<Bool>& thisParOK(const Int& spw)
inline Matrix<jMat>& thisJones(const Int& spw)
inline jMat& thisJones(const Int& spw, const Int& chn, const Int& ant)
Access to current Jones by antenna index
inline jMat& thisJonesConj(const Int& spw, const Int& chn, const Int& ant)
Access to current Jones by antenna index
inline Bool& thisJonesOK(const Int& spw, const Int& chn, const Int& ant)
Access to current JonesOK by antenna index
inline void invalidateJM(const Int& spw)
Validation of Jones matrices
inline void validateJM(const Int& spw)
inline Bool JMValid(const Int& spw)
virtual void calcPar(const Int& spw, const Double& time, const Int& field)
Calculate a single Jones parameters
virtual void calcJones(jMat& mat, Vector<Complex>& par )
Calculate a single Jones matrix by some means from parameters
virtual void invJones(const Int& spw)
Invert Jones matrices
virtual void conjJones(const Int& spw)
Form conjugated Jones matrices
virtual void calcMueller(mMat& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
Calculate a single Mueller matrix by some means
virtual void calcMueller(mMat& mmat, jMat& jmat1, jMat& jmat2)
Calculate a single Mueller matrix from Jones matrix
Delete the this* caches
Interface
Public Members
- SolvableVisJones2(VisSet& vs)
- virtual ~SolvableVisJones2()
- virtual Bool solve (VisEquation& ve)=0
- virtual void differentiate(VisBuffer& vb)
- virtual jMat& dJ(const Int& par, const Int& chan, const Int& ant)
- virtual void addGain(const Cube<Complex> gaininc)
Protected Members
- inline void invalidateDJ(const Int& spw)
- inline void validateDJ(const Int& spw)
- inline Bool DJValid(const Int& spw)
**********************************************************
SolvableVisJones2
Member Description
Solve (nominal antenna-based implementation here)
Synchronize derivatives w.r.t. parameters
(here, no-op in generic version)
virtual jMat& dJ(const Int& par, const Int& chan, const Int& ant)
Return reference to per-ant, per-chan derivatives w.r.t. parameters
(here, in generic version, just return array/chan-constant matrix)
virtual void addGain(const Cube<Complex> gaininc)
Calculate the residual visibilities w.r.t. the current calibration params
virtual void residual(VisBuffer& vb,
Matrix& R) ;
Form derivatives of the residuals w.r.t. the parameters
virtual void applyDerivative(VisBuffer& vb,
PtrBlock*>& dR) ;
inline void invalidateDJ(const Int& spw)
Validation of Jones matrix derivatives
inline void validateDJ(const Int& spw)
inline Bool DJValid(const Int& spw)
Interface
Public Members
- MMueller(VisSet& vs)
- virtual void setSolve(const Record& solve)
- inline virtual Type type()
- inline virtual String typeName()
- virtual Bool solvevb(const Int& slot)
**********************************************************
MMueller
Member Description
Set the solver parameters (enforce full preavg)
inline virtual Type type()
Return type name as string
virtual Bool solvevb(const Int& slot)
MMueller-specific per-vb solve mechanism (copy data to soln)
Interface
- MfMueller(VisSet& vs)
- virtual Bool freqDepPar()
- virtual Type type()
- inline virtual String typeName()
**********************************************************
MfMueller
Member Description
virtual Type type()
Return type name as string
Interface
- KMueller(VisSet& vs)
- virtual void setSolve(const Record& solve)
- inline virtual Type type()
- inline virtual String typeName()
- inline virtual Bool freqDepMat()
- virtual Bool solvevb(const Int& slot)
Protected Members
- virtual void calcMueller(mMat& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
- virtual void calcDiffMueller(Vector<mMat>& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
- virtual void updgain()
**********************************************************
KMueller
Member Description
Set the solver parameters (enforce no preavg)
inline virtual Type type()
Return type name as string
inline virtual Bool freqDepMat()
Frequency-dependent Matrices (parameters are NOT)
virtual Bool solvevb(const Int& slot)
KMueller-specific per-vb solve mechanism
virtual void calcMueller(mMat& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
virtual void calcDiffMueller(Vector<mMat>& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
virtual void updgain()
Interface
Public Members
- UVpMod(VisSet& vs)
- virtual void setSolve(const Record& solve)
- inline virtual Type type()
- inline virtual String typeName()
- virtual Bool solvevb(const Int& slot)
Protected Members
- inline virtual Int& nElem()
- Matrix<Double>& thisUV()
- virtual void syncDiffMueller(const Int& row)
- virtual void syncUVW(const Int& row)
- virtual void calcMueller(mMat& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
- virtual void calcDiffMueller(Vector<mMat>& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
**********************************************************
UVpmod
Member Description
Set the solver parameters (enforce no preavg)
inline virtual Type type()
Return type name as string
virtual Bool solvevb(const Int& slot)
MMueller-specific per-vb solve mechanism (copy data to soln)
inline virtual Int& nElem()
Synchronize the Muellers AND diffMuellers
virtual void syncUVW(const Int& row)
Synchronize the UVW
virtual void calcMueller(mMat& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
virtual void calcDiffMueller(Vector<mMat>& mat, Vector<Complex>& par, const Int& baseline=-1, const Int& channel=-1 )
Interface
Public Members
- newTJones(VisSet& vs)
- inline virtual Type type()
- inline virtual String typeName()
**********************************************************
TJones (new)
Member Description
inline virtual Type type()
Return type name as string