DP3
FaradayConstraint.h
Go to the documentation of this file.
1 #ifndef DP3_FARADAY_ROTATION_CONSTRAINT_H_
2 #define DP3_FARADAY_ROTATION_CONSTRAINT_H_
3 
4 #include "Constraint.h"
5 
6 #include "base/CalType.h"
8 
9 #include <vector>
10 #include <ostream>
11 
12 namespace dp3::ddecal {
13 
14 class FaradayConstraint final : public Constraint {
15  public:
22  FaradayConstraint(base::CalType diagonal_solution_type,
23  std::optional<double> max_rotation_value)
24  : diagonal_solution_type_(diagonal_solution_type),
25  max_rotation_value_(max_rotation_value) {}
26 
27  void Apply(SolutionSpan& solutions, double time) override;
28 
29  void Initialize(size_t n_antennas,
30  const std::vector<uint32_t>& solutions_per_direction,
31  const std::vector<double>& frequencies) override;
32 
33  void SetWeights(const std::vector<double>& weights) override;
34 
36  const std::vector<std::vector<double>>& sub_solution_weights) override;
37 
38  std::vector<ConstraintResult> GetResult() const override { return results_; }
39 
40  private:
41  void PerformFit(SolutionSpan& solutions, size_t sub_solution, size_t antenna,
42  std::vector<common::phase_fitting::FitSample>& scratch_space);
43 
44  std::vector<ConstraintResult> results_;
45  std::vector<std::vector<double>> sub_solution_weights_;
46  std::vector<double> frequencies_;
48  base::CalType diagonal_solution_type_;
49  std::optional<double> max_rotation_value_;
50 };
51 
52 } // namespace dp3::ddecal
53 
54 #endif
This class is the base class for classes that implement a constraint on calibration solutions....
Definition: Constraint.h:27
Definition: FaradayConstraint.h:14
void Apply(SolutionSpan &solutions, double time) override
void SetSubSolutionWeights(const std::vector< std::vector< double >> &sub_solution_weights) override
void Initialize(size_t n_antennas, const std::vector< uint32_t > &solutions_per_direction, const std::vector< double > &frequencies) override
void SetWeights(const std::vector< double > &weights) override
std::vector< ConstraintResult > GetResult() const override
Definition: FaradayConstraint.h:38
FaradayConstraint(base::CalType diagonal_solution_type, std::optional< double > max_rotation_value)
Definition: FaradayConstraint.h:22
CalType
Definition: CalType.h:11
Definition: AmplitudeOnlyConstraint.h:12
aocommon::xt::Span< std::complex< double >, 4 > SolutionSpan
Definition: Solutions.h:20
Definition: PhaseLineFitter.h:28