DP3
TecOffsetDelayConstraint.h
Go to the documentation of this file.
1 #ifndef DP3_DDECAL_TEC_DELAY_CONSTRAINT_H_
2 #define DP3_DDECAL_TEC_DELAY_CONSTRAINT_H_
3 
4 #include <vector>
5 
6 #include "Constraint.h"
7 #include "ConstraintResult.h"
8 
10 
11 #include <vector>
12 #include <ostream>
13 
14 namespace dp3::ddecal {
15 
16 class TecOffsetDelayConstraint final : public Constraint {
17  public:
18  TecOffsetDelayConstraint(bool include_offset, size_t max_wraps,
19  bool do_phase_referencing);
20 
21  void Initialize(size_t nAntennas,
22  const std::vector<uint32_t>& solutions_per_direction,
23  const std::vector<double>& frequencies) override;
24 
25  void SetWeights(const std::vector<double>& weights) override;
26 
27  void Apply(SolutionSpan& solutions, double time) override;
28 
29  std::vector<ConstraintResult> GetResult() const override { return results_; };
30 
31  protected:
32  struct ThreadData {
33  std::vector<double> data;
34  std::vector<double> weights;
35  };
36  std::vector<ThreadData> thread_data_;
37 
38  bool include_offset_ = false;
39  bool do_phase_referencing_ = true;
40  size_t max_wraps_ = 0;
41  std::vector<double> weights_;
42  double reference_frequency_ = 0.0;
43  std::vector<double> relative_frequencies_;
44  std::vector<ConstraintResult> results_;
45 };
46 
47 } // namespace dp3::ddecal
48 
49 #endif
This class is the base class for classes that implement a constraint on calibration solutions....
Definition: Constraint.h:27
Definition: TecOffsetDelayConstraint.h:16
void Initialize(size_t nAntennas, const std::vector< uint32_t > &solutions_per_direction, const std::vector< double > &frequencies) override
std::vector< ThreadData > thread_data_
Definition: TecOffsetDelayConstraint.h:36
std::vector< double > relative_frequencies_
Definition: TecOffsetDelayConstraint.h:43
double reference_frequency_
Definition: TecOffsetDelayConstraint.h:42
std::vector< double > weights_
Definition: TecOffsetDelayConstraint.h:41
std::vector< ConstraintResult > results_
Definition: TecOffsetDelayConstraint.h:44
TecOffsetDelayConstraint(bool include_offset, size_t max_wraps, bool do_phase_referencing)
void Apply(SolutionSpan &solutions, double time) override
void SetWeights(const std::vector< double > &weights) override
size_t max_wraps_
Definition: TecOffsetDelayConstraint.h:40
std::vector< ConstraintResult > GetResult() const override
Definition: TecOffsetDelayConstraint.h:29
bool do_phase_referencing_
Definition: TecOffsetDelayConstraint.h:39
bool include_offset_
Definition: TecOffsetDelayConstraint.h:38
Definition: AmplitudeOnlyConstraint.h:12
aocommon::xt::Span< std::complex< double >, 4 > SolutionSpan
Definition: Solutions.h:20
Definition: TecOffsetDelayConstraint.h:32
std::vector< double > weights
Definition: TecOffsetDelayConstraint.h:34
std::vector< double > data
Definition: TecOffsetDelayConstraint.h:33