CalSetMetaInfo.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 #ifndef CALTABLES_CALSETMETAINFO_H
00029 #define CALTABLES_CALSETMETAINFO_H
00030
00031 #include <casa/aips.h>
00032 #include <ms/MeasurementSets/MSAntennaColumns.h>
00033 #include <ms/MeasurementSets/MSAntenna.h>
00034 #include <ms/MeasurementSets/MSFieldColumns.h>
00035 #include <ms/MeasurementSets/MSField.h>
00036 #include <ms/MeasurementSets/MSSpWindowColumns.h>
00037 #include <ms/MeasurementSets/MSSpectralWindow.h>
00038
00039
00040
00041
00042
00043 namespace casa {
00044
00045
00046
00047
00048
00049 class CalSetMetaInfo {
00050 public:
00051
00052 CalSetMetaInfo():
00053 antTableName("ANTENNA"), fieldTableName("FIELD"), spwTableName("SPECTRAL_WINDOW"),
00054 calTableMSAC(NULL), calTableMSFC(NULL), calTableMSSpC(NULL),
00055 calAntTable(NULL), calFieldTable(NULL), calSpwTable(NULL)
00056 {rootName="";};
00057
00058 CalSetMetaInfo(const String& root);
00059
00060 ~CalSetMetaInfo() {cleanUp();};
00061
00062 void setRootName(const String& root) {rootName=root;};
00063 String fullSubTableName(String& subTableName,const String& base){
00064 return Table(base).rwKeywordSet().asTable(subTableName).tableName();};
00065 String fullSubTableName(String& subTableName){
00066 return fullSubTableName(subTableName,rootName);};
00067
00068 void reset(const String& root);
00069 String getAntName(Int ant);
00070 String getFieldName(Int field);
00071 String getSpwName(Int spw);
00072 Double getSpwRefFreq(Int spw);
00073
00074 Double getSpwTotalBandwidth(Int spw);
00075
00076 Vector<String> getFieldNames();
00077 Vector<String> getAntNames();
00078 Vector<String> getSpwNames();
00079 Vector<Double> getSpwRefFreqs();
00080 Bool verify(CalSetMetaInfo& otherCSMI);
00081
00082 void copyMetaTables(const String& target);
00083
00084 protected:
00085
00086 void cleanUp()
00087 {
00088 if (calTableMSAC != NULL) {delete calTableMSAC; calTableMSAC = NULL;}
00089 if (calTableMSFC != NULL) {delete calTableMSFC; calTableMSFC = NULL;}
00090 if (calTableMSSpC != NULL) {delete calTableMSSpC; calTableMSSpC = NULL;}
00091
00092 if (calAntTable != NULL) {delete calAntTable; calAntTable = NULL;}
00093 if (calFieldTable != NULL) {delete calFieldTable; calFieldTable = NULL;}
00094 if (calSpwTable != NULL) {delete calSpwTable; calSpwTable = NULL;}
00095 }
00096 private:
00097 String rootName, antTableName, fieldTableName, spwTableName;
00098 ROMSAntennaColumns *calTableMSAC;
00099 ROMSFieldColumns *calTableMSFC;
00100 ROMSSpWindowColumns *calTableMSSpC;
00101 MSAntenna *calAntTable;
00102 MSField *calFieldTable;
00103 MSSpectralWindow *calSpwTable;
00104 };
00105
00106
00107
00108
00109 }
00110
00111 #endif