CTMainColumns.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef CALIBRATION_NEWCALMAINCOLUMNS_H
00030 #define CALIBRATION_NEWCALMAINCOLUMNS_H
00031
00032 #include <casa/aips.h>
00033 #include <measures/Measures/MEpoch.h>
00034 #include <measures/Measures/MFrequency.h>
00035 #include <measures/Measures/MDirection.h>
00036 #include <tables/Tables/TableColumn.h>
00037 #include <tables/Tables/ScalarColumn.h>
00038 #include <tables/Tables/ArrayColumn.h>
00039 #include <measures/TableMeasures/TableMeasColumn.h>
00040 #include <measures/TableMeasures/ScalarMeasColumn.h>
00041 #include <measures/TableMeasures/ArrayMeasColumn.h>
00042 #include <measures/TableMeasures/ScalarQuantColumn.h>
00043 #include <synthesis/CalTables/NewCalTable.h>
00044 #include <synthesis/CalTables/CTEnums.h>
00045
00046 namespace casa {
00047
00048 class NewCalTable;
00049
00050 class ROCTMainColumns
00051 {
00052 public:
00053
00054 ROCTMainColumns (const NewCalTable& calTable);
00055
00056
00057 virtual ~ROCTMainColumns() {};
00058
00059
00060 const ROScalarColumn<Double>& time() const {return time_p;};
00061 const ROScalarQuantColumn<Double>& timeQuant() const {return timeQuant_p;};
00062 const ROScalarMeasColumn<MEpoch>& timeMeas() const {return timeMeas_p;};
00063 const ROScalarColumn<Double>& timeEP() const {return timeEP_p;};
00064 const ROScalarQuantColumn<Double>& timeEPQuant() const
00065 {return timeEPQuant_p;};
00066 const ROScalarColumn<Double>& interval() const {return interval_p;};
00067 const ROScalarQuantColumn<Double>& intervalQuant() const
00068 {return intervalQuant_p;};
00069 const ROScalarColumn<Int>& antenna1() const {return antenna1_p;};
00070 const ROScalarColumn<Int>& antenna2() const {return antenna2_p;};
00071 const ROScalarColumn<Int>& fieldId() const {return fieldId_p;};
00072 const ROScalarColumn<Int>& spwId() const {return spwId_p;};
00073 const ROScalarColumn<Int>& scanNo() const {return scanNo_p;};
00074 const ROScalarColumn<Int>& obsId() const {return obsId_p;};
00075 const ROArrayColumn<Complex>& cparam() const {return cparam_p;};
00076 const ROArrayColumn<Float>& fparam() const {return fparam_p;};
00077 const ROArrayColumn<Float>& paramerr() const {return paramerr_p;};
00078 const ROArrayColumn<Bool>& flag() const {return flag_p;};
00079 const ROArrayColumn<Float>& snr() const {return snr_p;};
00080 const ROArrayColumn<Float>& weight() const {return weight_p;};
00081
00082
00083
00084 Array<Float> fparamArray(String what="",const Vector<uInt>& rows=Vector<uInt>());
00085 void fparamArray(Array<Float>& arr,String what="",const Vector<uInt>& rows=Vector<uInt>());
00086
00087
00088 Array<Float> phase();
00089 void phase(Array<Float>& ph);
00090 Array<Float> cycles();
00091 void cycles(Array<Float>& cy);
00092
00093 protected:
00094
00095
00096 ROCTMainColumns() {};
00097
00098
00099
00100
00101
00102
00103
00104 void attach (const NewCalTable& calTable, ROTableColumn& tabCol,
00105 CTEnums::colDef colEnum, const Bool& optional = False);
00106 void attach (const NewCalTable& calTable,
00107 ROArrayMeasColumn<MEpoch>& tabCol,
00108 CTEnums::colDef colEnum, const Bool& optional = False);
00109 void attach (const NewCalTable& calTable,
00110 ROArrayMeasColumn<MFrequency>& tabCol,
00111 CTEnums::colDef colEnum, const Bool& optional = False);
00112 void attach (const NewCalTable& calTable,
00113 ROArrayMeasColumn<MDirection>& tabCol,
00114 CTEnums::colDef colEnum, const Bool& optional = False);
00115 void attach (const NewCalTable& calTable, ROScalarMeasColumn<MEpoch>& tabCol,
00116 CTEnums::colDef colEnum, const Bool& optional = False);
00117 void attach (const NewCalTable& calTable, ROScalarQuantColumn<Double>& tabCol,
00118 CTEnums::colDef colEnum, const Bool& optional = False);
00119
00120 private:
00121
00122 ROCTMainColumns (const ROCTMainColumns&);
00123 ROCTMainColumns& operator= (const ROCTMainColumns&);
00124
00125
00126 ROScalarColumn<Double> time_p;
00127 ROScalarQuantColumn<Double> timeQuant_p;
00128 ROScalarMeasColumn<MEpoch> timeMeas_p;
00129 ROScalarColumn<Double> timeEP_p;
00130 ROScalarQuantColumn<Double> timeEPQuant_p;
00131 ROScalarColumn<Double> interval_p;
00132 ROScalarQuantColumn<Double> intervalQuant_p;
00133 ROScalarColumn<Int> antenna1_p;
00134 ROScalarColumn<Int> antenna2_p;
00135 ROScalarColumn<Int> fieldId_p;
00136 ROScalarColumn<Int> spwId_p;
00137 ROScalarColumn<Int> scanNo_p;
00138 ROScalarColumn<Int> obsId_p;
00139 ROArrayColumn<Complex> cparam_p;
00140 ROArrayColumn<Float> fparam_p;
00141 ROArrayColumn<Float> paramerr_p;
00142 ROArrayColumn<Bool> flag_p;
00143 ROArrayColumn<Float> snr_p;
00144 ROArrayColumn<Float> weight_p;
00145 };
00146
00147 class CTMainColumns
00148 {
00149 public:
00150
00151 CTMainColumns (NewCalTable& calTable);
00152
00153
00154 virtual ~CTMainColumns() {};
00155
00156
00157 ScalarColumn<Double>& time() {return time_p;};
00158 ScalarQuantColumn<Double>& timeQuant() {return timeQuant_p;};
00159 ScalarMeasColumn<MEpoch>& timeMeas() {return timeMeas_p;};
00160 ScalarColumn<Double>& timeEP() {return timeEP_p;};
00161 ScalarQuantColumn<Double>& timeEPQuant() {return timeEPQuant_p;};
00162 ScalarColumn<Double>& interval() {return interval_p;};
00163 ScalarQuantColumn<Double>& intervalQuant() {return intervalQuant_p;};
00164 ScalarColumn<Int>& fieldId() {return fieldId_p;};
00165 ScalarColumn<Int>& spwId() {return spwId_p;};
00166 ScalarColumn<Int>& antenna1() {return antenna1_p;};
00167 ScalarColumn<Int>& antenna2() {return antenna2_p;};
00168 ScalarColumn<Int>& scanNo() {return scanNo_p;};
00169 ScalarColumn<Int>& obsId() {return obsId_p;};
00170 ArrayColumn<Complex>& cparam() {return cparam_p;};
00171 ArrayColumn<Float>& fparam() {return fparam_p;};
00172 ArrayColumn<Float>& paramerr() {return paramerr_p;};
00173 ArrayColumn<Bool>& flag() {return flag_p;};
00174 ArrayColumn<Float>& snr() {return snr_p;};
00175 ArrayColumn<Float>& weight() {return weight_p;};
00176
00177 protected:
00178
00179
00180 CTMainColumns() {};
00181
00182
00183
00184
00185
00186
00187 void attach (NewCalTable& calTable, TableColumn& tabCol,
00188 CTEnums::colDef colEnum, const Bool& optional = False);
00189 void attach (NewCalTable& calTable, ArrayMeasColumn<MEpoch>& tabCol,
00190 CTEnums::colDef colEnum, const Bool& optional = False);
00191 void attach (NewCalTable& calTable, ArrayMeasColumn<MFrequency>& tabCol,
00192 CTEnums::colDef colEnum, const Bool& optional = False);
00193 void attach (NewCalTable& calTable, ArrayMeasColumn<MDirection>& tabCol,
00194 CTEnums::colDef colEnum, const Bool& optional = False);
00195 void attach (NewCalTable& calTable, ScalarMeasColumn<MEpoch>& tabCol,
00196 CTEnums::colDef colEnum, const Bool& optional = False);
00197 void attach (NewCalTable& calTable, ScalarQuantColumn<Double>& tabCol,
00198 CTEnums::colDef colEnum, const Bool& optional = False);
00199
00200 private:
00201
00202 CTMainColumns (const CTMainColumns&);
00203 CTMainColumns& operator= (const CTMainColumns&);
00204
00205
00206 ScalarColumn<Double> time_p;
00207 ScalarQuantColumn<Double> timeQuant_p;
00208 ScalarMeasColumn<MEpoch> timeMeas_p;
00209 ScalarColumn<Double> timeEP_p;
00210 ScalarQuantColumn<Double> timeEPQuant_p;
00211 ScalarColumn<Double> interval_p;
00212 ScalarQuantColumn<Double> intervalQuant_p;
00213 ScalarColumn<Int> fieldId_p;
00214 ScalarColumn<Int> spwId_p;
00215 ScalarColumn<Int> antenna1_p;
00216 ScalarColumn<Int> antenna2_p;
00217 ScalarColumn<Int> scanNo_p;
00218 ScalarColumn<Int> obsId_p;
00219 ArrayColumn<Complex> cparam_p;
00220 ArrayColumn<Float> fparam_p;
00221 ArrayColumn<Float> paramerr_p;
00222 ArrayColumn<Bool> flag_p;
00223 ArrayColumn<Float> snr_p;
00224 ArrayColumn<Float> weight_p;
00225 };
00226 }
00227 #endif