1 #ifndef MHO_MultitonePhaseCorrection_HH__
2 #define MHO_MultitonePhaseCorrection_HH__
50 void SetStation(std::string station) { fStationCode = station; };
64 void SetPCPeriod(std::size_t pc_period) { fPCPeriod = pc_period; }
92 if(fPCData !=
nullptr){
return true;}
106 if(fPCData !=
nullptr){
return true;}
141 #ifdef HOPS_USE_FFTW3
150 void InitializeFFTEngine();
169 bool PolMatch(std::size_t station_idx, std::string& pc_pol, std::string& polprod);
178 void DetermineChannelToneIndexes(
double lower_freq,
double upper_freq, std::size_t& lower_idx, std::size_t& upper_idx);
181 void ApplyPCData(std::size_t pc_pol, std::size_t vis_pp,
visibility_type* in);
184 void FitPCData(std::size_t ntones,
double chan_center_freq,
double sampler_delay,
double* phase_spline,
185 std::string net_sideband);
188 std::complex< double > fImagUnit;
190 double fNanoSecToSecond;
195 std::string fStationCode;
197 std::size_t fStationIndex;
200 std::size_t fPCPeriod;
207 std::size_t fWorkspaceSize;
208 pcal_type fPCWorkspace;
211 std::string fStationKey;
212 std::string fRemStationKey;
213 std::string fRefStationKey;
214 std::string fRemStationMk4IDKey;
215 std::string fRefStationMk4IDKey;
216 std::string fChannelLabelKey;
217 std::string fSidebandLabelKey;
218 std::string fBandwidthKey;
219 std::string fSkyFreqKey;
220 std::string fLowerSideband;
221 std::string fUpperSideband;
224 std::string fPCToneMaskChannelsKey;
225 std::string fPCToneMaskBitmasksKey;
226 bool fHavePCToneMask;
227 std::string fPCToneMaskChannels;
228 std::vector< int > fPCToneMaskBitmasks;
237 void make_upper(std::string& s)
Class MHO_AxisPack.
Definition: MHO_AxisPack.hh:22
Class MHO_MultitonePhaseCorrection.
Definition: MHO_MultitonePhaseCorrection.hh:40
void InterpolatePCData(double pcal_minus_visib_toffset)
Temporally interpolates phase calibration (Pcal) tone phasors.
Definition: MHO_MultitonePhaseCorrection.cc:74
virtual bool ExecuteOutOfPlace(const visibility_type *in, visibility_type *out) override
Copies input visibility data and executes in-place correction.
Definition: MHO_MultitonePhaseCorrection.cc:215
void SetPCPeriod(std::size_t pc_period)
Setter for phase cal averaging period.
Definition: MHO_MultitonePhaseCorrection.hh:64
virtual bool InitializeInPlace(visibility_type *) override
Initializes visibility_type object in-place and checks if fPCData is nullptr.
Definition: MHO_MultitonePhaseCorrection.hh:90
MHO_MultitonePhaseCorrection()
Definition: MHO_MultitonePhaseCorrection.cc:24
virtual bool ExecuteInPlace(visibility_type *in) override
Applies multi-tone phase calibration to visibility data in-place.
Definition: MHO_MultitonePhaseCorrection.cc:141
void SetMultitonePCData(multitone_pcal_type *pcal)
Setter for multitone pcdata.
Definition: MHO_MultitonePhaseCorrection.cc:64
virtual ~MHO_MultitonePhaseCorrection()
Definition: MHO_MultitonePhaseCorrection.cc:60
void SetStationMk4ID(std::string station_id)
Setter for station mk4id.
Definition: MHO_MultitonePhaseCorrection.hh:57
void SetWeights(weight_type *w)
Setter for weights.
Definition: MHO_MultitonePhaseCorrection.hh:79
void SetStation(std::string station)
Setter for station code.
Definition: MHO_MultitonePhaseCorrection.hh:50
virtual bool InitializeOutOfPlace(const visibility_type *, visibility_type *) override
Initializes out-of-place visibility data (only if fPCData != nullptr).
Definition: MHO_MultitonePhaseCorrection.hh:104
Class MHO_PhaseCalibrationTrim.
Definition: MHO_PhaseCalibrationTrim.hh:34
Class MHO_UnaryOperator.
Definition: MHO_UnaryOperator.hh:24
Definition: MHO_ChannelLabeler.hh:17