00001 //# FluxStdsQS2.h: Client class declarations for flux standards 00002 //# some of which support time-variable sources. 00003 // 00004 //# Copyright (C) 2013 00005 //# Associated Universities, Inc. Washington DC, USA. 00006 //# 00007 //# This library is free software; you can redistribute it and/or modify it 00008 //# under the terms of the GNU Library General Public License as published by 00009 //# the Free Software Foundation; either version 2 of the License, or (at your 00010 //# option) any later version. 00011 //# 00012 //# This library is distributed in the hope that it will be useful, but WITHOUT 00013 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00014 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00015 //# License for more details. 00016 //# 00017 //# You should have received a copy of the GNU Library General Public License 00018 //# along with this library; if not, write to the Free Software Foundation, 00019 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA. 00020 //# 00021 //# Correspondence concerning AIPS++ should be adressed as follows: 00022 //# Internet email: aips2-request@nrao.edu. 00023 //# Postal address: AIPS++ Project Office 00024 //# National Radio Astronomy Observatory 00025 //# 520 Edgemont Road 00026 //# Charlottesville, VA 22903-2475 USA 00027 //# 00028 //# 00029 #ifndef COMPONENTS_FLUXSTDSQS2_H 00030 #define COMPONENTS_FLUXSTDSQS2_H 00031 00032 #include <components/ComponentModels/FluxCalcLogFreqPolynomial.h> 00033 #include <components/ComponentModels/FluxCalcVQS.h> 00034 00035 namespace casa { //# NAMESPACE CASA - BEGIN 00036 namespace NSTDS { //# NAMESPACE NSTDS "new standards" - BEGIN 00037 //# once old code (FluxCalcQS etc) deleted this can be 00038 //# removed. 00039 // <summary> 00040 // FluxStdBaars: The Baars flux standard. 00041 // </summary> 00042 00043 // <use visibility=export> 00044 00045 // <reviewed reviewer="" date="" tests="" demos=""> 00046 00047 // <prerequisite> 00048 // <li><linkto class="FluxStandard">FluxStandard</linkto> module 00049 // <li><linkto class="FluxCalcLogFreqPolynomial">FluxCalcLogFreqPolynomial</linkto> module 00050 // </prerequisite> 00051 // 00052 // <etymology> 00053 // From "flux density", "standard", and "Baars". 00054 // </etymology> 00055 // 00056 // <synopsis> 00057 // This specializes FluxCalcLogFreqPolynomial with the Baars coefficients and 00058 // list of recognized sources. 00059 // </synopsis> 00060 // 00061 // <example> 00062 // <srcblock> 00063 // </srcblock> 00064 // </example> 00065 // 00066 // <motivation> 00067 // Support flux density calibration. 00068 // </motivation> 00069 00070 class FluxStdBaars : public virtual FluxCalcVQS, 00071 private FluxCalcLogFreqPolynomial 00072 { 00073 private: 00074 virtual Bool setSourceCoeffs(); 00075 }; 00076 00077 // <summary> 00078 // FluxStdPerley90: The Perley90 flux standard. 00079 // </summary> 00080 // 00081 // <use visibility=export> 00082 // 00083 // <reviewed reviewer="" date="" tests="" demos=""> 00084 // 00085 // <prerequisite> 00086 // <li><linkto class="FluxStandard">FluxStandard</linkto> module 00087 // <li><linkto class="FluxCalcLogFreqPolynomial">FluxCalcLogFreqPolynomial</linkto> module 00088 // </prerequisite> 00089 // 00090 // <etymology> 00091 // From "flux density", "standard", "Perley", and "1990". 00092 // </etymology> 00093 // 00094 // <synopsis> 00095 // This specializes FluxCalcLogFreqPolynomial with the Perley_90 coefficients and 00096 // list of recognized sources. 00097 // </synopsis> 00098 // 00099 // <example> 00100 // <srcblock> 00101 // </srcblock> 00102 // </example> 00103 // 00104 // <motivation> 00105 // Support flux density calibration. 00106 // </motivation> 00107 class FluxStdPerley90 : public virtual FluxCalcVQS, 00108 private FluxCalcLogFreqPolynomial 00109 { 00110 private: 00111 virtual Bool setSourceCoeffs(); 00112 }; 00113 00114 // <summary> 00115 // FluxStdPerleyTaylor95: The PerleyTaylor95 flux standard. 00116 // </summary> 00117 // 00118 // <use visibility=export> 00119 // 00120 // <reviewed reviewer="" date="" tests="" demos=""> 00121 // 00122 // <prerequisite> 00123 // <li><linkto class="FluxStandard">FluxStandard</linkto> module 00124 // <li><linkto class="FluxCalcLogFreqPolynomial">FluxCalcLogFreqPolynomial</linkto> module 00125 // </prerequisite> 00126 // 00127 // <etymology> 00128 // From "flux density", "standard", "Perley", "Taylor", and "1995". 00129 // </etymology> 00130 // 00131 // <synopsis> 00132 // This specializes FluxCalcLogFreqPolynomial with the PerleyTaylor95 coefficients and 00133 // list of recognized sources. 00134 // </synopsis> 00135 // 00136 // <example> 00137 // <srcblock> 00138 // </srcblock> 00139 // </example> 00140 // 00141 // <motivation> 00142 // Support flux density calibration. 00143 // </motivation> 00144 class FluxStdPerleyTaylor95 : public virtual FluxCalcVQS, 00145 private FluxCalcLogFreqPolynomial 00146 { 00147 private: 00148 virtual Bool setSourceCoeffs(); 00149 }; 00150 00151 // <summary> 00152 // FluxStdPerleyTaylor99: The PerleyTaylor99 flux standard. 00153 // </summary> 00154 // 00155 // <use visibility=export> 00156 // 00157 // <reviewed reviewer="" date="" tests="" demos=""> 00158 // 00159 // <prerequisite> 00160 // <li><linkto class="FluxStandard">FluxStandard</linkto> module 00161 // <li><linkto class="FluxCalcLogFreqBrokenPolynomial">FluxCalcLogFreqBrokenPolynomial</linkto> module 00162 // </prerequisite> 00163 // 00164 // <etymology> 00165 // From "flux density", "standard", "Perley", "Taylor", and "1999". 00166 // </etymology> 00167 // 00168 // <synopsis> 00169 // This specializes FluxCalcLogFreqBrokenPolynomial with the PerleyTaylor99 coefficients and 00170 // list of recognized sources. 00171 // </synopsis> 00172 // 00173 // <example> 00174 // <srcblock> 00175 // </srcblock> 00176 // </example> 00177 // 00178 // <motivation> 00179 // Support flux density calibration. 00180 // </motivation> 00181 class FluxStdPerleyTaylor99 : public virtual FluxCalcVQS, 00182 private FluxCalcLogFreqBrokenPolynomial 00183 { 00184 private: 00185 virtual Bool setSourceCoeffs(); 00186 }; 00187 00188 // <summary> 00189 // FluxStdPerleyButler2010: The PerleyButler2010 flux standard. 00190 // </summary> 00191 // 00192 // <use visibility=export> 00193 // 00194 // <reviewed reviewer="" date="" tests="" demos=""> 00195 // 00196 // <prerequisite> 00197 // <li><linkto class="FluxStandard">FluxStandard</linkto> module 00198 // <li><linkto class="FluxCalcLogFreqBrokenPolynomial">FluxCalcLogFreqBrokenPolynomial</linkto> module 00199 // </prerequisite> 00200 // 00201 // <etymology> 00202 // From "flux density", "standard", "Perley", "Butler", and "2010". 00203 // </etymology> 00204 // 00205 // <synopsis> 00206 // This specializes FluxCalcLogFreqBrokenPolynomial with the PerleyButler2010 coefficients and 00207 // list of recognized sources. 00208 // </synopsis> 00209 // 00210 // <example> 00211 // <srcblock> 00212 // </srcblock> 00213 // </example> 00214 // 00215 // <motivation> 00216 // Support flux density calibration. 00217 // </motivation> 00218 class FluxStdPerleyButler2010 : public virtual FluxCalcVQS, 00219 private FluxCalcLogFreqBrokenPolynomial 00220 { 00221 private: 00222 virtual Bool setSourceCoeffs(); 00223 }; 00224 // <summary> 00225 // FluxStdPerleyButler2013: The PerleyButler2013 flux standard. 00226 // </summary> 00227 // 00228 // <use visibility=export> 00229 // 00230 // <reviewed reviewer="" date="" tests="" demos=""> 00231 // 00232 // <prerequisite> 00233 // <li><linkto class="FluxStandard">FluxStandard</linkto> module 00234 // <li><linkto class="FluxCalcLogFreqBrokenPolynomial">FluxCalcLogFreqBrokenPolynomial</linkto> module 00235 // </prerequisite> 00236 // 00237 // <etymology> 00238 // From "flux density", "standard", "Perley", "Butler", and "2013". 00239 // </etymology> 00240 // 00241 // <synopsis> 00242 // This specializes FluxCalcLogFreqBrokenPolynomial with the PerleyButler2013 coefficients and 00243 // list of recognized sources. The coeffients are stored in a table along with epoch information as 00244 // some of the calibrators are varible enough to be interpolated in time. 00245 // </synopsis> 00246 // 00247 // <example> 00248 // <srcblock> 00249 // </srcblock> 00250 // </example> 00251 // 00252 // <motivation> 00253 // Support flux density calibration. 00254 // </motivation> 00255 class FluxStdPerleyButler2013 : public virtual FluxCalcVQS, 00256 private FluxCalcLogFreqPolynomial 00257 { 00258 /*** 00259 public: 00260 Bool operator()(Vector<Flux<Double> >& values, 00261 Vector<Flux<Double> >& errors, 00262 const Vector<MFrequency>& mfreqs, 00263 const MEpoch& mtime); 00264 **/ 00265 private: 00266 virtual Bool setSourceCoeffs(); 00267 }; 00268 00269 // <summary> 00270 // FluxStdScaifeHeald2012: The Scaife & Heald (2012) flux standard. 00271 // </summary> 00272 // 00273 // <use visibility=export> 00274 // 00275 // <reviewed reviewer="" date="" tests="" demos=""> 00276 // 00277 // <prerequisite> 00278 // <li><linkto class="FluxStandard">FluxStandard</linkto> module 00279 // <li><linkto class="FluxCalcLogFreqPolynomialSH">FluxCalcLogFreqPolynomialSH</linkto> module 00280 // </prerequisite> 00281 // 00282 // <etymology> 00283 // From "flux density", "standard", "Scaife", "Heald", and "2012". 00284 // </etymology> 00285 // 00286 // <synopsis> 00287 // This specializes FluxCalcLogFreqPolynomialSH with the Scaife & Heald (2012) 00288 // coefficients and list of recognized sources. 00289 // </synopsis> 00290 // 00291 // <example> 00292 // <srcblock> 00293 // </srcblock> 00294 // </example> 00295 // 00296 // <motivation> 00297 // Support flux density calibration. 00298 // </motivation> 00299 class FluxStdScaifeHeald2012 : public virtual FluxCalcVQS, 00300 private FluxCalcLogFreqPolynomialSH 00301 { 00302 private: 00303 virtual Bool setSourceCoeffs(); 00304 }; 00305 00306 // <summary> 00307 // FluxStdStevensReynolds: The StevensReynolds2016 flux standard. 00308 // </summary> 00309 // 00310 // <use visibility=export> 00311 // 00312 // <reviewed reviewer="" date="" tests="" demos=""> 00313 // 00314 // <prerequisite> 00315 // <li><linkto class="FluxStandard">FluxStandard</linkto> module 00316 // <li><linkto class="FluxCalcLogFreqBrokenPolynomial">FluxCalcLogFreqBrokenPolynomial</linkto> module 00317 // </prerequisite> 00318 // 00319 // <etymology> 00320 // From "flux density", "standard", "Stevens", "Reynolds", and "2016". 00321 // </etymology> 00322 // 00323 // <synopsis> 00324 // This specializes FluxCalcLogFreqBrokenPolynomial with the StevensReynolds 00325 // coefficients and list of recognized sources. 00326 // </synopsis> 00327 // 00328 // <example> 00329 // <srcblock> 00330 // </srcblock> 00331 // </example> 00332 // 00333 // <motivation> 00334 // Support flux density calibration. 00335 // </motivation> 00336 class FluxStdStevensReynolds2016 : public virtual FluxCalcVQS, 00337 private FluxCalcLogFreqBrokenPolynomial 00338 { 00339 private: 00340 virtual Bool setSourceCoeffs(); 00341 }; 00342 00343 } //# NAMESPACE NSTDS -END 00344 } //# NAMESPACE CASA - END 00345 00346 #endif /* COMPONENTS_FLUXSTDSQS2_H */