casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
XJones.h
Go to the documentation of this file.
1 //# XJones.h: Cross-hand phase calibration
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_XJONES_H
29 #define SYNTHESIS_XJONES_H
30 
31 #include <casa/aips.h>
32 #include <casa/Containers/Record.h>
33 #include <casa/BasicSL/Complex.h>
39 
40 namespace casa { //# NAMESPACE CASA - BEGIN
41 
42 // Forward declarations
43 class VisEquation;
44 
45 // **********************************************************
46 // X: position angle calibration (for circulars!)
47 // (rendered as a Mueller for now)
48 
49 class XMueller : public SolvableVisMueller {
50 public:
51 
52  // Constructor
53  XMueller(VisSet& vs);
56  XMueller(const casacore::Int& nAnt);
57 
58  virtual ~XMueller();
59 
60  // Return the type enum
61  virtual Type type() { return VisCal::X; };
62 
63  // Return type name as string
64  virtual casacore::String typeName() { return "X Mueller"; };
65  virtual casacore::String longTypeName() { return "X Mueller (baseline-based)"; };
66 
67  // Type of Jones matrix according to nPar()
69 
70  // Local setApply
72  virtual void setApply(const casacore::Record& apply);
73 
74  // Local setSolve
76  void setSolve(const casacore::Record& solvepar);
77 
78  // Turn off normalization by model....
79  virtual casacore::Bool normalizable() { return false; };
80 
81  // X gathers/solves for itself
82  virtual casacore::Bool useGenericGatherForSolve() { return false; };
83 
84  // X gathers/solves for itself
85  virtual void selfGatherAndSolve(VisSet& vs, VisEquation& ve) { newselfSolve(vs,ve); };
86  virtual void newselfSolve(VisSet& vs, VisEquation& ve); // new supports combine
87 
88 
89 protected:
90 
91  // X has just 1 complex parameter, storing a phase
92  virtual casacore::Int nPar() { return 1; };
93 
94  // Jones matrix elements are trivial
95  virtual casacore::Bool trivialMuellerElem() { return false; };
96 
97  // Calculate the X matrix for all ants
98  virtual void calcAllMueller();
99 
100  // Solve in one VB for the position angle
101  virtual void solveOneVB(const VisBuffer& vb);
102 
103 private:
104 
105  // <nothing>
106 
107 };
108 
109 
110 
111 // **********************************************************
112 // X: Cross-hand phase (generic)
113 //
114 class XJones : public SolvableVisJones {
115 public:
116 
117  // Constructor
118  XJones(VisSet& vs);
119  XJones(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
120  XJones(const MSMetaInfoForCal& msmc);
121  XJones(const casacore::Int& nAnt);
122 
123 
124  virtual ~XJones();
125 
126  // Return the type enum
127  virtual Type type() { return VisCal::X; };
128 
129  // Return type name as string
130  virtual casacore::String typeName() { return "X Jones"; };
131  virtual casacore::String longTypeName() { return "X Jones (antenna-based)"; };
132 
133  // Type of Jones matrix according to nPar()
135 
136  // Local setApply
138  virtual void setApply(const casacore::Record& apply);
139 
140  // Local setSolve
142  void setSolve(const casacore::Record& solvepar);
143 
144  // X is normalizable by the model
145  virtual casacore::Bool normalizable() { return true; };
146 
147  // X generically gathers, but solves for itself per solution
148  virtual casacore::Bool useGenericGatherForSolve() { return true; };
149  virtual casacore::Bool useGenericSolveOne() { return false; }
150 
151  // X gathers/solves for itself
152  virtual void selfGatherAndSolve(VisSet& vs, VisEquation& ve) { newselfSolve(vs,ve); };
153  virtual void newselfSolve(VisSet& vs, VisEquation& ve); // new supports combine
154 
155  // When genericall gathering, solve using first VB only in VBGA
156  virtual void selfSolveOne(VisBuffGroupAcc& vbga) { this->solveOneVB(vbga(0)); };
157  virtual void selfSolveOne(SDBList& sdbs) { this->solveOne(sdbs); };
158 
159 
160 protected:
161 
162  // X has just 1 complex parameter, storing a phase
163  virtual casacore::Int nPar() { return 1; };
164 
165  // Jones matrix elements are trivial
166  virtual casacore::Bool trivialJonesElem() { return false; };
167 
168  // Calculate the X matrix for all ants
169  virtual void calcAllJones();
170 
171  // Solve in one VB for the position angle
172  virtual void solveOneVB(const VisBuffer& vb);
173  virtual void solveOneSDB(SolveDataBuffer& sdb);
174 
175  virtual void solveOne(SDBList& sdbs);
176 
177 private:
178 
179  // <nothing>
180 
181 };
182 
183 
184 // **********************************************************
185 // Xf: position angle calibration (for circulars!)
186 // (channel-dependent)
187 class XfJones : public XJones {
188 public:
189 
190  // Constructor
191  XfJones(VisSet& vs);
192  XfJones(casacore::String msname,casacore::Int MSnAnt,casacore::Int MSnSpw);
193  XfJones(const MSMetaInfoForCal& msmc);
194  XfJones(const casacore::Int& nAnt);
195 
196  virtual ~XfJones();
197 
198  // Return the type enum
199  virtual Type type() { return VisCal::X; };
200 
201  // Return type name as string
202  virtual casacore::String typeName() { return "Xf Jones"; };
203  virtual casacore::String longTypeName() { return "Xf Jones (antenna-based)"; };
204 
205  // This is the freq-dep version of X
206  // (this is the ONLY fundamental difference from X)
207  virtual casacore::Bool freqDepPar() { return true; };
208 
209 protected:
210 
211  // Use nchan>=1 shaping
212  // (TBD: this should be generalized!)
213  void initSolvePar();
214 
215 
216 };
217 
218 
219 // Cross-hand phase solved from data with parang coverage
220 class XparangJones : public XJones {
221 public:
222 
223  // Constructor
224  XparangJones(VisSet& vs);
228 
229  virtual ~XparangJones();
230 
231  // Return the type enum (position UPSTREAM of D, not downstream like G)
232  virtual Type type() { return VisCal::X; };
233 
234  // Return type name as string
235  virtual casacore::String typeName() { return "Xparang Jones"; };
236  virtual casacore::String longTypeName() { return "Xparang Jones (parang-dep X)"; };
237 
238  // Local setapply (unsets calWt)
240  virtual void setApply(const casacore::Record& apply);
241 
242  // NOT FreqDep
243  virtual casacore::Bool freqDepPar() { return false; };
244 
245  // Requires cross-hands!
246  virtual casacore::Bool phandonly() { return false; };
247 
248  // XparangJones specialization
249  virtual casacore::Bool useGenericGatherForSolve() { return true; };
250  virtual casacore::Bool useGenericSolveOne() { return false; }
251 
252  virtual void selfGatherAndSolve(VisSet& vs, VisEquation& ve);
253 
254  // Handle trivial vbga generated by generic gather-for-solve
255  virtual void selfSolveOne(VisBuffGroupAcc& vbga);
256  virtual void selfSolveOne(SDBList& sdbs);
257 
258  // Write QU info into table keywords
259  virtual void globalPostSolveTinker();
260 
261  // Override for returning Q,U info via Record
263 
264  // Overide model division stuff...
265  virtual casacore::Bool normalizable() { return false; };
266  virtual casacore::Bool divideByStokesIModelForSolve() { return true; };
267 
268 protected:
269 
270  // X has just 1 complex parameter, storing a phase
271  virtual casacore::Int nPar() { return 1; };
272 
273  // Solver for one VB, that collapses baselines and cross-hands first,
274  // then solves for XY-phase and QU
275  virtual void solveOneVB(const VisBuffer& vb);
276  virtual void solveOne(SDBList& sdbs);
277 
278  // Derived QU_ info
280 
281  // Activity record
283 
284 };
285 
286 
287 
288 // Freq-dep cross-hand phase
289 class XfparangJones : public XparangJones {
290 public:
291 
292  // Constructor
293  XfparangJones(VisSet& vs);
297 
298 
299  virtual ~XfparangJones();
300  // Return type name as string
301  // Return type name as string
302  virtual casacore::String typeName() { return "Xfparang Jones"; };
303  virtual casacore::String longTypeName() { return "Xfparang Jones (X-Y phase)"; };
304 
305  // This is the freq-dep version of XparangJones
306  // (this is the ONLY fundamental difference from XparangJones)
307  virtual casacore::Bool freqDepPar() { return true; };
308 
309 
310 };
311 
312 
313 // **********************************************************
314 // PosAng: Basis-agnostic position angle
315 //
316 class PosAngJones : public XJones {
317 public:
318 
319  // Constructor
320  PosAngJones(VisSet& vs);
324 
325  virtual ~PosAngJones();
326 
327  // PosAng had casacore::Float parameter
329 
330  // Return the type enum (this is its position in the ME)
331  virtual Type type() { return VisCal::C; };
332 
333  // Return type name as string
334  virtual casacore::String typeName() { return "PosAng Jones"; };
335  virtual casacore::String longTypeName() { return "PosAng Jones (antenna-based)"; };
336 
337  // Type of Jones matrix (basis-sensitive)
338  virtual Jones::JonesType jonesType() { return jonestype_; };
339 
340  // FreqDep
341  virtual casacore::Bool freqDepPar() { return true; };
342 
343  // Local setApply
344  using XJones::setApply;
345  virtual void setApply(const casacore::Record& apply);
346 
347  // Local setSolve
348  using XJones::setSolve;
349  void setSolve(const casacore::Record& solvepar);
350 
351  // PosAng is NOT normalizable by the model (per correlation)
352  virtual casacore::Bool normalizable() { return false; };
353  // ...but we can divide by the I model!
354  virtual casacore::Bool divideByStokesIModelForSolve() { return true; };
355 
356  // X generically gathers, but solves for itself per solution
357  virtual casacore::Bool useGenericGatherForSolve() { return true; };
358  virtual casacore::Bool useGenericSolveOne() { return false; }
359 
360  // Actually do the solve on ths SDBs
361  virtual void selfSolveOne(SDBList& sdbs) { this->solveOne(sdbs); };
362 
363 
364 protected:
365 
366  // PosAng has just 1 float parameter, storing an angle
367  virtual casacore::Int nPar() { return 1; };
368 
369  // Jones matrix elements are NOT trivial
370  virtual casacore::Bool trivialJonesElem() { return false; };
371 
372  // Detect basis for this vb
373  virtual void syncMeta(const VisBuffer& vb);
374  virtual void syncMeta2(const vi::VisBuffer2& vb);
375 
376  // Calculate the PosAng matrix for all ants
377  // Don't use XJones::calcAllJones!!
378  virtual void calcAllJones(); // { VisJones::calcAllJones(); };
379 
380  // Calculate a single PosAngJones matrix
383 
384  virtual void solveOne(SDBList& sdbs);
385 
386 private:
387 
388  // X gathers/solves for itself
389  virtual void selfGatherAndSolve(VisSet& vs, VisEquation& ve) { newselfSolve(vs,ve); };
390  virtual void newselfSolve(VisSet& , VisEquation& ) { throw(casacore::AipsError("PosAngJones::newselfsolve(vs,ve) NYI")); }; // new supports combine
391 
392  // When genericall gathering, solve using first VB only in VBGA
393  virtual void selfSolveOne(VisBuffGroupAcc& vbga) { this->solveOneVB(vbga(0)); };
394 
395  // Solve in one VB for the position angle
396  virtual void solveOneVB(const VisBuffer& ) { throw(casacore::AipsError("PosAngJones::solveOneVB(vb) NYI")); };
397  virtual void solveOneSDB(SolveDataBuffer& ) { throw(casacore::AipsError("PosAngJones::solveOneSDB(sdb) NYI")); };
398 
399  // We sense basis in setMeta, and this sets the matrix type
401 
402 };
403 
404 
405 
406 
407 
408 
409 
410 
411 
412 // X-Y phase for ALMA -- ORIGINAL ad hoc version as GJones specialization, but in Xf position
413 class GlinXphJones : public GJones {
414 public:
415 
416  // Constructor
417  GlinXphJones(VisSet& vs);
421 
422  virtual ~GlinXphJones();
423 
424  // Return the type enum (position UPSTREAM of D, not downstream like G)
425  virtual Type type() { return VisCal::X; };
426 
427  // Return type name as string
428  virtual casacore::String typeName() { return "GlinXph Jones"; };
429  virtual casacore::String longTypeName() { return "GlinXph Jones (X-Y phase)"; };
430 
431  // Local setapply (unsets calWt)
433  virtual void setApply(const casacore::Record& apply);
434 
435  // NOT FreqDep
436  virtual casacore::Bool freqDepPar() { return false; };
437 
438  // Though derived from GJones, this type actually uses the cross-hands
439  virtual casacore::Bool phandonly() { return false; };
440 
441  // GlinXphJones specialization
442  virtual casacore::Bool useGenericGatherForSolve() { return true; };
443  virtual casacore::Bool useGenericSolveOne() { return false; }
444 
445  virtual void selfGatherAndSolve(VisSet& vs, VisEquation& ve);
446 
447  // Handle trivial vbga generated by generic gather-for-solve
448  virtual void selfSolveOne(VisBuffGroupAcc& vbga);
449  virtual void selfSolveOne(SDBList& sdbs);
450 
451 protected:
452 
453 
454  // Solver for one VB, that collapses baselines and cross-hands first,
455  // then solves for XY-phase and QU
456  virtual void solveOneVB(const VisBuffer& vb);
457  virtual void solveOne(SDBList& sdbs);
458 
459  // Write QU info into table keywords
460  virtual void globalPostSolveTinker();
461 
462  // Derived QU_ info
464 
465 
466 };
467 
468 
469 // Freq-dep XY-phase
470 class GlinXphfJones : public GlinXphJones {
471 public:
472 
473  // Constructor
474  GlinXphfJones(VisSet& vs);
478 
479 
480  virtual ~GlinXphfJones();
481  // Return type name as string
482  // Return type name as string
483  virtual casacore::String typeName() { return "GlinXphf Jones"; };
484  virtual casacore::String longTypeName() { return "GlinXphf Jones (X-Y phase)"; };
485 
486  // This is the freq-dep version of GlinXphJones
487  // (this is the ONLY fundamental difference from GlinXphJones)
488  virtual casacore::Bool freqDepPar() { return true; };
489 
490 
491 };
492 
493 
494 
495 
496 } //# NAMESPACE CASA - END
497 
498 #endif
499 
virtual casacore::Int nPar()
X has just 1 complex parameter, storing a phase.
Definition: XJones.h:92
virtual void solveOneVB(const VisBuffer &vb)
Solver for one VB, that collapses baselines and cross-hands first, then solves for XY-phase and QU...
virtual void solveOne(SDBList &sdbs)
virtual void selfGatherAndSolve(VisSet &vs, VisEquation &ve)
X gathers/solves for itself.
Definition: XJones.h:152
int Int
Definition: aipstype.h:50
virtual void syncMeta2(const vi::VisBuffer2 &vb)
Freq-dep XY-phase.
Definition: XJones.h:470
virtual ~XfJones()
virtual Type type()
Return the type enum (this is its position in the ME)
Definition: XJones.h:331
virtual casacore::String longTypeName()
Definition: XJones.h:429
virtual casacore::Bool freqDepPar()
This is the freq-dep version of GlinXphJones (this is the ONLY fundamental difference from GlinXphJon...
Definition: XJones.h:488
virtual void globalPostSolveTinker()
Write QU info into table keywords.
SolvableVisMueller
virtual casacore::String typeName()
Return type name as string.
Definition: XJones.h:202
virtual casacore::Bool useGenericSolveOne()
Use generic solution engine for a single solve (usually inside the generic gathering mechanism) ...
Definition: XJones.h:250
virtual void solveOneVB(const VisBuffer &)
Solve in one VB for the position angle.
Definition: XJones.h:396
X-Y phase for ALMA – ORIGINAL ad hoc version as GJones specialization, but in Xf position.
Definition: XJones.h:413
virtual casacore::Bool divideByStokesIModelForSolve()
Should data and model be divided by Stokes I model before average+solve? (Nominally false...
Definition: XJones.h:266
virtual casacore::Int nPar()
PosAng has just 1 float parameter, storing an angle.
Definition: XJones.h:367
virtual void solveOneSDB(SolveDataBuffer &sdb)
virtual Jones::JonesType jonesType()
Type of Jones matrix according to nPar()
Definition: XJones.h:134
casacore::Record QURec_
Activity record.
Definition: XJones.h:282
virtual casacore::String longTypeName()
Definition: XJones.h:203
void initSolvePar()
Use nchan&gt;=1 shaping (TBD: this should be generalized!)
void apply(const Jones &j1, VisVector &v, const Jones &j2)
Apply a pair of Jones to a VisVector:
virtual casacore::Bool trivialMuellerElem()
Jones matrix elements are trivial.
Definition: XJones.h:95
Freq-dep cross-hand phase.
Definition: XJones.h:289
virtual casacore::Bool useGenericGatherForSolve()
XparangJones specialization.
Definition: XJones.h:249
virtual casacore::Int nPar()
X has just 1 complex parameter, storing a phase.
Definition: XJones.h:271
virtual casacore::Bool normalizable()
Overide model division stuff...
Definition: XJones.h:265
virtual void solveOneVB(const VisBuffer &vb)
Solver for one VB, that collapses baselines and cross-hands first, then solves for XY-phase and QU...
GlinXphfJones(VisSet &vs)
Constructor.
virtual casacore::Bool divideByStokesIModelForSolve()
...but we can divide by the I model!
Definition: XJones.h:354
XfJones(VisSet &vs)
Constructor.
virtual casacore::Bool normalizable()
Turn off normalization by model....
Definition: XJones.h:79
virtual casacore::Bool useGenericGatherForSolve()
X generically gathers, but solves for itself per solution.
Definition: XJones.h:148
virtual Type type()
Return the type enum.
Definition: XJones.h:61
virtual void selfSolveOne(VisBuffGroupAcc &vbga)
When genericall gathering, solve using first VB only in VBGA.
Definition: XJones.h:393
virtual casacore::Bool useGenericSolveOne()
Use generic solution engine for a single solve (usually inside the generic gathering mechanism) ...
Definition: XJones.h:149
X: position angle calibration (for circulars!) (rendered as a Mueller for now)
Definition: XJones.h:49
virtual void setApply()
Set the application parameters.
casacore::Int & nAnt()
Definition: VisCal.h:237
virtual void newselfSolve(VisSet &vs, VisEquation &ve)
virtual void solveOneSDB(SolveDataBuffer &)
Definition: XJones.h:397
virtual casacore::String longTypeName()
Definition: XJones.h:131
virtual void selfSolveOne(SDBList &sdbs)
Actually do the solve on ths SDBs.
Definition: XJones.h:361
virtual void syncMeta(const VisBuffer &vb)
Detect basis for this vb.
virtual casacore::String typeName()
Return type name as string.
Definition: XJones.h:235
Xf: position angle calibration (for circulars!) (channel-dependent)
Definition: XJones.h:187
virtual casacore::Bool useGenericGatherForSolve()
GlinXphJones specialization.
Definition: XJones.h:442
virtual casacore::String typeName()
Return type name as string.
Definition: XJones.h:428
SolveDataBuffer is a container for VisBuffer2 data and related residual and differentiation results r...
virtual casacore::String longTypeName()
Definition: XJones.h:236
Jones::JonesType jonestype_
We sense basis in setMeta, and this sets the matrix type.
Definition: XJones.h:397
virtual casacore::Bool useGenericSolveOne()
Use generic solution engine for a single solve (usually inside the generic gathering mechanism) ...
Definition: XJones.h:358
virtual casacore::String longTypeName()
Definition: XJones.h:303
virtual void newselfSolve(VisSet &vs, VisEquation &ve)
virtual casacore::String typeName()
Return type name as string.
Definition: XJones.h:64
virtual void calcAllJones()
Calculate the X matrix for all ants.
casacore::Matrix< casacore::Float > QU_
Derived QU_ info.
Definition: XJones.h:279
PosAngJones(VisSet &vs)
Constructor.
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::String typeName()
Return type name as string Return type name as string.
Definition: XJones.h:483
virtual ~GlinXphfJones()
virtual void solveOneVB(const VisBuffer &vb)
Solve in one VB for the position angle.
PosAng: Basis-agnostic position angle
Definition: XJones.h:316
virtual void calcAllMueller()
Calculate the X matrix for all ants.
virtual casacore::Bool freqDepPar()
NOT FreqDep.
Definition: XJones.h:436
virtual void solveOne(SDBList &sdbs)
virtual ~XparangJones()
virtual casacore::Int nPar()
X has just 1 complex parameter, storing a phase.
Definition: XJones.h:163
virtual ~XMueller()
XfparangJones(VisSet &vs)
Constructor.
virtual casacore::Bool useGenericSolveOne()
Use generic solution engine for a single solve (usually inside the generic gathering mechanism) ...
Definition: XJones.h:443
virtual void calcOneJonesRPar(casacore::Vector< casacore::Complex > &mat, casacore::Vector< casacore::Bool > &mOk, const casacore::Vector< casacore::Float > &par, const casacore::Vector< casacore::Bool > &pOk)
Calculate a single PosAngJones matrix.
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
virtual casacore::Bool normalizable()
X is normalizable by the model.
Definition: XJones.h:145
virtual casacore::Bool freqDepPar()
This is the freq-dep version of X (this is the ONLY fundamental difference from X) ...
Definition: XJones.h:207
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are NOT trivial.
Definition: XJones.h:370
virtual Type type()
Return the type enum.
Definition: XJones.h:127
virtual ~XJones()
virtual casacore::String longTypeName()
Definition: XJones.h:335
virtual void newselfSolve(VisSet &, VisEquation &)
Definition: XJones.h:390
A class to group separately averaged VisBuffers.
virtual casacore::String typeName()
Return type name as string Return type name as string.
Definition: XJones.h:302
virtual casacore::Bool normalizable()
PosAng is NOT normalizable by the model (per correlation)
Definition: XJones.h:352
virtual void selfSolveOne(SDBList &sdbs)
Definition: XJones.h:157
X: Cross-hand phase (generic)
Definition: XJones.h:114
virtual casacore::String typeName()
Return type name as string.
Definition: XJones.h:130
virtual void selfGatherAndSolve(VisSet &vs, VisEquation &ve)
X gathers/solves for itself.
Definition: XJones.h:389
virtual Type type()
Return the type enum.
Definition: XJones.h:199
virtual casacore::Bool useGenericGatherForSolve()
X gathers/solves for itself.
Definition: XJones.h:82
virtual ~PosAngJones()
virtual void selfGatherAndSolve(VisSet &vs, VisEquation &ve)
X gathers/solves for itself.
Definition: XJones.h:85
virtual Jones::JonesType jonesType()
Type of Jones matrix (basis-sensitive)
Definition: XJones.h:338
virtual casacore::String typeName()
Return type name as string.
Definition: XJones.h:334
virtual void selfGatherAndSolve(VisSet &vs, VisEquation &ve)
X gathers/solves for itself.
virtual void solveOneVB(const VisBuffer &vb)
Solve in one VB for the position angle.
virtual void selfGatherAndSolve(VisSet &vs, VisEquation &ve)
Self- gather and/or solve prototypes (triggered by useGenericGatherForSolve=F or useGenericSolveOne=F...
XparangJones(VisSet &vs)
Constructor.
XMueller(VisSet &vs)
Constructor.
VisBuffer2s encapsulate one chunk of visibility data for processing.
Definition: VisBuffer2.h:141
Base class for all Casacore library errors.
Definition: Error.h:134
const MSMetaInfoForCal & msmc() const
Access to the MSMetaInfoForCal (throws if none)
Definition: VisCal.h:338
XJones(VisSet &vs)
Constructor.
casacore::Matrix< casacore::Float > QU_
Derived QU_ info.
Definition: XJones.h:463
SolvableVisJones
virtual void solveOne(SDBList &sdbs)
virtual casacore::Record solveActionRec()
Override for returning Q,U info via Record.
virtual void globalPostSolveTinker()
Write QU info into table keywords.
String: the storage and methods of handling collections of characters.
Definition: String.h:223
virtual casacore::Bool freqDepPar()
This is the freq-dep version of XparangJones (this is the ONLY fundamental difference from XparangJon...
Definition: XJones.h:307
virtual casacore::Bool phandonly()
Though derived from GJones, this type actually uses the cross-hands.
Definition: XJones.h:439
virtual Mueller::MuellerType muellerType()
Type of Jones matrix according to nPar()
Definition: XJones.h:68
virtual casacore::String longTypeName()
Definition: XJones.h:484
virtual ~GlinXphJones()
VisBuffers encapsulate one chunk of visibility data for processing.
Definition: VisBuffer.h:153
virtual void calcAllJones()
Calculate the PosAng matrix for all ants Don&#39;t use XJones::calcAllJones!!
virtual casacore::Bool useGenericGatherForSolve()
X generically gathers, but solves for itself per solution.
Definition: XJones.h:357
virtual void solveOne(SDBList &sdbs)
virtual Type type()
Return the type enum (position UPSTREAM of D, not downstream like G)
Definition: XJones.h:425
virtual void selfSolveOne(VisBuffGroupAcc &vbga)
Handle trivial vbga generated by generic gather-for-solve.
virtual casacore::Bool phandonly()
Requires cross-hands!
Definition: XJones.h:246
virtual casacore::Bool trivialJonesElem()
Jones matrix elements are trivial.
Definition: XJones.h:166
Cross-hand phase solved from data with parang coverage.
Definition: XJones.h:220
virtual casacore::Bool freqDepPar()
FreqDep.
Definition: XJones.h:341
virtual void setSolve()
Set the solving parameters.
virtual VisCalEnum::VCParType parType()
PosAng had casacore::Float parameter.
Definition: XJones.h:328
virtual void selfSolveOne(VisBuffGroupAcc &vbga)
When genericall gathering, solve using first VB only in VBGA.
Definition: XJones.h:156
GlinXphJones(VisSet &vs)
Constructor.
virtual casacore::Bool freqDepPar()
NOT FreqDep.
Definition: XJones.h:243
virtual void selfSolveOne(VisBuffGroupAcc &vbga)
Handle trivial vbga generated by generic gather-for-solve.
virtual Type type()
Return the type enum (position UPSTREAM of D, not downstream like G)
Definition: XJones.h:232
virtual ~XfparangJones()
virtual casacore::String longTypeName()
Definition: XJones.h:65