casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PhaseShiftingTVI.h
Go to the documentation of this file.
1 //# PhaseShiftingTVI.h: This file contains the interface definition of the MSTransformManager class.
2 //#
3 //# CASA - Common Astronomy Software Applications (http://casa.nrao.edu/)
4 //# Copyright (C) Associated Universities, Inc. Washington DC, USA 2011, All rights reserved.
5 //# Copyright (C) European Southern Observatory, 2011, All rights reserved.
6 //#
7 //# This library is free software; you can redistribute it and/or
8 //# modify it under the terms of the GNU Lesser General Public
9 //# License as published by the Free software Foundation; either
10 //# version 2.1 of the License, or (at your option) any later version.
11 //#
12 //# This library is distributed in the hope that it will be useful,
13 //# but WITHOUT ANY WARRANTY, without even the implied warranty of
14 //# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 //# Lesser General Public License for more details.
16 //#
17 //# You should have received a copy of the GNU Lesser General Public
18 //# License along with this library; if not, write to the Free Software
19 //# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20 //# MA 02111-1307 USA
21 //# $Id: $
22 
23 #ifndef PhaseShiftingTVI_H_
24 #define PhaseShiftingTVI_H_
25 
26 // Base class
28 
29 
30 namespace casa { //# NAMESPACE CASA - BEGIN
31 
32 namespace vi { //# NAMESPACE VI - BEGIN
33 
35 // PhaseShiftingTVI class
37 
38 class PhaseShiftingTVI : public FreqAxisTVI
39 {
40 
41 public:
42 
44  const casacore::Record &configuration);
45 
46  // Report the the ViImplementation type
47  virtual casacore::String ViiType() const { return casacore::String("PhaseShifting( ")+getVii()->ViiType()+" )"; };
48 
49  virtual void visibilityObserved (casacore::Cube<casacore::Complex> & vis) const;
50  virtual void visibilityCorrected (casacore::Cube<casacore::Complex> & vis) const;
51  virtual void visibilityModel (casacore::Cube<casacore::Complex> & vis) const;
52 
53 protected:
54 
56  void initialize();
57 
59 };
60 
62 // PhaseShiftingTVIFactory class
64 
66 {
67 
68 public:
69 
71 
72 protected:
73 
76 
79 };
80 
82 // PhaseShiftingTVILayerFactory class (for _recursive_ layering)
84 
86 {
87 
88 public:
89 
91 
93 
94 protected:
95 
96 
97  virtual ViImplementation2 * createInstance(ViImplementation2* vii0) const;
98 
100 
101 };
102 
104 // PhaseShiftingTransformEngine class
106 
107 template<class T> class PhaseShiftingTransformEngine : public FreqAxisTransformEngine2<T>
108 {
113 
114 public:
115 
119  DataCubeMap *inputData,
120  DataCubeMap *outputData);
121 
122  void transform();
123 
124  void transformCore(DataCubeMap *inputData,DataCubeMap *outputData);
125 
126 protected:
127 
131 };
132 
133 
134 } //# NAMESPACE VI - END
135 
136 } //# NAMESPACE CASA - END
137 
138 #endif /* PhaseShiftingTVI_H_ */
139 
PhaseShiftingTransformEngine(casacore::Double dx, casacore::Double dy, casacore::Matrix< casacore::Double > *uvw, casacore::Vector< casacore::Double > *frequencies, DataCubeMap *inputData, DataCubeMap *outputData)
PhaseShiftingTVILayerFactory(casacore::Record &configuration)
VisibilityIterator2 iterates through one or more readonly MeasurementSets.
PhaseShiftingTVIFactory(casacore::Record &configuration, ViImplementation2 *inputVII)
virtual void visibilityObserved(casacore::Cube< casacore::Complex > &vis) const
void transformCore(DataCubeMap *inputData, DataCubeMap *outputData)
casacore::Matrix< casacore::Double > * uvw_p
virtual void visibilityCorrected(casacore::Cube< casacore::Complex > &vis) const
Return the visibilities as found in the casacore::MS, casacore::Cube (npol,nchan,nrow).
virtual ViImplementation2 * createInstance(ViImplementation2 *vii0) const
Make a ViImplementation with another as input Must be specialized for each type.
double Double
Definition: aipstype.h:55
A hierarchical collection of named fields of various types.
Definition: Record.h:180
ViImplementation2 * getVii() const
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
casacore::Vector< casacore::Double > * frequencies_p
virtual casacore::String ViiType() const
Report the the ViImplementation type.
vi::ViImplementation2 * createVi() const
VisibilityIterator2 iterates through one or more readonly MeasurementSets.
virtual casacore::String ViiType() const =0
Report the the ViImplementation type.
String: the storage and methods of handling collections of characters.
Definition: String.h:223
virtual void visibilityModel(casacore::Cube< casacore::Complex > &vis) const
casacore::Bool parseConfiguration(const casacore::Record &configuration)
PhaseShiftingTVI(ViImplementation2 *inputVii, const casacore::Record &configuration)