9 #ifndef DPPP_GAINCALALGORITHM_H
10 #define DPPP_GAINCALALGORITHM_H
12 #include <casacore/casa/Arrays/Cube.h>
13 #include <casacore/casa/Arrays/ArrayMath.h>
15 #include <aocommon/recursivefor.h>
30 bool scalar,
double tolerance,
unsigned int maxAntennas,
31 bool detectStalling,
unsigned int debugLevel);
40 void init(
bool initSolutions);
44 Status doStep(
unsigned int iter, aocommon::RecursiveFor& recursive_for);
49 casacore::Matrix<std::complex<double>>
getSolution(
bool setNaNs);
57 casacore::Array<std::complex<double>>&
getVis() {
return _vis; }
60 casacore::Array<std::complex<double>>&
getMVis() {
return _mvis; }
68 unsigned int nCr() {
return _nCr; }
75 Status relax(
unsigned int iter);
76 static bool isFinite(
const std::complex<double>& val) {
77 return std::isfinite(val.real()) && std::isfinite(val.imag());
80 void doStep_polarized();
81 void doStep_unpolarized(aocommon::RecursiveFor& recursive_for);
83 double getAverageUnflaggedSolution();
85 unsigned int _savedNCr;
86 casacore::Vector<bool>
88 casacore::Array<std::complex<double>> _vis;
89 casacore::Array<std::complex<double>> _mvis;
90 casacore::Matrix<std::complex<double>>
92 casacore::Matrix<std::complex<double>> _gx;
93 casacore::Matrix<std::complex<double>>
95 casacore::Matrix<std::complex<double>> _gold;
96 casacore::Matrix<std::complex<double>>
98 casacore::Matrix<std::complex<double>> _z;
104 unsigned int _badIters;
107 unsigned int _solInt;
113 bool _detectStalling;
114 unsigned int _debugLevel;
117 std::vector<double> _dgs;
DPPP step class to apply a calibration correction to the data.
Definition: GainCalAlgorithm.h:22
double getWeight()
Definition: GainCalAlgorithm.h:51
casacore::Array< std::complex< double > > & getVis()
Returns a reference to the visibility matrix.
Definition: GainCalAlgorithm.h:57
casacore::Matrix< std::complex< double > > getSolution(bool setNaNs)
void clearStationFlagged()
Clear antFlagged.
GainCalAlgorithm(unsigned int solInt, unsigned int nChan, Mode mode, bool scalar, double tolerance, unsigned int maxAntennas, bool detectStalling, unsigned int debugLevel)
mode can be "diagonal", "fulljones", "phaseonly", "scalarphase"
void incrementWeight(float weight)
Increments the weight (only relevant for TEC-fitting)
unsigned int nCr()
Number of correlations (1 or 4)
Definition: GainCalAlgorithm.h:68
casacore::Vector< bool > & getStationFlagged()
Definition: GainCalAlgorithm.h:62
casacore::Array< std::complex< double > > & getMVis()
Returns a reference to the model visibility matrix.
Definition: GainCalAlgorithm.h:60
Status
Definition: GainCalAlgorithm.h:24
@ FAILED
Definition: GainCalAlgorithm.h:24
@ CONVERGED
Definition: GainCalAlgorithm.h:24
@ NOTCONVERGED
Definition: GainCalAlgorithm.h:24
@ STALLED
Definition: GainCalAlgorithm.h:24
unsigned int numCorrelations()
Number of correlations in the solution (1,2 or 4)
Definition: GainCalAlgorithm.h:65
Mode
Definition: GainCalAlgorithm.h:26
@ FULLJONES
Definition: GainCalAlgorithm.h:26
@ AMPLITUDEONLY
Definition: GainCalAlgorithm.h:26
@ DEFAULT
Definition: GainCalAlgorithm.h:26
@ PHASEONLY
Definition: GainCalAlgorithm.h:26
void resetVis()
Sets visibility matrices to zero.
void init(bool initSolutions)
Status doStep(unsigned int iter, aocommon::RecursiveFor &recursive_for)
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53