Source
370
370
VisBufferComponent2::FieldId,
371
371
VisBufferComponent2::DataDescriptionIds,
372
372
VisBufferComponent2::SpectralWindows,
373
373
VisBufferComponent2::Antenna1,
374
374
VisBufferComponent2::Antenna2,
375
375
VisBufferComponent2::Time,
376
376
VisBufferComponent2::TimeCentroid,
377
377
VisBufferComponent2::NCorrelations,
378
378
VisBufferComponent2::NChannels,
379
379
VisBufferComponent2::NRows,
380
+
VisBufferComponent2::CorrType,
380
381
VisBufferComponent2::FlagRow,
381
382
VisBufferComponent2::FlagCube,
382
383
VisBufferComponent2::WeightSpectrum,
383
384
VisBufferComponent2::VisibilityCubeCorrected,
384
385
VisBufferComponent2::VisibilityCubeModel});
385
386
386
387
// Copy required components from the supplied VB2:
387
388
vb_->copyComponents(vb,comps,True,True); // will fetch things, if needed
388
389
389
390
// Set weights for flagged data to zero
420
421
infocusWtSpec_p.resize();
421
422
infocusVisCube_p.resize();
422
423
infocusModelVisCube_p.resize();
423
424
424
425
residuals_p.resize();
425
426
residFlagCube_p.resize();
426
427
diffResiduals_p.resize();
427
428
428
429
}
429
430
431
+
String SolveDataBuffer::polBasis() const
432
+
{
433
+
434
+
if (vb_->correlationTypes()(0)==5)
435
+
return String("CIRC");
436
+
if (vb_->correlationTypes()(0)==9)
437
+
return String("LIN");
438
+
439
+
// Neither CIRC nor LIN, so effectively UNKNOWN
440
+
return String("UNKNOWN");
441
+
442
+
}
443
+
430
444
431
445
SDBList::SDBList() :
432
446
nSDB_(0),
433
447
SDB_(),
434
448
freqs_()
435
449
{}
436
450
437
451
SDBList::~SDBList()
438
452
{
439
453
// Delete the SDBs
614
628
for (Int isdb=0;isdb<nSDB_;++isdb) {
615
629
const Vector<Double> f(SDB_[isdb]->freqs());
616
630
for (uInt ich=0;ich<f.nelements();++ich) {
617
631
fsum+=f(ich);
618
632
++nf;
619
633
}
620
634
}
621
635
return fsum/Double(nf);
622
636
}
623
637
638
+
String SDBList::polBasis() const
639
+
{
640
+
String polBas(SDB_[0]->polBasis());
641
+
642
+
// Trap non-uniformity, for now
643
+
for (Int isdb=1;isdb<nSDB_;++isdb)
644
+
AlwaysAssert((SDB_[isdb]->polBasis()==polBas),AipsError);
645
+
646
+
return polBas;
647
+
}
648
+
624
649
625
650
// How many correlations?
626
651
// Currently, this insists on uniformity over all SDBs
627
652
Int SDBList::nCorrelations() const {
628
653
629
654
Int nCorr=SDB_[0]->nCorrelations();
630
655
631
656
// Trap non-uniformity, for now
632
657
for (Int isdb=1;isdb<nSDB_;++isdb)
633
658
AlwaysAssert((SDB_[isdb]->nCorrelations()==nCorr),AipsError);