Computes an amplitude or phase selfcal solution on a set of visibilities.
More...
#include <carma/services/Selfcal.h>
|
double | getIter (void) const |
| get the number of iterations it took to get a solution More...
|
|
double | getMaxAnt (void) const |
| get the maximum numbers of antennae. More...
|
|
double | getRefAnt (void) const |
| get the reference antenna. More...
|
|
double | getRMSAmp (void) const |
| get amplitude RMS error of the current solution More...
|
|
double | getRMSPhase (void) const |
| get phase RMS error of the current solution More...
|
|
std::vector< Complex > | getVis (bool useAmp=true) |
| Return antenna based visibilities (gains really) The returned array will have a length that contains the maximum antenna number, but visibilities for antennae that were missing in the input visibilities are set to 0 on output. More...
|
|
std::vector< Complex > | getVisErrors (void) |
| Return visibility errors for all inputs. More...
|
|
| Selfcal () |
| Constructor. More...
|
|
void | setDebug (int debug=0) |
| set a debug level (0=nothing, 1=a bit, 2=more) More...
|
|
void | setEps (double epsi1=1.0e-8, double epsi2=1.0e-4) |
| set the relative accuracy levels that need to be achieved in the jacobi iteration. More...
|
|
void | setMaxAnt (int maxAnt=0) |
| set the maximum number of antennae. More...
|
|
void | setMaxIter (int maxIter=100) |
| set the maximum number of iterations. More...
|
|
void | setPlanetDiskModel (double flux, double bmaj=0, double bmin=0, double bpa=0) |
| set the flux and size of a (uniform disk) planet. More...
|
|
void | setPointSourceModel (double flux) |
| set the flux of a point source model More...
|
|
void | setReferenceAntenna (int refAnt=0) |
| set the reference antenna. More...
|
|
void | setSourceName (std::string &sourceName) |
| set sourcename More...
|
|
void | setVis (int ant1, int ant2, const Complex &vis, double weight=1) |
| accumulate visibilities. More...
|
|
void | zero (void) |
| reset the accumulators for a new solution More...
|
|
Computes an amplitude or phase selfcal solution on a set of visibilities.
It also computes some statistics to determine a goodness-of-fit. The code - at least at its inception - produced identical results to the MIRIAD equivalent routines in selfcal.for.
Definition at line 40 of file Selfcal.h.
carma::services::Selfcal::Selfcal |
( |
| ) |
|
double carma::services::Selfcal::getIter |
( |
void |
| ) |
const |
get the number of iterations it took to get a solution
- Returns
- number of iterations
Definition at line 177 of file Selfcal.h.
double carma::services::Selfcal::getMaxAnt |
( |
void |
| ) |
const |
get the maximum numbers of antennae.
Useful when it was left at 0 to find the largest one. It is also equal to the length of the returned gains in getGains()
- Returns
- maximum antenna number (1 or larger)
Definition at line 198 of file Selfcal.h.
double carma::services::Selfcal::getRefAnt |
( |
void |
| ) |
const |
get the reference antenna.
Useful when it was left at 0 to find the one with the greatest weight.
- Returns
- reference antenna, in the range 1..maxAnt
Definition at line 187 of file Selfcal.h.
double carma::services::Selfcal::getRMSAmp |
( |
void |
| ) |
const |
get amplitude RMS error of the current solution
- Returns
- RMS error in whatever units amplitudes were given
Definition at line 168 of file Selfcal.h.
double carma::services::Selfcal::getRMSPhase |
( |
void |
| ) |
const |
get phase RMS error of the current solution
- Returns
- RMS error in degrees
Definition at line 159 of file Selfcal.h.
std::vector<Complex> carma::services::Selfcal::getVis |
( |
bool |
useAmp = true | ) |
|
Return antenna based visibilities (gains really) The returned array will have a length that contains the maximum antenna number, but visibilities for antennae that were missing in the input visibilities are set to 0 on output.
It is also possible to use setMaxAnt() and always get a predictable length. If convergence failed, the vector will be of length 0. Visibilities are defined such that |g_i * g_j - V_ij| is minimized
- Parameters
-
useAmp | if true, return an amplitude selfcal, else phase only. |
std::vector<Complex> carma::services::Selfcal::getVisErrors |
( |
void |
| ) |
|
Return visibility errors for all inputs.
If getVisErrors() is called before getVis(), unpredictable things can happen. Also note that errors will be arbitrarely seto to 1 for those antennae that were missing.
void carma::services::Selfcal::setDebug |
( |
int |
debug = 0 | ) |
|
set a debug level (0=nothing, 1=a bit, 2=more)
- Parameters
-
void carma::services::Selfcal::setEps |
( |
double |
epsi1 = 1.0e-8 , |
|
|
double |
epsi2 = 1.0e-4 |
|
) |
| |
set the relative accuracy levels that need to be achieved in the jacobi iteration.
- Parameters
-
epsi1 | phase loop. |
epsi2 | amplitude loop |
void carma::services::Selfcal::setMaxAnt |
( |
int |
maxAnt = 0 | ) |
|
set the maximum number of antennae.
If you set this, the array of gains will always be of this length, instead of a length of the largest found antenna in the input visibilities that were entered via setVis() The default value (0) will cause it to be determined automatically.
- Parameters
-
maxAnt | the max number of ants requested in returns gain |
void carma::services::Selfcal::setMaxIter |
( |
int |
maxIter = 100 | ) |
|
set the maximum number of iterations.
Code default is 100.
- Parameters
-
void carma::services::Selfcal::setPlanetDiskModel |
( |
double |
flux, |
|
|
double |
bmaj = 0 , |
|
|
double |
bmin = 0 , |
|
|
double |
bpa = 0 |
|
) |
| |
set the flux and size of a (uniform disk) planet.
The code has no slots for antenna coordinates, and would need this. Note this routine has not been implemented.
void carma::services::Selfcal::setPointSourceModel |
( |
double |
flux | ) |
|
set the flux of a point source model
- Parameters
-
void carma::services::Selfcal::setReferenceAntenna |
( |
int |
refAnt = 0 | ) |
|
set the reference antenna.
The default (0) signifies that the one with the greatest weight is taken. A valid refAnt needs to be a 1..maxAnt.
- Parameters
-
void carma::services::Selfcal::setSourceName |
( |
std::string & |
sourceName | ) |
|
set sourcename
- Parameters
-
void carma::services::Selfcal::setVis |
( |
int |
ant1, |
|
|
int |
ant2, |
|
|
const Complex & |
vis, |
|
|
double |
weight = 1 |
|
) |
| |
accumulate visibilities.
It will automatically reject those whose antennae number is above maxAnt (if set via setMaxAnt).
- Parameters
-
ant1 | antennae number (1..maxAnt) |
ant2 | antennae number (1..maxAnt) |
vis | complex visbility |
weight | weight (as a 1/sigma^2 factor) |
void carma::services::Selfcal::zero |
( |
void |
| ) |
|
reset the accumulators for a new solution
The documentation for this class was generated from the following file: