HOPS
HOPS class reference
MHO_LinearDParCorrection.hh
Go to the documentation of this file.
1 #ifndef MHO_LinearDParCorrection_HH__
2 #define MHO_LinearDParCorrection_HH__
3 
4 #include <cctype>
5 #include <cmath>
6 #include <complex>
7 #include <map>
8 #include <vector>
9 
10 #include "MHO_Constants.hh"
11 #include "MHO_Message.hh"
12 
14 #include "MHO_TableContainer.hh"
15 #include "MHO_UnaryOperator.hh"
16 
17 #include "MHO_Reducer.hh"
18 
19 namespace hops
20 {
21 
33 class MHO_LinearDParCorrection: public MHO_UnaryOperator< visibility_type >
34 {
35  public:
37  virtual ~MHO_LinearDParCorrection();
38 
44  void SetPolProductSet(std::vector< std::string >& pp_vec) { fPolProductSet = pp_vec; };
45 
46  // //these data objects are not used yet, but could be needed if we want to apply
47  // //time-dependence to the pol-product pre-factors
48  // void SetReferenceStationCoordinateData(station_coord_type* ref_data){fRefData = ref_data;};
49  // void SetRemoteStationCoordinateData(station_coord_type* rem_data){fRemData = rem_data;};
50 
51  //parallactic angle values for each station (expects degrees)
57  void SetReferenceParallacticAngle(double p) { fRefParAngle = p; }
58 
64  void SetRemoteParallacticAngle(double p) { fRemParAngle = p; }
65 
66  // //not currently used (but needed for circ-circ pol sum)
67  // void SetReferenceMountType(std::string mt){fRefMountType = mt;}
68  // void SetRemoteMountType(std::string mt){fRemMountType = mt;}
69 
70  protected:
78  virtual bool InitializeInPlace(visibility_type* in) override;
87  virtual bool InitializeOutOfPlace(const visibility_type* in, visibility_type* out) override;
88 
96  virtual bool ExecuteInPlace(visibility_type* in) override;
105  virtual bool ExecuteOutOfPlace(const visibility_type* in, visibility_type* out) override;
106 
107  private:
108  //multiplies each pol product by the appropriate scaling pre-factor
114  void PreMultiply(visibility_type* in);
115 
122  std::complex< double > GetPrefactor(std::string pp_label);
123 
124  std::vector< std::string > fPolProductSet;
125 
126  double fRefParAngle;
127  double fRemParAngle;
128  std::string fRefMountType;
129  std::string fRemMountType;
130 };
131 
132 } // namespace hops
133 
134 #endif
Class MHO_LinearDParCorrection.
Definition: MHO_LinearDParCorrection.hh:34
virtual bool InitializeInPlace(visibility_type *in) override
Initializes in-place visibility_type pointer.
Definition: MHO_LinearDParCorrection.cc:25
MHO_LinearDParCorrection()
Definition: MHO_LinearDParCorrection.cc:8
virtual bool InitializeOutOfPlace(const visibility_type *in, visibility_type *out) override
Initializes out-of-place visibility data using input visibility_type pointer.
Definition: MHO_LinearDParCorrection.cc:30
virtual ~MHO_LinearDParCorrection()
Definition: MHO_LinearDParCorrection.cc:10
void SetPolProductSet(std::vector< std::string > &pp_vec)
Setter for pol product set.
Definition: MHO_LinearDParCorrection.hh:44
void SetReferenceParallacticAngle(double p)
Setter for reference station parallactic angle.
Definition: MHO_LinearDParCorrection.hh:57
virtual bool ExecuteInPlace(visibility_type *in) override
Applies linear delta-parallactic angle correction to visibility data in-place.
Definition: MHO_LinearDParCorrection.cc:12
void SetRemoteParallacticAngle(double p)
Setter for remote station parallactic angle.
Definition: MHO_LinearDParCorrection.hh:64
virtual bool ExecuteOutOfPlace(const visibility_type *in, visibility_type *out) override
Copies input visibility data and applies the pre-multiplication operation.
Definition: MHO_LinearDParCorrection.cc:18
Class MHO_UnaryOperator.
Definition: MHO_UnaryOperator.hh:24
Definition: MHO_ChannelLabeler.hh:17