DP3
KLFitter.h
Go to the documentation of this file.
1 // Copyright (C) 2020 ASTRON (Netherlands Institute for Radio Astronomy)
2 // SPDX-License-Identifier: GPL-3.0-or-later
3 
4 #ifndef DP3_DDECAL_KLFITTER_H_
5 #define DP3_DDECAL_KLFITTER_H_
6 
7 #include <vector>
8 
9 #include <armadillo>
10 
11 #include "PiercePoint.h"
12 
13 namespace dp3 {
14 namespace ddecal {
15 
17 class KLFitter {
18  public:
19  KLFitter(double r0 = 1000., double beta = 5. / 3., int order = 3);
20  void calculateCorrMatrix(const std::vector<PiercePoint> pp);
21  void calculateCorrMatrix(const std::vector<PiercePoint*> pp);
22  void doFit();
23  size_t getOrder() const { return itsOrder; }
24  double* PhaseData() { return _phases.memptr(); }
25  double* WData() { return _weights.memptr(); }
26  double* ParData() { return itsPar.memptr(); }
27  double* TECFitWhiteData() { return itsTECFitWhite.memptr(); }
28  double* PPData() { return itsPiercePoints.memptr(); }
29  void setR0(double r0) { itsR0 = r0; }
30  void setBeta(double beta) { itsBeta = beta; }
31  void setOrder(double order) { itsOrder = order; }
32  size_t getNumberofPP() { return itsPiercePoints.n_rows; }
33 
34  private:
35  size_t itsOrder;
36  double itsR0, itsBeta;
37  arma::Mat<double> itsPiercePoints;
38  arma::Col<double> _phases;
39  arma::Mat<double> _weights;
40  arma::Mat<double> itsCorrMatrix;
41  arma::Mat<double> itsinvC;
42  arma::Mat<double> itsU;
43  arma::Mat<double> itsinvU;
44  arma::Mat<double> itsTECFitWhite;
45  arma::Col<double> itsPar;
46 };
47 
48 } // namespace ddecal
49 } // namespace dp3
50 
51 #endif
Creates KH base and fits screens from collection of PiercePoints.
Definition: KLFitter.h:17
void setOrder(double order)
Definition: KLFitter.h:31
void calculateCorrMatrix(const std::vector< PiercePoint > pp)
size_t getOrder() const
Definition: KLFitter.h:23
double * PhaseData()
Definition: KLFitter.h:24
size_t getNumberofPP()
Definition: KLFitter.h:32
double * ParData()
Definition: KLFitter.h:26
double * PPData()
Definition: KLFitter.h:28
void setR0(double r0)
Definition: KLFitter.h:29
void setBeta(double beta)
Definition: KLFitter.h:30
KLFitter(double r0=1000., double beta=5./3., int order=3)
void calculateCorrMatrix(const std::vector< PiercePoint * > pp)
double * TECFitWhiteData()
Definition: KLFitter.h:27
double * WData()
Definition: KLFitter.h:25
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53