4 #ifndef DP3_BDADDECAL_H_
5 #define DP3_BDADDECAL_H_
88 bool process(std::unique_ptr<base::BdaBuffer>)
override;
92 void show(std::ostream&)
const override;
94 void showTimings(std::ostream&,
double duration)
const override;
107 size_t n_channel_blocks)
const;
110 void InitializeModelReuse();
113 const std::string& prefix);
116 const std::string& prefix);
119 void DetermineChannelBlocks();
122 void SetSourceDirections();
125 std::vector<double> GetChannelBlockFrequencies()
const;
128 void ExtractResults();
137 void ProcessCompleteDirections();
141 void SolveCurrentInterval();
143 void InitializeCurrentSolutions();
149 void WriteSolutions();
153 std::unique_ptr<ddecal::SolutionWriter> solution_writer_;
156 std::vector<base::Direction> source_directions_;
162 std::vector<std::shared_ptr<ModelDataStep>> steps_;
164 std::vector<std::shared_ptr<BDAResultStep>> result_steps_;
166 std::unique_ptr<UVWFlagger> uvw_flagger_step_;
167 std::shared_ptr<BDAResultStep> uvw_flagger_result_step_;
170 std::vector<std::vector<std::string>> patches_per_direction_;
177 std::vector<std::string> direction_names_;
180 std::deque<std::unique_ptr<base::BdaBuffer>> input_buffers_;
189 std::unique_ptr<ddecal::BdaSolverBuffer> solver_buffer_;
191 std::unique_ptr<ddecal::SolverBase> solver_;
194 double solution_interval_duration_;
200 std::vector<double> chan_block_start_freqs_;
206 std::vector<int> antennas1_;
207 std::vector<int> antennas2_;
212 std::vector<std::vector<std::vector<casacore::DComplex>>> solutions_;
215 std::vector<size_t> iterations_;
216 std::vector<size_t> approx_iterations_;
220 std::vector<std::vector<std::vector<ddecal::ConstraintResult>>>
221 constraint_solutions_;
Class to hold code for virtual base class for Flaggers in DP3.
DP3 step class to flag data on UVW coordinates.
Definition: BdaBuffer.h:25
General info about DP3 data processing attributes like averaging.
Definition: DPInfo.h:35
Implements a map of Key-Value pairs.
Definition: ParameterSet.h:31
Definition: BdaDdeCal.h:70
size_t GetChanBlockIndex(size_t channel, size_t n_channels, size_t n_channel_blocks) const
void show(std::ostream &) const override
Show the step parameters.
bool process(std::unique_ptr< base::BdaBuffer >) override
common::Fields getProvidedFields() const override
Definition: BdaDdeCal.h:81
void finish() override
Finish the processing of this step and subsequent steps.
MsType outputs() const override
Return which datatype this step outputs.
Definition: BdaDdeCal.h:100
common::Fields getRequiredFields() const override
Get the fields required by the current step.
void showTimings(std::ostream &, double duration) const override
void updateInfo(const base::DPInfo &) override
bool accepts(MsType dt) const override
Boolean if this step can process this type of data.
Definition: BdaDdeCal.h:98
BdaDdeCal(const common::ParameterSet &parset, const std::string &prefix)
Abstract base class for a DP3 step.
Definition: Step.h:52
MsType
To check compatibility between steps before running.
Definition: Step.h:57
static constexpr dp3::common::Fields kDataField
Definition: Step.h:60
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53
This struct parses the DDECal parset settings and stores them.
Definition: Settings.h:33
const bool only_predict
Definition: Settings.h:140
const bool subtract
Definition: Settings.h:141
const bool keep_model_data
Definition: Settings.h:142