casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
StandardVisCal.h
Go to the documentation of this file.
1 //# StandardVisCal.h: Declaration of standard (Solvable)VisCal types
2 //# Copyright (C) 1996,1997,2000,2001,2002,2003,2011
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_STANDARDVISCAL_H
29 #define SYNTHESIS_STANDARDVISCAL_H
30 
31 #include <casa/aips.h>
32 #include <casa/Containers/Record.h>
33 #include <casa/BasicSL/Complex.h>
37 
38 namespace casa { //# NAMESPACE CASA - BEGIN
39 
40 // Forward declarations
41 class VisEquation;
42 class TJonesCorruptor;
43 
44 
45 // **********************************************************
46 // PJones
47 //
48 
49 class PJones : public VisJones {
50 public:
51 
52  // Constructor
53  PJones(VisSet& vs);
54  PJones(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
56 
57  virtual ~PJones();
58 
59  // Return the type enum
60  virtual Type type() { return VisCal::P; };
61 
62  // Return type name as string
63  virtual casacore::String typeName() { return "P Jones"; };
64  virtual casacore::String longTypeName() { return "P Jones (parallactic angle phase)"; };
65 
66  // Type of Jones matrix according to nPar()
68 
69 protected:
70 
71  // P has one trivial casacore::Complex parameter
72  virtual casacore::Int nPar() { return 1; };
73 
74  virtual casacore::Vector<casacore::Float>& pa() { return pa_; };
75 
76  // Jones matrix elements are NOT trivial
77  virtual casacore::Bool trivialJonesElem() { return false; };
78 
79  // Calculate parallactic angle
80  virtual void calcPar();
81 
82  // Detect basis and feed_pa for this vb
83  virtual void syncMeta(const VisBuffer& vb);
84  virtual void syncMeta2(const vi::VisBuffer2& vb);
85 
86  // Calculate a single PJones matrix
89 
90 private:
91 
93 
95 
96 };
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 
108 // **********************************************************
109 // TJones
110 //
111 
112 class TJones : public SolvableVisJones {
113 public:
114 
115  // Constructor
116  TJones(VisSet& vs);
117  TJones(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
118  TJones(const MSMetaInfoForCal& msmc);
119  TJones(const casacore::Int& nAnt);
120 
121 
122  virtual ~TJones();
123 
124  // Return the type enum
125  virtual Type type() { return VisCal::T; };
126 
127  // Return type name as string
128  virtual casacore::String typeName() { return "T Jones"; };
129  virtual casacore::String longTypeName() { return "T Jones (polarization-independent troposphere"; };
130 
131  // Type of Jones matrix according to nPar()
132  virtual Jones::JonesType jonesType() { return Jones::Scalar; };
133 
134  // This type is accumulatable
135  virtual casacore::Bool accumulatable() { return true; };
136 
137  // This type is smoothable
138  virtual casacore::Bool smoothable() { return true; };
139 
140  // Hazard a guess at parameters
141  virtual void guessPar(VisBuffer& vb);
142  virtual void guessPar(SDBList& sdbs); // VI2
143 
144  // Set up corruptor
145  virtual void createCorruptor(const VisIter& vi, const casacore::Record& simpar, const casacore::Int nSim);
146 
147 protected:
148 
149  // T has one trivial complex parameter
150  virtual casacore::Int nPar() { return 1; };
151 
152  // Jones matrix elements are trivial
153  virtual casacore::Bool trivialJonesElem() { return true; };
154 
155  // Are diff'd Js trivial?
156  virtual casacore::Bool trivialDJ() { return true; };
157 
158  // Initialize trivial dJs
159  virtual void initTrivDJ();
160 
161 private:
162 
163  // object that can simulate the corruption terms - internal to T;
164  // public access is only to the CalCorruptor parts
166 
167 };
168 
169 
170 
171 
172 
173 
174 
175 
176 
177 
178 // **********************************************************
179 // TfJones (freq-dep T)
180 //
181 
182 class TfJones : public TJones {
183 public:
184 
185  // Constructor
186  TfJones(VisSet& vs);
187  TfJones(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
188  TfJones(const MSMetaInfoForCal& msmc);
189  TfJones(const casacore::Int& nAnt);
190 
191  virtual ~TfJones();
192 
193  // Return the type enum
194  virtual Type type() { return VisCal::T; };
195 
196  // Return type name as string
197  virtual casacore::String typeName() { return "Tf Jones"; };
198  virtual casacore::String longTypeName() { return "Tf Jones (frequency-dependent atmospheric complex gain"; };
199 
200  // This is the freq-dep version of T
201  // (this is the ONLY fundamental difference from T)
202  virtual casacore::Bool freqDepPar() { return true; };
203 
204 protected:
205 
206  // <nothing>
207 
208 private:
209 
210  // <nothing>
211 
212 };
213 
214 
215 
216 
217 
218 // **********************************************************
219 // GJones
220 //
221 
222 class GJones : public SolvableVisJones {
223 public:
224 
225  // Constructor
226  GJones(VisSet& vs);
227  GJones(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
228  GJones(const MSMetaInfoForCal& msmc);
229  GJones(const casacore::Int& nAnt);
230 
231  virtual ~GJones();
232 
233  // Return the type enum
234  virtual Type type() { return VisCal::G; };
235 
236  // Return type name as string
237  virtual casacore::String typeName() { return "G Jones"; };
238  virtual casacore::String longTypeName() { return "G Jones (electronic Gain)"; };
239 
240  // Local setSolve
241  // (parses solmode)
243  virtual void setSolve(const casacore::Record& solve);
244 
245  // Type of Jones matrix according to nPar()
247 
248  // This type is accumulatable
249  virtual casacore::Bool accumulatable() { return true; };
250 
251  // This type is smoothable
252  virtual casacore::Bool smoothable() { return true; };
253 
254  // Nominally, we will only use parallel hands for now
255  virtual casacore::Bool phandonly() { return true; };
256 
257  // Hazard a guess at parameters
258  virtual void guessPar(VisBuffer& vb);
259  virtual void guessPar(SDBList& sdbs); // VI2
260 
261  virtual void createCorruptor(const VisIter& vi, const casacore::Record& simpar, const casacore::Int nSim);
262 
263 protected:
264 
265  // G has two trivial casacore::Complex parameters
266  virtual casacore::Int nPar() { return 2; };
267 
268  // Jones matrix elements are trivial
269  virtual casacore::Bool trivialJonesElem() { return true; };
270 
271  // dG/dp are trivial
272  virtual casacore::Bool trivialDJ() { return true; };
273 
274  // Initialize trivial dJs
275  virtual void initTrivDJ();
276 
277 private:
278 
280 
281 };
282 
283 
284 
285 // **********************************************************
286 // BJones (freq-dep GJones)
287 //
288 
289 class BJones : public GJones {
290 public:
291 
292  // Constructor
293  BJones(VisSet& vs);
294  BJones(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
295  BJones(const MSMetaInfoForCal& msmc);
296  BJones(const casacore::Int& nAnt);
297 
298  virtual ~BJones();
299 
300  // Return the type enum
301  virtual Type type() { return VisCal::B; };
302 
303  // Return type name as string
304  virtual casacore::String typeName() { return "B Jones"; };
305  virtual casacore::String longTypeName() { return "B Jones (bandpass)"; };
306 
307  // Local setSolve
308  using GJones::setSolve;
309  virtual void setSolve(const casacore::Record& solve);
310 
311  // This is the freq-dep version of G
312  // (this is the ONLY fundamental difference from G)
313  virtual casacore::Bool freqDepPar() { return true; };
314 
315  virtual void normalize();
316 
317  // Specialize post solve operations (adds chan gap fill)
318  virtual void globalPostSolveTinker();
319 
320  // Fill in bracketted channel gaps in solutions
321  virtual void fillChanGaps();
324 
325 protected:
326 
327  // B-specific weight scaling factors
328  virtual void calcWtScale(); // B-specific channel-collapsing weight scale calc
329 
330 private:
331 
332  // widest channel gap to fill by interpolation
334 
335 
336 };
337 
338 
339 
340 // **********************************************************
341 // JJones
342 //
343 
344 class JJones : public SolvableVisJones {
345 public:
346 
347  // Constructor
348  JJones(VisSet& vs);
349  JJones(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
350  JJones(const MSMetaInfoForCal& msmc);
351  JJones(const casacore::Int& nAnt);
352 
353  virtual ~JJones();
354 
355  // J-specific solve setup
357  void setSolve(const casacore::Record& solvepar);
358 
359  // Return the type enum
360  virtual Type type() { return VisCal::J; };
361 
362  // Return type name as string
363  virtual casacore::String typeName() { return "J Jones"; };
364  virtual casacore::String longTypeName() { return "J Jones (generic polarized gain)"; };
365 
366  // Type of Jones matrix according to nPar()
368 
369  // Hazard a guess at parameters
370  virtual void guessPar(VisBuffer& vb);
371 
372  // J-specific reReference
373  // TBD: non-triv impl
374  virtual void reReference() {};
375 
376 protected:
377 
378  // J has four trivial casacore::Complex parameters
379  virtual casacore::Int nPar() { return 4; };
380 
381  // Jones matrix elements are trivial
382  virtual casacore::Bool trivialJonesElem() { return true; };
383 
384  // dJ/dp are trivial
385  virtual casacore::Bool trivialDJ() { return true; };
386 
387  // Initialize trivial dJs
388  virtual void initTrivDJ();
389 
390 private:
391 
392  // <nothing>
393 
394 };
395 
396 
397 // **********************************************************
398 // M: baseline-based (closure)
399 //
400 
401 /*
402 
403 class MMueller : public SolvableVisMueller {
404 public:
405 
406  // Constructor
407  MMueller(VisSet& vs);
408  MMueller(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
409  MMueller(const MSMetaInfoForCal& msmc);
410  MMueller(const casacore::Int& nAnt);
411 
412  virtual ~MMueller();
413 
414  // Return the type enum
415  virtual Type type() { return VisCal::M; };
416 
417  // Return type name as string
418  virtual casacore::String typeName() { return "M Mueller"; };
419  virtual casacore::String longTypeName() { return "M Mueller (baseline-based)"; };
420 
421  // Type of Jones matrix according to nPar()
422  virtual Mueller::MuellerType muellerType() { return Mueller::Diag2; };
423 
424  // Local setApply
425  using SolvableVisCal::setApply;
426  virtual void setApply(const casacore::Record& apply);
427 
428  // M gathers/solves for itself
429  virtual casacore::Bool useGenericGatherForSolve() { return false; };
430 
431  // M solves for itself (by copying averaged data)
432  virtual void selfGatherAndSolve(VisSet& vs, VisEquation& ve) { newselfSolve(vs,ve); };
433  virtual void newselfSolve(VisSet& vs, VisEquation& ve); // new supports combine
434 
435  // Local M version only supports normalization
436  virtual void globalPostSolveTinker();
437 
438  virtual void createCorruptor(const VisIter& vi, const casacore::Record& simpar, const casacore::Int nSim);
439 protected:
440 
441  // M currently has just 2 complex parameters, i.e., both parallel hands
442  virtual casacore::Int nPar() { return 2; };
443 
444  // Jones matrix elements are trivial
445  virtual casacore::Bool trivialMuellerElem() { return true; };
446 
447 private:
448  AtmosCorruptor *atmcorruptor_p;
449 
450 };
451 
452 
453 
454 
455 
456 
457 // **********************************************************
458 // MfMueller (freq-dep MMueller)
459 //
460 
461 class MfMueller : public MMueller {
462 public:
463 
464  // Constructor
465  MfMueller(VisSet& vs);
466  MfMueller(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
467  MfMueller(const MSMetaInfoForCal& msmc);
468  MfMueller(const casacore::Int& nAnt);
469 
470  virtual ~MfMueller();
471 
472  // Return the type enum
473  virtual Type type() { return VisCal::M; };
474 
475  // Return type name as string
476  virtual casacore::String typeName() { return "Mf Mueller"; };
477  virtual casacore::String longTypeName() { return "Mf Mueller (closure bandpass)"; };
478 
479  // This is the freq-dep version of M
480  // (this is the ONLY fundamental difference from M)
481  virtual casacore::Bool freqDepPar() { return true; };
482 
483  // Normalize baseline spectra (after B)
484  virtual void normalize();
485 
486 protected:
487 
488  // <nothing>
489 
490 private:
491 
492  // <nothing>
493 
494 };
495 
496 */
497 
498 
499 // **********************************************************
500 // TOPac
501 //
502 
503 class TOpac : public TJones {
504 public:
505 
506  // Constructor
507  TOpac(VisSet& vs);
508  TOpac(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
509  TOpac(const MSMetaInfoForCal& msmc);
510 
511  virtual ~TOpac();
512 
513  // Return the type enum
514  virtual Type type() { return VisCal::T; };
515 
516  // Return type name as string
517  virtual casacore::String typeName() { return "TOpac"; };
518  virtual casacore::String longTypeName() { return "TOpac (Opacity corrections in amplitude)"; };
519 
520  // Type of Jones matrix according to nPar()
522 
523  // We have casacore::Float parameters
525 
526  // Local specialization of setApply to extract opacity
527  void setApply(const casacore::Record& applypar);
528 
529  // Report apply-related info
530  casacore::String applyinfo();
531 
532 protected:
533 
534  // TOpac has one casacore::Float par per ant
535  virtual casacore::Int nPar() { return 1; };
536 
537  // Jones matrix elements are NOT trivial
538  virtual casacore::Bool trivialJonesElem() { return false; };
539 
540  // Access to z.a. data
542 
543  // Detect zenith angle for this vb
544  virtual void syncMeta(const VisBuffer& vb);
545  virtual void syncMeta2(const vi::VisBuffer2& vb);
546 
547  // Calculate parameters (in this case, the z.a.)
548  virtual void calcPar();
549 
550  // Calculate the TOpac matrix for all ants
551  virtual void calcAllJones();
552 
553 private:
554 
555  // avoid compiler warnings
556  using TJones::setApply;
557 
558  // opacity per spw
560 
561  // zenith angle per antenna
563 
564 };
565 
566 
567 // **********************************************************
568 // TfOpac (freq-dep TOpac)
569 //
570 
571 class TfOpac : public TOpac {
572 public:
573 
574  // Constructor
575  TfOpac(VisSet& vs);
576  TfOpac(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
577  TfOpac(const MSMetaInfoForCal& msmc);
578 
579  virtual ~TfOpac();
580 
581  // Return the type enum
582  virtual Type type() { return VisCal::T; };
583 
584  // Return type name as string
585  virtual casacore::String typeName() { return "TfOpac"; };
586  virtual casacore::String longTypeName() { return "TfOpac (frequency-dependent opacity"; };
587 
588  // This is the freq-dep version of TOpac
589  // (this is the ONLY fundamental difference from TOpac)
590  virtual casacore::Bool freqDepPar() { return true; };
591 
592 protected:
593 
594  // Calculate the TfOpac matrix for all ants
595  virtual void calcAllJones();
596 
597 private:
598 
599  // Frequency weight scaling factors
600  virtual void calcWtScale();
601 
602 };
603 
604 // **********************************************************
605 // M: baseline-based (closure)
606 //
607 
608 
609 class MMueller : public SolvableVisMueller {
610 public:
611 
612  // Constructor
613  MMueller(VisSet& vs);
615  MMueller(const MSMetaInfoForCal& msmc);
616  MMueller(const casacore::Int& nAnt);
617 
618  virtual ~MMueller();
619 
620  // Return the type enum
621  virtual Type type() { return VisCal::M; };
622 
623  // Return type name as string
624  virtual casacore::String typeName() { return "M Mueller"; };
625  virtual casacore::String longTypeName() { return "M Mueller (baseline-based)"; };
626 
627  // Type of Jones matrix according to nPar()
629 
630  // Local setApply
632  virtual void setApply(const casacore::Record& apply);
633 
634  // M gathers/solves for itself under self-determined conditions
635  // Initialization: VI1: False ; VI2: True
636  virtual casacore::Bool useGenericGatherForSolve() { return useGenGathSolve_p; };
637 
638  // When generically gathering (VI2 only!), _don't_ use generic solveOne
639  // (use selfSolveOne below, which is just copy from averaged data)
640  virtual casacore::Bool useGenericSolveOne() { return !useGenGathSolve_p; };
641 
642  // M solves for itself (by copying averaged data)
643  virtual void selfGatherAndSolve(VisSet& vs, VisEquation& ve) { newselfSolve(vs,ve); };
644  virtual void newselfSolve(VisSet& vs, VisEquation& ve); // new supports combine
645 
646  // Local M version only supports normalization
647  virtual void globalPostSolveTinker();
648 
649  // Modern solving
650  virtual void selfSolveOne(SDBList& sdbs);
651  using SolvableVisMueller::selfSolveOne; // VS/VI version (trap)
652 
653  virtual void createCorruptor(const VisIter& vi, const casacore::Record& simpar, const casacore::Int nSim);
654 protected:
655 
656  // M currently has just 2 complex parameters, i.e., both parallel hands
657  virtual casacore::Int nPar() { return 2; };
658 
659  // Jones matrix elements are trivial
660  virtual casacore::Bool trivialMuellerElem() { return true; };
661 
662  // solve implementation
663  virtual void solveOne(SDBList& sdbs);
664 
665 private:
666  AtmosCorruptor *atmcorruptor_p;
667 
668  const bool useGenGathSolve_p; // true unless VisSet-driven ctor used
669 
670 
671 };
672 
673 
674 // **********************************************************
675 // MfMueller (freq-dep MMueller)
676 //
677 
678 class MfMueller : public MMueller {
679 public:
680 
681  // Constructor
682  MfMueller(VisSet& vs);
684  MfMueller(const MSMetaInfoForCal& msmc);
685  MfMueller(const casacore::Int& nAnt);
686 
687  virtual ~MfMueller();
688 
689  // Return the type enum
690  virtual Type type() { return VisCal::M; };
691 
692  // Return type name as string
693  virtual casacore::String typeName() { return "Mf Mueller"; };
694  virtual casacore::String longTypeName() { return "Mf Mueller (closure bandpass)"; };
695 
696  // This is the freq-dep version of M
697  // (this is the ONLY fundamental difference from M)
698  virtual casacore::Bool freqDepPar() { return true; };
699 
700  // Normalize baseline spectra (after B)
701  virtual void normalize();
702 
703 protected:
704 
705  // <nothing>
706 
707 private:
708 
709  // <nothing>
710 
711 };
712 
713 
714 
715 } //# NAMESPACE CASA - END
716 
717 #endif
718 
virtual void selfSolveOne(VisBuffGroupAcc &vs)
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are trivial.
virtual casacore::String longTypeName()
virtual ~MMueller()
virtual void calcOneJones(casacore::Vector< casacore::Complex > &mat, casacore::Vector< casacore::Bool > &mOk, const casacore::Vector< casacore::Complex > &par, const casacore::Vector< casacore::Bool > &pOk)
Calculate a single PJones matrix.
int Int
Definition: aipstype.h:50
virtual void createCorruptor(const VisIter &vi, const casacore::Record &simpar, const casacore::Int nSim)
Set up corruptor.
virtual casacore::Bool trivialDJ()
dJ/dp are trivial
VisibilityIterator VisIter
Definition: VisSet.h:100
virtual casacore::String longTypeName()
virtual void globalPostSolveTinker()
Specialize post solve operations (adds chan gap fill)
virtual Type type()
Return the type enum.
TfJones(VisSet &vs)
Constructor.
casacore::Vector< casacore::Double > opacity_
opacity per spw
virtual casacore::String longTypeName()
casacore::Vector< casacore::Float > pa_
virtual casacore::Int nPar()
J has four trivial casacore::Complex parameters.
virtual casacore::Bool smoothable()
This type is smoothable.
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are trivial.
virtual casacore::Int nPar()
P has one trivial casacore::Complex parameter.
virtual void reReference()
J-specific reReference TBD: non-triv impl.
AtmosCorruptor * tcorruptor_p
object that can simulate the corruption terms - internal to T; public access is only to the CalCorrup...
void apply(const Jones &j1, VisVector &v, const Jones &j2)
Apply a pair of Jones to a VisVector:
virtual casacore::String typeName()
Return type name as string.
virtual ~BJones()
virtual void initTrivDJ()
Initialize trivial dJs.
virtual casacore::Bool trivialDJ()
Are diff&#39;d Js trivial?
virtual void createCorruptor(const VisIter &vi, const casacore::Record &simpar, const casacore::Int nSim)
make a corruptor in a VC-specific way
virtual casacore::Int nPar()
G has two trivial casacore::Complex parameters.
virtual void fillChanGapArray(casacore::Array< casacore::Complex > &sol, casacore::Array< casacore::Bool > &solOK)
M: baseline-based (closure)
virtual casacore::String typeName()
Return type name as string.
virtual void fillChanGaps()
Fill in bracketted channel gaps in solutions.
TfJones (freq-dep T)
virtual void guessPar(VisBuffer &vb)
Hazard a guess at parameters.
virtual Type type()
Return the type enum.
virtual Type type()
Return the type enum.
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are NOT trivial.
virtual Type type()
Return the type enum.
virtual casacore::String typeName()
Return type name as string.
virtual void setApply()
Set the application parameters.
casacore::Int & nAnt()
Definition: VisCal.h:237
virtual void setApply(const casacore::Record &apply)
AtmosCorruptor * atmcorruptor_p
MfMueller (freq-dep MMueller)
virtual casacore::Bool useGenericGatherForSolve()
M gathers/solves for itself under self-determined conditions Initialization: VI1: False ; VI2: True...
virtual casacore::String typeName()
Return type name as string.
virtual casacore::Bool freqDepPar()
This is the freq-dep version of T (this is the ONLY fundamental difference from T) ...
casacore::Vector< casacore::Double > za_
zenith angle per antenna
virtual void createCorruptor(const VisIter &vi, const casacore::Record &simpar, const casacore::Int nSim)
virtual casacore::Vector< casacore::Float > & pa()
virtual casacore::Int nPar()
T has one trivial complex parameter.
virtual casacore::Bool freqDepPar()
This is the freq-dep version of G (this is the ONLY fundamental difference from G) ...
virtual ~GJones()
Jones::JonesType jonesType()
Type of Jones matrix according to nPar()
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are NOT trivial.
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
virtual casacore::Int nPar()
TOpac has one casacore::Float par per ant.
virtual void syncMeta(const VisBuffer &vb)
Detect basis and feed_pa for this vb.
virtual casacore::String typeName()
Return type name as string.
virtual casacore::Bool freqDepPar()
This is the freq-dep version of TOpac (this is the ONLY fundamental difference from TOpac) ...
virtual Type type()
Return the type enum.
virtual void initTrivDJ()
Initialize trivial dJs.
virtual void normalize()
Normalize a solution (generic implementation)
Jones::JonesType pjonestype_
virtual casacore::Bool useGenericSolveOne()
When generically gathering (VI2 only!), don&#39;t use generic solveOne (use selfSolveOne below...
virtual void newselfSolve(VisSet &vs, VisEquation &ve)
JJones(VisSet &vs)
Constructor.
virtual casacore::String typeName()
Return type name as string.
virtual casacore::String longTypeName()
virtual void globalPostSolveTinker()
Local M version only supports normalization.
virtual casacore::Bool freqDepPar()
This is the freq-dep version of M (this is the ONLY fundamental difference from M) ...
virtual casacore::String typeName()
Return type name as string.
virtual void calcWtScale()
B-specific weight scaling factors.
virtual void selfGatherAndSolve(VisSet &vs, VisEquation &ve)
M solves for itself (by copying averaged data)
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
GJones(VisSet &vs)
Constructor.
virtual casacore::Bool trivialMuellerElem()
Jones matrix elements are trivial.
virtual casacore::Bool accumulatable()
This type is accumulatable.
virtual casacore::String longTypeName()
virtual Type type()
Return the type enum.
virtual casacore::String longTypeName()
virtual casacore::String typeName()
Return type name as string.
virtual ~TJones()
GJonesCorruptor * gcorruptor_p
virtual Jones::JonesType jonesType()
Type of Jones matrix according to nPar()
virtual void initTrivDJ()
Initialize trivial dJs.
virtual Type type()
Return the type enum.
virtual casacore::String longTypeName()
virtual void calcPar()
Calculate parallactic angle.
virtual casacore::String longTypeName()
virtual void guessPar(VisBuffer &vb)
Hazard a guess at parameters.
casacore::Vector< casacore::Double > & za()
Access to z.a.
TJones(VisSet &vs)
Constructor.
VisBuffer2s encapsulate one chunk of visibility data for processing.
Definition: VisBuffer2.h:141
BJones(VisSet &vs)
Constructor.
virtual casacore::String typeName()
Return type name as string.
virtual casacore::Bool smoothable()
This type is smoothable.
const MSMetaInfoForCal & msmc() const
Access to the MSMetaInfoForCal (throws if none)
Definition: VisCal.h:338
VisJones
Definition: VisCal.h:557
virtual Type type()
Return the type enum.
virtual Type type()
Return the type enum.
virtual casacore::String longTypeName()
SolvableVisJones
virtual ~PJones()
casacore::Vector< T > solve(const casacore::Matrix< T > &A, const casacore::Vector< T > &y, double &ferr, double &berr)
Given a matrix &quot;A&quot;, and given some vector &quot;y&quot; which is the right hand side of the equation &quot;Ax=y&quot;...
MMueller(VisSet &vs)
M: baseline-based (closure)
String: the storage and methods of handling collections of characters.
Definition: String.h:223
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are trivial.
virtual casacore::String longTypeName()
VisBuffers encapsulate one chunk of visibility data for processing.
Definition: VisBuffer.h:153
virtual Jones::JonesType jonesType()
Type of Jones matrix according to nPar()
const bool useGenGathSolve_p
virtual casacore::Int nPar()
M currently has just 2 complex parameters, i.e., both parallel hands.
virtual ~TfJones()
VisibilityIterator iterates through one or more writable MeasurementSets.
Jones::JonesType jonesType()
Type of Jones matrix according to nPar()
virtual casacore::Bool phandonly()
Nominally, we will only use parallel hands for now.
virtual void syncMeta2(const vi::VisBuffer2 &vb)
virtual casacore::Bool accumulatable()
This type is accumulatable.
TOPac
virtual Mueller::MuellerType muellerType()
Type of Jones matrix according to nPar()
virtual void setSolve()
Set the solving parameters.
casacore::Int maxchangap_p
widest channel gap to fill by interpolation
virtual VisCalEnum::VCParType parType()
We have casacore::Float parameters.
PJones(VisSet &vs)
Constructor.
virtual casacore::Bool trivialDJ()
dG/dp are trivial
virtual ~JJones()
virtual casacore::String typeName()
Return type name as string.
virtual Type type()
Return the type enum.
BJones (freq-dep GJones)
virtual Jones::JonesType jonesType()
Type of Jones matrix according to nPar()
virtual void guessPar(VisBuffer &vb)
Hazard a guess at parameters.
TfOpac (freq-dep TOpac)