5 #ifndef DP3_STEPS_DEMIXER_H_
6 #define DP3_STEPS_DEMIXER_H_
8 #include <casacore/measures/Measures/MeasFrame.h>
46 bool process(std::unique_ptr<base::DPBuffer>)
override;
59 void show(std::ostream&)
const override;
65 void showTimings(std::ostream&,
double duration)
const override;
68 void addToMS(
const std::string& msName)
override;
73 void addFactors(std::unique_ptr<base::DPBuffer> newBuf);
77 void makeFactors(
const aocommon::xt::UTensor<std::complex<double>, 4>& bufIn,
78 aocommon::xt::UTensor<std::complex<double>, 5>& bufOut,
80 size_t nChanOut,
size_t nChanAvg);
86 void deproject(aocommon::xt::UTensor<std::complex<double>, 5>& factors,
87 unsigned int resultIndex);
97 void mergeSubtractResult();
101 std::string itsSkyName;
102 std::string itsInstrumentName;
103 double itsDefaultGain;
106 std::shared_ptr<Filter> itsFilter;
107 std::shared_ptr<ResultStep> itsFilterResult;
108 std::vector<std::shared_ptr<PhaseShift>> itsPhaseShifts;
109 bool itsMovingPhaseRef;
110 casacore::MeasFrame itsMeasFrame;
112 std::vector<std::shared_ptr<Step>> itsFirstSteps;
115 std::vector<std::shared_ptr<MultiResultStep>> itsAvgResults;
116 std::shared_ptr<Step> itsAvgStepSubtr;
117 std::shared_ptr<Filter> itsFilterSubtr;
119 std::shared_ptr<MultiResultStep> itsAvgResultFull;
120 std::shared_ptr<MultiResultStep> itsAvgResultSubtr;
122 bool itsIgnoreTarget;
124 std::string itsTargetSource;
125 std::vector<std::string> itsSubtrSources;
126 std::vector<std::string> itsModelSources;
127 std::vector<std::string> itsExtraSources;
128 std::vector<std::string> itsAllSources;
129 bool itsPropagateSolutions;
131 unsigned int itsNChanAvg;
132 unsigned int itsNChanAvgSubtr;
133 unsigned int itsNChanIn;
134 unsigned int itsNChanOut;
135 unsigned int itsNChanOutSubtr;
136 unsigned int itsNCorr;
137 unsigned int itsNDir;
138 unsigned int itsNModel;
139 unsigned int itsNStation;
140 unsigned int itsNTimeAvg;
141 unsigned int itsNTimeAvgSubtr;
142 unsigned int itsNTimeChunk;
143 unsigned int itsNTimeChunkSubtr;
144 unsigned int itsNTimeDemix;
145 unsigned int itsNTimeIn;
146 unsigned int itsNTimeOut;
147 unsigned int itsNTimeOutSubtr;
148 double itsFreqResolution;
149 double itsTimeResolution;
150 double itsTimeIntervalAvg;
157 double itsLBFGSrobustdof;
167 aocommon::xt::UTensor<std::complex<double>, 4> itsFactorBuf;
174 std::vector<aocommon::xt::UTensor<std::complex<double>, 5>> itsFactors;
180 aocommon::xt::UTensor<std::complex<double>, 4> itsFactorBufSubtr;
187 std::vector<aocommon::xt::UTensor<std::complex<double>, 5>> itsFactorsSubtr;
189 std::vector<std::shared_ptr<model::Patch>> itsPatchList;
191 std::vector<base::Baseline> itsBaselines;
192 std::vector<int> itsUVWSplitIndex;
193 std::vector<double> itsFreqDemix;
194 std::vector<double> itsFreqSubtr;
195 std::vector<double> itsUnknowns;
196 std::vector<double> itsPrevSolution;
197 unsigned int itsTimeIndex;
198 unsigned int itsNConverged;
201 float itsVarianceRatio{0.0f};
202 unsigned int itsTotalDemixRuns{0};
Pair of stations that together form a baseline (interferometer).
DP3 step to filter out baselines and channels.
Class to keep counts of nr of flagged points.
Class containing a few static functions to parse a baseline selection string.
Definition: BaselineSelection.h:47
Buffer holding the data of a timeslot/band.
Definition: DPBuffer.h:92
xt::xtensor< float, 3 > WeightsType
Definition: DPBuffer.h:96
General info about DP3 data processing attributes like averaging.
Definition: DPInfo.h:35
Class to keep counts of nr of flagged points.
Definition: FlagCounter.h:35
Implements a map of Key-Value pairs.
Definition: ParameterSet.h:31
DP3 step class to subtract A-team sources This class is a Step class to subtract the strong A-team so...
Definition: Demixer.h:37
void finish() override
Finish the processing of this step and subsequent steps.
common::Fields getProvidedFields() const override
void updateInfo(const base::DPInfo &) override
Update the general info.
void addToMS(const std::string &msName) override
We use addToMS() to update HISTORY table.
void show(std::ostream &) const override
Show the step parameters.
void showTimings(std::ostream &, double duration) const override
Show the timings.
Demixer(const common::ParameterSet &, const std::string &prefix)
common::Fields getRequiredFields() const override
Get the fields required by the current step.
bool process(std::unique_ptr< base::DPBuffer >) override
void showCounts(std::ostream &) const override
Show the counts.
Abstract base class for a DP3 step.
Definition: Step.h:52
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53
A direction on the celestial sphere.
Definition: Direction.h:15