28 #ifndef SYNTHESIS_STANDARDVISCAL_H
29 #define SYNTHESIS_STANDARDVISCAL_H
42 class TJonesCorruptor;
509 TOpac(
const MSMetaInfoForCal& msmc);
544 virtual void syncMeta(
const VisBuffer& vb);
545 virtual void syncMeta2(
const vi::VisBuffer2& vb);
548 virtual void calcPar();
551 virtual void calcAllJones();
577 TfOpac(
const MSMetaInfoForCal& msmc);
595 virtual void calcAllJones();
600 virtual void calcWtScale();
615 MMueller(
const MSMetaInfoForCal& msmc);
650 virtual void selfSolveOne(SDBList& sdbs);
663 virtual void solveOne(SDBList& sdbs);
701 virtual void normalize();
virtual void selfSolveOne(VisBuffGroupAcc &vs)
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are trivial.
virtual casacore::String longTypeName()
virtual void calcOneJones(casacore::Vector< casacore::Complex > &mat, casacore::Vector< casacore::Bool > &mOk, const casacore::Vector< casacore::Complex > &par, const casacore::Vector< casacore::Bool > &pOk)
Calculate a single PJones matrix.
virtual void createCorruptor(const VisIter &vi, const casacore::Record &simpar, const casacore::Int nSim)
Set up corruptor.
virtual casacore::Bool trivialDJ()
dJ/dp are trivial
VisibilityIterator VisIter
virtual casacore::String longTypeName()
virtual void globalPostSolveTinker()
Specialize post solve operations (adds chan gap fill)
virtual Type type()
Return the type enum.
TfJones(VisSet &vs)
Constructor.
casacore::Vector< casacore::Double > opacity_
opacity per spw
virtual casacore::String longTypeName()
casacore::Vector< casacore::Float > pa_
virtual casacore::Int nPar()
J has four trivial casacore::Complex parameters.
virtual casacore::Bool smoothable()
This type is smoothable.
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are trivial.
virtual casacore::Int nPar()
P has one trivial casacore::Complex parameter.
virtual void reReference()
J-specific reReference TBD: non-triv impl.
AtmosCorruptor * tcorruptor_p
object that can simulate the corruption terms - internal to T; public access is only to the CalCorrup...
void apply(const Jones &j1, VisVector &v, const Jones &j2)
Apply a pair of Jones to a VisVector:
virtual casacore::String typeName()
Return type name as string.
virtual void initTrivDJ()
Initialize trivial dJs.
virtual casacore::Bool trivialDJ()
Are diff'd Js trivial?
virtual void createCorruptor(const VisIter &vi, const casacore::Record &simpar, const casacore::Int nSim)
make a corruptor in a VC-specific way
virtual casacore::Int nPar()
G has two trivial casacore::Complex parameters.
virtual void fillChanGapArray(casacore::Array< casacore::Complex > &sol, casacore::Array< casacore::Bool > &solOK)
M: baseline-based (closure)
virtual casacore::String typeName()
Return type name as string.
virtual void fillChanGaps()
Fill in bracketted channel gaps in solutions.
virtual void guessPar(VisBuffer &vb)
Hazard a guess at parameters.
virtual Type type()
Return the type enum.
virtual Type type()
Return the type enum.
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are NOT trivial.
virtual Type type()
Return the type enum.
virtual casacore::String typeName()
Return type name as string.
virtual void setApply()
Set the application parameters.
virtual void setApply(const casacore::Record &apply)
AtmosCorruptor * atmcorruptor_p
MfMueller (freq-dep MMueller)
virtual casacore::Bool useGenericGatherForSolve()
M gathers/solves for itself under self-determined conditions Initialization: VI1: False ; VI2: True...
virtual casacore::String typeName()
Return type name as string.
virtual casacore::Bool freqDepPar()
This is the freq-dep version of T (this is the ONLY fundamental difference from T) ...
casacore::Vector< casacore::Double > za_
zenith angle per antenna
virtual void createCorruptor(const VisIter &vi, const casacore::Record &simpar, const casacore::Int nSim)
virtual casacore::Vector< casacore::Float > & pa()
virtual casacore::Int nPar()
T has one trivial complex parameter.
virtual casacore::Bool freqDepPar()
This is the freq-dep version of G (this is the ONLY fundamental difference from G) ...
Jones::JonesType jonesType()
Type of Jones matrix according to nPar()
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are NOT trivial.
Type
Allowed types of VisCal matrices - 'correct' order enum Type{UVMOD,Mf,M,K,B,G,D,C,E,P,T,EP,F}; enum Type{Test=0,ANoise,M,KAntPos,K,B,G,J,D,X,C,P,E,T,F,A,ALL};.
virtual casacore::Int nPar()
TOpac has one casacore::Float par per ant.
virtual void syncMeta(const VisBuffer &vb)
Detect basis and feed_pa for this vb.
virtual casacore::String typeName()
Return type name as string.
virtual casacore::Bool freqDepPar()
This is the freq-dep version of TOpac (this is the ONLY fundamental difference from TOpac) ...
virtual Type type()
Return the type enum.
virtual void initTrivDJ()
Initialize trivial dJs.
virtual void normalize()
Normalize a solution (generic implementation)
Jones::JonesType pjonestype_
virtual casacore::Bool useGenericSolveOne()
When generically gathering (VI2 only!), don't use generic solveOne (use selfSolveOne below...
virtual void newselfSolve(VisSet &vs, VisEquation &ve)
JJones(VisSet &vs)
Constructor.
virtual casacore::String typeName()
Return type name as string.
virtual casacore::String longTypeName()
virtual void globalPostSolveTinker()
Local M version only supports normalization.
virtual casacore::Bool freqDepPar()
This is the freq-dep version of M (this is the ONLY fundamental difference from M) ...
virtual casacore::String typeName()
Return type name as string.
virtual void calcWtScale()
B-specific weight scaling factors.
virtual void selfGatherAndSolve(VisSet &vs, VisEquation &ve)
M solves for itself (by copying averaged data)
A hierarchical collection of named fields of various types.
bool Bool
Define the standard types used by Casacore.
GJones(VisSet &vs)
Constructor.
virtual casacore::Bool trivialMuellerElem()
Jones matrix elements are trivial.
virtual casacore::Bool accumulatable()
This type is accumulatable.
virtual casacore::String longTypeName()
virtual Type type()
Return the type enum.
virtual casacore::String longTypeName()
virtual casacore::String typeName()
Return type name as string.
GJonesCorruptor * gcorruptor_p
virtual Jones::JonesType jonesType()
Type of Jones matrix according to nPar()
virtual void initTrivDJ()
Initialize trivial dJs.
virtual Type type()
Return the type enum.
virtual casacore::String longTypeName()
virtual void calcPar()
Calculate parallactic angle.
virtual casacore::String longTypeName()
virtual void guessPar(VisBuffer &vb)
Hazard a guess at parameters.
casacore::Vector< casacore::Double > & za()
Access to z.a.
TJones(VisSet &vs)
Constructor.
VisBuffer2s encapsulate one chunk of visibility data for processing.
BJones(VisSet &vs)
Constructor.
virtual casacore::String typeName()
Return type name as string.
virtual casacore::Bool smoothable()
This type is smoothable.
const MSMetaInfoForCal & msmc() const
Access to the MSMetaInfoForCal (throws if none)
virtual Type type()
Return the type enum.
virtual Type type()
Return the type enum.
virtual casacore::String longTypeName()
casacore::Vector< T > solve(const casacore::Matrix< T > &A, const casacore::Vector< T > &y, double &ferr, double &berr)
Given a matrix "A", and given some vector "y" which is the right hand side of the equation "Ax=y"...
MMueller(VisSet &vs)
M: baseline-based (closure)
String: the storage and methods of handling collections of characters.
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are trivial.
virtual casacore::String longTypeName()
VisBuffers encapsulate one chunk of visibility data for processing.
virtual Jones::JonesType jonesType()
Type of Jones matrix according to nPar()
const bool useGenGathSolve_p
virtual casacore::Int nPar()
M currently has just 2 complex parameters, i.e., both parallel hands.
VisibilityIterator iterates through one or more writable MeasurementSets.
Jones::JonesType jonesType()
Type of Jones matrix according to nPar()
virtual casacore::Bool phandonly()
Nominally, we will only use parallel hands for now.
virtual void syncMeta2(const vi::VisBuffer2 &vb)
virtual casacore::Bool accumulatable()
This type is accumulatable.
virtual Mueller::MuellerType muellerType()
Type of Jones matrix according to nPar()
virtual void setSolve()
Set the solving parameters.
casacore::Int maxchangap_p
widest channel gap to fill by interpolation
virtual VisCalEnum::VCParType parType()
We have casacore::Float parameters.
PJones(VisSet &vs)
Constructor.
virtual casacore::Bool trivialDJ()
dG/dp are trivial
virtual casacore::String typeName()
Return type name as string.
virtual Type type()
Return the type enum.
virtual Jones::JonesType jonesType()
Type of Jones matrix according to nPar()
virtual void guessPar(VisBuffer &vb)
Hazard a guess at parameters.