HOPS
HOPS class reference
MHO_InterpolateFringePeak.hh
Go to the documentation of this file.
1 #ifndef MHO_InterpolateFringePeak_HH__
2 #define MHO_InterpolateFringePeak_HH__
3 
4 #include <cmath>
5 #include <complex>
6 
8 #include "MHO_Operator.hh"
9 
10 #include "MHO_FringeRotation.hh"
11 
12 namespace hops
13 {
14 
27 {
28  public:
31 
36 
41 
47  void SetReferenceFrequency(double ref_freq) { fRefFreq = ref_freq; }
48 
54  void SetReferenceTimeOffset(double frt_offset) { fFRTOffset = frt_offset; }
55 
63  void SetMaxBins(int sbd_max, int mbd_max, int dr_max);
64 
70  void SetSBDArray(const visibility_type* sbd_arr) { fSBDArray = sbd_arr; }
71 
77  void SetWeights(const weight_type* weights) { fWeights = weights; }
78 
84  void SetMBDAxis(const time_axis_type* mbd_ax) { fMBDAxis.Copy(*mbd_ax); }
85 
91  void SetDRAxis(const delay_rate_axis_type* dr_ax) { fDRAxis.Copy(*dr_ax); }
92 
99  virtual bool Initialize() override;
106  virtual bool Execute() override;
107 
113  double GetSBDelay() const { return fSBDelay; }
114 
120  double GetMBDelay() const { return fMBDelay; }
121 
127  double GetDelayRate() const { return fDelayRate; }
128 
134  double GetFringeRate() const { return fFringeRate; }
135 
141  double GetFringeAmplitude() const { return fFringeAmp; }
142 
143  private:
144  int fMBDMaxBin;
145  int fDRMaxBin;
146  int fSBDMaxBin;
147 
148  double fRefFreq;
149  double fFRTOffset;
150  double fTotalSummedWeights;
151  const visibility_type* fSBDArray;
152  const weight_type* fWeights;
153 
154  time_axis_type fMBDAxis;
155  delay_rate_axis_type fDRAxis;
156 
157  void fine_peak_interpolation();
158 
160 
161  double fSBDelay;
162  double fMBDelay;
163  double fDelayRate;
164  double fFringeRate;
165  double fFringeAmp;
166 
167  //copy of max555.c impl
168  void max555(MHO_NDArrayWrapper< double, 3 >&, double xlim[3][2], double xi[3], double* drfmax);
169  void interp555(MHO_NDArrayWrapper< double, 3 >&, double xi[3], double* drfval);
170  double dwin(double, double, double);
171 
172  //class which implements vrot
173  MHO_FringeRotation fRot;
174 };
175 
176 } // namespace hops
177 
178 #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:202
Class MHO_FringeRotation.
Definition: MHO_FringeRotation.hh:22
void SetOptimizeClosureTrue()
Setter for optimize closure true.
Definition: MHO_FringeRotation.hh:78
void SetOptimizeClosureFalse()
Setter for optimize closure false.
Definition: MHO_FringeRotation.hh:83
Class MHO_InterpolateFringePeak.
Definition: MHO_InterpolateFringePeak.hh:27
virtual ~MHO_InterpolateFringePeak()
Definition: MHO_InterpolateFringePeak.hh:30
virtual bool Initialize() override
Initializes MHO_InterpolateFringePeak object by checking and retrieving necessary data.
Definition: MHO_InterpolateFringePeak.cc:25
double GetFringeAmplitude() const
Getter for fringe amplitude.
Definition: MHO_InterpolateFringePeak.hh:141
void SetReferenceTimeOffset(double frt_offset)
Setter for reference time offset.
Definition: MHO_InterpolateFringePeak.hh:54
MHO_InterpolateFringePeak()
Definition: MHO_InterpolateFringePeak.cc:7
void SetMaxBins(int sbd_max, int mbd_max, int dr_max)
Setter for max bins (location)
Definition: MHO_InterpolateFringePeak.cc:59
void SetSBDArray(const visibility_type *sbd_arr)
Setter for sbd array.
Definition: MHO_InterpolateFringePeak.hh:70
double GetDelayRate() const
Getter for delay rate.
Definition: MHO_InterpolateFringePeak.hh:127
void SetMBDAxis(const time_axis_type *mbd_ax)
Setter for mbd axis.
Definition: MHO_InterpolateFringePeak.hh:84
double GetSBDelay() const
Getter for sbdelay.
Definition: MHO_InterpolateFringePeak.hh:113
void SetReferenceFrequency(double ref_freq)
Setter for reference frequency.
Definition: MHO_InterpolateFringePeak.hh:47
void EnableOptimizeClosure()
Sets optimize closure to true (not used for 'simul' method).
Definition: MHO_InterpolateFringePeak.hh:35
double GetMBDelay() const
Getter for mbdelay.
Definition: MHO_InterpolateFringePeak.hh:120
void SetWeights(const weight_type *weights)
Setter for weights.
Definition: MHO_InterpolateFringePeak.hh:77
void DisableOptimizeClosure()
Disables optimize closure.
Definition: MHO_InterpolateFringePeak.hh:40
void SetDRAxis(const delay_rate_axis_type *dr_ax)
Setter for dr axis.
Definition: MHO_InterpolateFringePeak.hh:91
double GetFringeRate() const
Getter for fringe rate.
Definition: MHO_InterpolateFringePeak.hh:134
virtual bool Execute() override
Executes fine peak interpolation and returns success.
Definition: MHO_InterpolateFringePeak.cc:53
Class MHO_Operator.
Definition: MHO_Operator.hh:21
Definition: MHO_ChannelLabeler.hh:17