casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CalCorruptor.h
Go to the documentation of this file.
1 //# CalCorruptor.h
2 //# Copyright (C) 1996,1997,2000,2001,2002,2003
3 //# Associated Universities, Inc. Washington DC, USA.
4 //#
5 //# This library is free software; you can redistribute it and/or modify it
6 //# under the terms of the GNU Library General Public License as published by
7 //# the Free Software Foundation; either version 2 of the License, or (at your
8 //# option) any later version.
9 //#
10 //# This library is distributed in the hope that it will be useful, but WITHOUT
11 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 //# License for more details.
14 //#
15 //# You should have received a copy of the GNU Library General Public License
16 //# along with this library; if not, write to the Free Software Foundation,
17 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18 //#
19 //# Correspondence concerning AIPS++ should be adressed as follows:
20 //# Internet email: aips2-request@nrao.edu.
21 //# Postal address: AIPS++ Project Office
22 //# National Radio Astronomy Observatory
23 //# 520 Edgemont Road
24 //# Charlottesville, VA 22903-2475 USA
25 //#
26 //#
27 
28 #ifndef SYNTHESIS_CALCORRUPTOR_H
29 #define SYNTHESIS_CALCORRUPTOR_H
30 
31 // for simulation
32 #include <casa/BasicMath/Random.h>
34 #include <casa/Containers/Record.h>
38 
39 using namespace std;
40 
41 //#ifndef CASA_STANDALONE //libatmosphere should always be available now
60 /* #else */
61 /* //#ATM Not available; mimic the classes and functions used */
62 /* namespace atm{ */
63 /* class Angle */
64 /* { */
65 /* public: */
66 /* double get(string) const {return 0.0;} */
67 /* }; */
68 /* class RefractiveIndexProfile */
69 /* { */
70 /* public: */
71 /* Angle getDispersiveWetPhaseDelay(int,int) const {return Angle();} */
72 /* }; */
73 /* class AtmProfile; */
74 /* class SkyStatus; */
75 /* class SpectralGrid; */
76 
77 /* } */
78 /* #endif */
79 
80 
81 namespace casa { //# NAMESPACE CASA - BEGIN
82 
83 
84 // for simulating corruptions
85 class CalCorruptor {
86 
87  public:
88 
89  CalCorruptor(const casacore::Int nSim);
90  virtual ~CalCorruptor();
91  inline casacore::uInt& nSim() { return nSim_; };
92  inline casacore::Bool& times_initialized() { return times_initialized_; };
93  inline casacore::Int& curr_slot() { return curr_slot_; };
94  inline casacore::Double& curr_time() { return curr_time_; };
95  inline casacore::Double& startTime() { return starttime_; };
96  inline casacore::Double& stopTime() { return stoptime_; };
97  inline casacore::Double& slot_time(const casacore::Int i) { return slot_times_(i); };
98  inline casacore::Double& slot_time() { return slot_times_(curr_slot()); };
99  inline casacore::Vector<casacore::Double>& slot_times() { return slot_times_; };
100  inline casacore::Float& amp() { return amp_;};
101  virtual void initialize() {};
102 
103  // a generic initializer that just takes amplitude and simpar
104  void initialize(const casacore::Float amp, const casacore::Record& simpar) {
105  amp_=amp;
106  simpar_=simpar;
107  };
108  inline casacore::Record& simpar() {return simpar_;}
109  inline casacore::String& mode() { return mode_; };
110 
111  void setEvenSlots(const casacore::Double& dt);
112  virtual casacore::Complex simPar(const VisIter& vi, VisCal::Type type,casacore::Int ipar);
113 
114  inline casacore::uInt& nPar() { return nPar_; };
115  inline casacore::uInt& nChan() { return fnChan_[currSpw()]; };
116  inline const casacore::uInt& focusChan() {return curr_chan_[currSpw()];};
117  inline const casacore::Double& focusFreq() {return curr_freq_;};
118  virtual void setFocusChan(casacore::Int chan) {
119  curr_chan_[currSpw()]=chan;
120  // WARN: this assumes constant channel width - more detailed
121  // channel freq may be inaccurate
122  casacore::Double fRes(fWidth()[currSpw()]/casacore::Double(fnChan()[currSpw()]));
123  curr_freq_=fRefFreq()[currSpw()]+chan*fRes;
124  };
125 
126  virtual void setCurrTime(const casacore::Double& time);
127 
128  // inherited from VC
129  inline casacore::uInt& prtlev() { return prtlev_; };
130  inline casacore::uInt& nAnt() { return nAnt_; };
131  inline casacore::uInt& nSpw() { return nSpw_; };
132  inline casacore::uInt& currAnt() { return curr_ant_; };
133  inline casacore::uInt& currAnt2() { return curr_ant2_; };
134  inline casacore::uInt& currSpw() { return curr_spw_; };
135  inline casacore::Vector<casacore::Float>& fRefFreq() { return fRefFreq_; };
136  inline casacore::Vector<casacore::Float>& fWidth() { return fWidth_; };
137  inline casacore::Vector<casacore::uInt>& fnChan() { return fnChan_; };
138  inline casacore::Vector<casacore::uInt>& currChans() { return curr_chan_; };
139 
140  inline casacore::Bool& freqDepPar() { return freqdep_; };
141 
142  protected:
143 
144  casacore::uInt nSim_;
148  casacore::Double curr_time_,starttime_,stoptime_,curr_freq_;
152  casacore::String mode_; // general parameter for different kinds of corruptions
153 
155  casacore::uInt nAnt_,curr_ant_,nSpw_,curr_spw_,curr_ant2_;
156  casacore::Vector<casacore::Float> fRefFreq_,fWidth_; // for each spw
158 
159  private:
160 
161 };
162 
163 
164 
165 
166 
167 
168 
170 
171  public:
173  virtual ~ANoiseCorruptor();
174  virtual void initialize() {
175  initialize(1234,1.0);
176  }
177  void initialize(const casacore::Int seed, const casacore::Float amp) {
178  rndGen_p = new casacore::MLCG(seed);
179  nDist_p = new casacore::Normal(rndGen_p, 0.0, 1.0); // sigma=1.
180  amp_=amp;
181  };
182  virtual casacore::Complex simPar(const VisIter& vi,VisCal::Type type,casacore::Int ipar);
183  virtual casacore::Complex simPar();
184 
185  private:
188  };
189 
190 
191 
192 
193 
194 // D is like ANoise but has a complex amplitude (different sigma in real/imag), and
195 // a systematic offset
197 
198  public:
200  virtual ~DJonesCorruptor();
201  virtual void initialize() {
202  initialize(1234,casacore::Complex(1.0,1.0),casacore::Complex(0.0));
203  }
204  void initialize(const casacore::Int seed, const casacore::Complex camp, const casacore::Complex offset) {
205  rndGen_p = new casacore::MLCG(seed);
206  nDist_p = new casacore::Normal(rndGen_p, 0.0, 1.0); // sigma=1.
207  camp_=camp;
208  offset_=offset;
209  };
210  virtual casacore::Complex simPar(const VisIter& vi,VisCal::Type type,casacore::Int ipar);
211  inline casacore::Complex& camp() { return camp_; };
212  inline casacore::Complex& offset() { return offset_; };
213 
214  private:
215  casacore::MLCG *rndGen_p;
218  };
219 
220 
221 
222 
223 
224 
225 
226 // this generates fractional brownian motion aka generalized 1/f noise
227 // class fBM : public casacore::Array<casacore::Double> {
228 class fBM {
229 
230  public:
231 
232  fBM(casacore::uInt i1);
235  // virtual ~fBM(); // not ness if we don't derive from this
236  inline casacore::Bool& initialized() { return initialized_; };
237  void initialize(const casacore::Int seed, const casacore::Float beta);
238 
239  inline casacore::Array<casacore::Float> data() { return *data_; };
240  inline casacore::Float data(casacore::uInt i1) { return data_->operator()(casacore::IPosition(1,i1)); };
241  inline casacore::Float data(casacore::uInt i1, casacore::uInt i2) { return data_->operator()(casacore::IPosition(2,i1,i2)); };
242  inline casacore::Float data(casacore::uInt i1, casacore::uInt i2, casacore::uInt i3) { return data_->operator()(casacore::IPosition(3,i1,i2,i3)); };
243 
244 
245  private:
246  casacore::Bool initialized_;
248 
249 };
250 
251 
252 
253 
254 
255 
256 class AtmosCorruptor : public CalCorruptor {
257 
258  public:
259  AtmosCorruptor();
260  AtmosCorruptor(const casacore::Int nSim);
261  virtual ~AtmosCorruptor();
262 
263  casacore::Float& pwv(const casacore::Int i);
265  void initAtm();
266  inline casacore::Float& mean_pwv() { return mean_pwv_; };
267  // pwv screen e.g. for a T
268  inline casacore::Matrix<casacore::Float>& screen() { return *screen_p; };
269  inline casacore::Float screen(const casacore::Int i, const casacore::Int j) {
270  return screen_p->operator()(i,j); };
271  using CalCorruptor::initialize;
272  virtual void initialize(const casacore::Int rxType);
273 
274  // use ATM but no time dependence - e.g. for B[Tsys]
275  void initialize(const VisIter& vi, const casacore::Record& simpar, VisCal::Type type, const casacore::Int rxType);
277 
278  void initialize(const casacore::Int Seed, const casacore::Float Beta, const casacore::Float scale, const casacore::Int rxType);
279  void initialize(const casacore::Int Seed, const casacore::Float Beta, const casacore::Float scale, const casacore::Int rxType,
280  const casacore::ROMSAntennaColumns& antcols);
281  // phase corruption gain for a T
282  casacore::Complex cphase(const casacore::Int islot);
283  casacore::Complex cphase(const casacore::Int ix, const casacore::Int iy, const casacore::Int islot);
284  inline casacore::Vector<casacore::Float>& antx() { return antx_; };
285  inline casacore::Vector<casacore::Float>& anty() { return anty_; };
286  inline casacore::Float& windspeed() { return windspeed_; };
287  inline casacore::Float& pixsize() { return pixsize_; };
288 
289  inline casacore::Float& tauscale() { return tauscale_; };
290  casacore::Float tsys(const casacore::Float& airmass);
291  casacore::Float opac(const casacore::Int ichan);
292  inline casacore::Float& spilleff() { return spilleff_; };
293 
294  inline casacore::Float& tground() { return tground_; };
295  inline casacore::Float& tatmos() { return tatmos_; };
296  inline casacore::Float& trx() { return trx_; };
297  inline casacore::Float& tcmb() { return tcmb_; };
298  inline casacore::Int& rxType() { return rxtype_; }; // 0=2SB, 1=DSB
299  // gets slow to calculate 1/exp(hv/kt)-1 all the time so
300  inline casacore::Double& Rtground() { return Rtground_; };
301  inline casacore::Double& Rtatmos() { return Rtatmos_; };
302  //inline casacore::Double& Rtrx() { return Rtrx_; };
303  inline casacore::Double& Rtcmb() { return Rtcmb_; };
304  inline casacore::Float& senscoeff() { return sensitivityCoeff_; };
305 
306  virtual casacore::Complex simPar(const VisIter& vi, VisCal::Type type,casacore::Int ipar);
307 
308  inline casacore::Vector<casacore::uInt>& ATMnChan() { return ATMnChan_; };
309  inline casacore::Vector<casacore::uInt>& ATMchanMap(casacore::uInt ispw) { return ATMchanMap_[ispw]; };
310 
311  virtual void setFocusChan(casacore::Int chan) {
312  curr_chan_[currSpw()]=chan;
313  // WARN: this assumes constant channel width - more detailed
314  // channel freq may be inaccurate
315  casacore::Double fRes(fWidth()[currSpw()]/casacore::Double(fnChan()[currSpw()]));
316  curr_freq_=fRefFreq()[currSpw()]+chan*fRes;
317  // for temp calculations, recalculate the radiances 1/exp(hn/kt)-1
318  double hn_k = 0.04799274551*1e-9*focusFreq();
319  Rtcmb() = 1./(exp(hn_k/tcmb())-1.);
320  Rtground() = 1./(exp(hn_k/tground())-1.);
321  //Rtrx() = 1./(exp(hn_k/trx())-1.);
322  Rtatmos() = 1./(exp(hn_k/tatmos())-1.);
323  };
324 
325  virtual void setCurrTime(const casacore::Double& time);
326 
327  protected:
328 
329  private:
331  casacore::Float mean_pwv_,windspeed_,pixsize_,tauscale_,
332  tground_,spilleff_,trx_,tatmos_,tcmb_;
333  casacore::Double Rtatmos_,Rtcmb_,Rtground_;//,Rtrx_
335 
336  atm::AtmProfile *itsatm;
337  atm::RefractiveIndexProfile *itsRIP;
338  atm::SkyStatus *itsSkyStatus;
339  atm::SpectralGrid *itsSpecGrid;
340 
343 
345  casacore::Vector<casacore::Float> antx_,anty_; // antenna positions in units of screen resl
346 
347  casacore::Vector<casacore::Float> airMass_; // length= nAnt, recalculated if ness
351 };
352 
353 
354 
355 
356 
358 
359  public:
360  GJonesCorruptor(const casacore::Int nSim);
361  virtual ~GJonesCorruptor();
362 
363  //casacore::Complex& drift(const casacore::Int i); // drift as fBM
365  inline casacore::Float& tsys() { return tsys_; };
366  virtual void initialize();
367  void initialize(const casacore::Int Seed, const casacore::Float Beta, const casacore::Float scale);
368  casacore::Complex gain(const casacore::Int icorr, const casacore::Int islot); // tsys scale and time-dep drift
369  virtual casacore::Complex simPar(const VisIter& vi, VisCal::Type type,casacore::Int ipar);
370 
371  // for the residual/gaussian noise
372  void initialize(const casacore::Int seed, const casacore::Complex camp) {
373  rndGen_p = new casacore::MLCG(seed);
374  nDist_p = new casacore::Normal(rndGen_p, 0.0, 1.0); // sigma=1.
375  camp_=camp;
376  };
377  inline casacore::Complex& camp() { return camp_; };
378 
379  protected:
380 
381  private:
382  casacore::Float tsys_;
384  // RI todo rearrange so there's a Gauss corruptor for AN,D,G, a fBMcorrupt,etc
388 };
389 
390 
391 
392 
393 
394 }
395 #endif
A Vector of integers, for indexing into Array&lt;T&gt; objects.
Definition: IPosition.h:119
casacore::Vector< casacore::Double > & slot_times()
Definition: CalCorruptor.h:99
casacore::Float & tsys()
Definition: CalCorruptor.h:365
int Int
Definition: aipstype.h:50
casacore::Double & curr_time()
Definition: CalCorruptor.h:94
casacore::Complex offset_
Definition: CalCorruptor.h:217
atm::SkyStatus * itsSkyStatus
Definition: CalCorruptor.h:338
virtual void setFocusChan(casacore::Int chan)
Definition: CalCorruptor.h:118
casacore::Vector< casacore::Float > & anty()
Definition: CalCorruptor.h:285
casacore::Double & startTime()
Definition: CalCorruptor.h:95
casacore::Vector< casacore::uInt > & fnChan()
Definition: CalCorruptor.h:137
casacore::uInt & currAnt()
Definition: CalCorruptor.h:132
casacore::Array< casacore::Float > * data_
Definition: CalCorruptor.h:247
casacore::Double & Rtcmb()
inline casacore::Double&amp; Rtrx() { return Rtrx_; };
Definition: CalCorruptor.h:303
casacore::Record & simpar()
Definition: CalCorruptor.h:108
casacore::Vector< casacore::uInt > ATMnChan_
Definition: CalCorruptor.h:341
casacore::Float screen(const casacore::Int i, const casacore::Int j)
Definition: CalCorruptor.h:269
casacore::Float & tground()
Definition: CalCorruptor.h:294
casacore::Normal * nDist_p
Definition: CalCorruptor.h:216
casacore::Float & tcmb()
Definition: CalCorruptor.h:297
casacore::Vector< casacore::Vector< casacore::uInt > > ATMchanMap_
Definition: CalCorruptor.h:342
casacore::Bool & initialized()
virtual ~fBM(); // not ness if we don&#39;t derive from this
Definition: CalCorruptor.h:236
casacore::Bool & times_initialized()
Definition: CalCorruptor.h:92
ABSTRACT TOOL CLASSES A PlotTool is a higher level event handler for a PlotCanvas The idea is to take common tasks which may require multiple events and put them in one place PlotTools also provide additional functionality in that they can be active and blocking non blocking The PlotCanvas will only send events to active and will not send events to later tools or event handlers if the latest tool was blocking In this way a single tool can be used to handle ALL user interaction via the GUI at one time
Definition: PlotTool.h:43
casacore::uInt nPar_
Definition: CalCorruptor.h:147
void initialize(const casacore::Int seed, const casacore::Complex camp)
for the residual/gaussian noise
Definition: CalCorruptor.h:372
virtual void setFocusChan(casacore::Int chan)
Definition: CalCorruptor.h:311
virtual casacore::String type() const
Implements RegionShape::type.
Definition: RegionShapes.h:548
const casacore::uInt & focusChan()
Definition: CalCorruptor.h:116
LatticeExprNode exp(const LatticeExprNode &expr)
casacore::Float amp_
Definition: CalCorruptor.h:149
casacore::Bool times_initialized_
Definition: CalCorruptor.h:146
casacore::Double stoptime_
Definition: CalCorruptor.h:148
virtual void initialize()
Definition: CalCorruptor.h:201
casacore::Float & amp()
Definition: CalCorruptor.h:100
const casacore::Double & focusFreq()
Definition: CalCorruptor.h:117
casacore::Int & curr_slot()
Definition: CalCorruptor.h:93
casacore::String mode_
Definition: CalCorruptor.h:152
casacore::Double airMassTime_
Definition: CalCorruptor.h:349
casacore::Float & senscoeff()
Definition: CalCorruptor.h:304
casacore::Double & stopTime()
Definition: CalCorruptor.h:96
ABSTRACT CLASSES Deliberately vague to be general enough to allow for many different types of data
Definition: PlotData.h:48
casacore::Vector< casacore::Float > anty_
Definition: CalCorruptor.h:345
casacore::Float & spilleff()
Definition: CalCorruptor.h:292
casacore::Vector< casacore::uInt > & currChans()
Definition: CalCorruptor.h:138
casacore::Complex & camp()
Definition: CalCorruptor.h:211
casacore::Float & mean_pwv()
Definition: CalCorruptor.h:266
casacore::Vector< casacore::Float > fWidth_
Definition: CalCorruptor.h:156
casacore::Double & slot_time()
Definition: CalCorruptor.h:98
casacore::Vector< casacore::Double > antDiams
Definition: CalCorruptor.h:276
atm::SpectralGrid * itsSpecGrid
Definition: CalCorruptor.h:339
casacore::Double & Rtatmos()
Definition: CalCorruptor.h:301
casacore::Float data(casacore::uInt i1, casacore::uInt i2)
Definition: CalCorruptor.h:241
casacore::Vector< casacore::Float > airMass_
Definition: CalCorruptor.h:347
casacore::uInt & nSim()
Definition: CalCorruptor.h:91
Type
Allowed types of VisCal matrices - &#39;correct&#39; order enum Type{UVMOD,Mf,M,K,B,G,D,C,E,P,T,EP,F}; enum Type{Test=0,ANoise,M,KAntPos,K,B,G,J,D,X,C,P,E,T,F,A,ALL};.
Definition: VisCal.h:62
casacore::Float & windspeed()
Definition: CalCorruptor.h:286
casacore::Normal * nDist_p
Definition: CalCorruptor.h:386
Normal or Gaussian distribution.
Definition: Random.h:997
double Double
Definition: aipstype.h:55
casacore::Float & tatmos()
Definition: CalCorruptor.h:295
LatticeExprNode amp(const LatticeExprNode &left, const LatticeExprNode &right)
This function finds sqrt(left^2+right^2).
casacore::uInt prtlev_
Definition: CalCorruptor.h:154
casacore::Normal * nDist_p
Definition: CalCorruptor.h:187
casacore::MLCG * rndGen_p
Definition: CalCorruptor.h:186
casacore::Array< casacore::Float > data()
Definition: CalCorruptor.h:239
casacore::uInt nSpw_
Definition: CalCorruptor.h:155
casacore::uInt & prtlev()
inherited from VC
Definition: CalCorruptor.h:129
casacore::PtrBlock< casacore::Matrix< casacore::Complex > * > drift_p
Definition: CalCorruptor.h:383
casacore::Vector< casacore::uInt > & ATMnChan()
Definition: CalCorruptor.h:308
A hierarchical collection of named fields of various types.
Definition: Record.h:180
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
casacore::Float & trx()
Definition: CalCorruptor.h:296
atm::AtmProfile * itsatm
Definition: CalCorruptor.h:336
float Float
Definition: aipstype.h:54
virtual void initialize()
Definition: CalCorruptor.h:101
casacore::uInt & nAnt()
Definition: CalCorruptor.h:130
A drop-in replacement for Block&lt;T*&gt;.
Definition: WProjectFT.h:54
casacore::Double & slot_time(const casacore::Int i)
Definition: CalCorruptor.h:97
casacore::uInt & nSpw()
Definition: CalCorruptor.h:131
casacore::Vector< casacore::Double > slot_times_
Definition: CalCorruptor.h:150
casacore::Vector< casacore::Float > & fWidth()
Definition: CalCorruptor.h:136
casacore::Vector< casacore::Float > & antx()
Definition: CalCorruptor.h:284
casacore::Matrix< casacore::Float > * screen_p
Definition: CalCorruptor.h:334
casacore::Complex camp_
Definition: CalCorruptor.h:387
D is like ANoise but has a complex amplitude (different sigma in real/imag), and a systematic offset...
Definition: CalCorruptor.h:196
casacore::Float & pixsize()
Definition: CalCorruptor.h:287
casacore::Vector< casacore::uInt > & ATMchanMap(casacore::uInt ispw)
Definition: CalCorruptor.h:309
void initialize(const casacore::Int seed, const casacore::Complex camp, const casacore::Complex offset)
Definition: CalCorruptor.h:204
casacore::Matrix< casacore::Float > & screen()
pwv screen e.g.
Definition: CalCorruptor.h:268
void initialize(const casacore::Int seed, const casacore::Float amp)
Definition: CalCorruptor.h:177
const Double e
e and functions thereof:
casacore::Float sensitivityCoeff_
Definition: CalCorruptor.h:350
casacore::Float & tauscale()
Definition: CalCorruptor.h:289
casacore::uInt & currAnt2()
Definition: CalCorruptor.h:133
casacore::Vector< casacore::uInt > fnChan_
Definition: CalCorruptor.h:157
Multiplicative linear congruential generator.
Definition: Random.h:305
A class to provide easy read-only access to MSAntenna columns.
String: the storage and methods of handling collections of characters.
Definition: String.h:223
casacore::String & mode()
Definition: CalCorruptor.h:109
casacore::Int rxtype_
Definition: CalCorruptor.h:330
casacore::Int & rxType()
Definition: CalCorruptor.h:298
VisibilityIterator iterates through one or more writable MeasurementSets.
casacore::PtrBlock< casacore::Vector< casacore::Float > * > pwv_p
Definition: CalCorruptor.h:344
casacore::Bool airMassValid_
Definition: CalCorruptor.h:348
this generates fractional brownian motion aka generalized 1/f noise class fBM : public casacore::Arra...
Definition: CalCorruptor.h:228
casacore::Record simpar_
Definition: CalCorruptor.h:151
for simulating corruptions
Definition: CalCorruptor.h:85
casacore::Float windspeed_
Definition: CalCorruptor.h:331
virtual void initialize()
Definition: CalCorruptor.h:174
casacore::uInt & nChan()
Definition: CalCorruptor.h:115
atm::RefractiveIndexProfile * itsRIP
Definition: CalCorruptor.h:337
casacore::MLCG * rndGen_p
RI todo rearrange so there&#39;s a Gauss corruptor for AN,D,G, a fBMcorrupt,etc.
Definition: CalCorruptor.h:385
casacore::uInt & nPar()
Definition: CalCorruptor.h:114
void initialize(const casacore::Float amp, const casacore::Record &simpar)
a generic initializer that just takes amplitude and simpar
Definition: CalCorruptor.h:104
casacore::Int curr_slot_
Definition: CalCorruptor.h:145
casacore::Double Rtground_
Definition: CalCorruptor.h:333
casacore::uInt & currSpw()
Definition: CalCorruptor.h:134
casacore::Float data(casacore::uInt i1)
Definition: CalCorruptor.h:240
casacore::Vector< casacore::Float > & fRefFreq()
Definition: CalCorruptor.h:135
casacore::Double & Rtground()
gets slow to calculate 1/exp(hv/kt)-1 all the time so
Definition: CalCorruptor.h:300
unsigned int uInt
Definition: aipstype.h:51