HOPS
HOPS class reference
MHO_InterpolateSpectralLinePeak.hh
Go to the documentation of this file.
1 #ifndef MHO_InterpolateSpectralLinePeak_HH__
2 #define MHO_InterpolateSpectralLinePeak_HH__
3 
4 #include <cmath>
5 #include <complex>
6 
8 #include "MHO_Operator.hh"
9 
10 namespace hops
11 {
12 
38 {
39  public:
42 
47  void SetSpecDRData(const visibility_type* spec_dr_data) { fSpecDRData = spec_dr_data; }
48 
52  void SetWeights(const weight_type* weights) { fWeights = weights; }
53 
57  void SetMaxBins(int peak_chan, int peak_dr_bin, int peak_freq_bin);
58 
62  void SetDRAxis(const delay_rate_axis_type* dr_ax) { fDRAxis.Copy(*dr_ax); }
63 
67  void SetReferenceFrequency(double ref_freq_mhz) { fRefFreqMHz = ref_freq_mhz; }
68 
69  virtual bool Initialize() override;
70  virtual bool Execute() override;
71 
73  double GetPeakSkyFrequencyMHz() const { return fPeakSkyFreqMHz; }
74 
76  double GetDelayRate() const { return fDelayRate; }
77 
79  double GetFringeRate() const { return fFringeRate; }
80 
82  double GetFringeAmplitude() const { return fFringeAmp; }
83 
85  double GetFringePhase() const { return fFringePhase; }
86 
93  double GetPhaseDelay() const { return fPhaseDelay; }
94 
95  private:
96  const visibility_type* fSpecDRData;
97  const weight_type* fWeights;
98 
99  delay_rate_axis_type fDRAxis;
100  double fRefFreqMHz;
101  double fTotalSummedWeights;
102 
103  int fPeakChan;
104  int fPeakDRBin;
105  int fPeakFreqBin;
106 
107  double fPeakSkyFreqMHz;
108  double fDelayRate;
109  double fFringeRate;
110  double fFringeAmp;
111  double fFringePhase;
112  double fPhaseDelay;
113 
120  double parabolic_offset(double fm1, double f0, double fp1) const;
121 };
122 
123 } // namespace hops
124 
125 #endif
virtual void Copy(const MHO_Axis &rhs)
Expensive copy for MHO_Axis that handles special treatment of index/interval labels.
Definition: MHO_Axis.hh:200
Class MHO_InterpolateSpectralLinePeak.
Definition: MHO_InterpolateSpectralLinePeak.hh:38
virtual bool Initialize() override
Function Initialize.
Definition: MHO_InterpolateSpectralLinePeak.cc:34
void SetSpecDRData(const visibility_type *spec_dr_data)
Set the delay-rate / frequency workspace produced by MHO_SpectralLineFringeSearch....
Definition: MHO_InterpolateSpectralLinePeak.hh:47
double GetDelayRate() const
Fine-interpolated delay rate (sec/sec).
Definition: MHO_InterpolateSpectralLinePeak.hh:76
void SetWeights(const weight_type *weights)
Set the weight array (needed for the total_summed_weights tag).
Definition: MHO_InterpolateSpectralLinePeak.hh:52
double GetFringeRate() const
Fine-interpolated fringe rate (Hz) = delay_rate x ref_freq.
Definition: MHO_InterpolateSpectralLinePeak.hh:79
void SetDRAxis(const delay_rate_axis_type *dr_ax)
Copy the delay-rate axis from the search operator.
Definition: MHO_InterpolateSpectralLinePeak.hh:62
MHO_InterpolateSpectralLinePeak()
Definition: MHO_InterpolateSpectralLinePeak.cc:6
double GetPhaseDelay() const
Phase delay at the spectral-line frequency (seconds). tau_phase = fringe_phase / (2pi x nu_peak_Hz)....
Definition: MHO_InterpolateSpectralLinePeak.hh:93
void SetMaxBins(int peak_chan, int peak_dr_bin, int peak_freq_bin)
Set the coarse peak bin indices obtained from MHO_SpectralLineFringeSearch.
Definition: MHO_InterpolateSpectralLinePeak.cc:27
double GetFringeAmplitude() const
Fringe amplitude normalised by total_summed_weights.
Definition: MHO_InterpolateSpectralLinePeak.hh:82
double GetFringePhase() const
Fringe phase at the peak (radians).
Definition: MHO_InterpolateSpectralLinePeak.hh:85
double GetPeakSkyFrequencyMHz() const
Sky frequency of the peak channel (MHz), refined by intra-channel interpolation.
Definition: MHO_InterpolateSpectralLinePeak.hh:73
virtual ~MHO_InterpolateSpectralLinePeak()
Definition: MHO_InterpolateSpectralLinePeak.hh:41
void SetReferenceFrequency(double ref_freq_mhz)
Reference frequency in MHz (used to compute fringe rate from delay rate).
Definition: MHO_InterpolateSpectralLinePeak.hh:67
virtual bool Execute() override
Function Execute.
Definition: MHO_InterpolateSpectralLinePeak.cc:67
Class MHO_Operator.
Definition: MHO_Operator.hh:21
Definition: MHO_AdhocFlagging.hh:18