From a64943458017adc00bdba8ca2cdd247b46c34011 Mon Sep 17 00:00:00 2001 From: Jan David Mol <mol@astron.nl> Date: Thu, 22 Mar 2012 13:50:39 +0000 Subject: [PATCH] Task #2880: Provide MSLofar with the anabeam direction type. --- RTCP/Storage/src/MeasurementSetFormat.cc | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/RTCP/Storage/src/MeasurementSetFormat.cc b/RTCP/Storage/src/MeasurementSetFormat.cc index 42c13acc2e7..6a59e56526f 100644 --- a/RTCP/Storage/src/MeasurementSetFormat.cc +++ b/RTCP/Storage/src/MeasurementSetFormat.cc @@ -272,19 +272,29 @@ void MeasurementSetFormat::fillField(unsigned subarray) // Beam direction MVDirection radec(Quantity(itsPS.getBeamDirection(subarray)[0], "rad"), Quantity(itsPS.getBeamDirection(subarray)[1], "rad")); - MDirection::Types beamDirectionType; // By default this is J2000 + MDirection::Types beamDirectionType; MDirection::getType(beamDirectionType, itsPS.getBeamDirectionType(subarray)); MDirection indir(radec, beamDirectionType); casa::Vector<MDirection> outdir(1); outdir(0) = indir; + // AnaBeam direction type + MDirection::Types anaBeamDirectionType; + if (itsPS.haveAnaBeam()) + MDirection::getType(anaBeamDirectionType, itsPS.getAnaBeamDirectionType()); + // Put the direction into the FIELD subtable. MSLofarField msfield = itsMS->field(); MSLofarFieldColumns msfieldCol(msfield); uInt rownr = msfield.nrow(); ASSERT(rownr == 0); // can only set directionType on first row, so only one field per MeasurementSet for now - msfieldCol.setDirectionRef(beamDirectionType); + + if (itsPS.haveAnaBeam()) + msfieldCol.setDirectionRef(beamDirectionType, anaBeamDirectionType); + else + msfieldCol.setDirectionRef(beamDirectionType); + msfield.addRow(); msfieldCol.name().put(rownr, "BEAM_" + String::toString(subarray)); msfieldCol.code().put(rownr, ""); @@ -302,9 +312,6 @@ void MeasurementSetFormat::fillField(unsigned subarray) // Analog beam direction MVDirection radec_AnaBeamDirection(Quantity(itsPS.getAnaBeamDirection()[0], "rad"), Quantity(itsPS.getAnaBeamDirection()[1], "rad")); - MDirection::Types anaBeamDirectionType; // By default this is J2000 - MDirection::getType(anaBeamDirectionType, itsPS.getAnaBeamDirectionType()); - ASSERT(anaBeamDirectionType == beamDirectionType); // we can only have one type in the direction column, since it is stored in the header MDirection anaBeamDirection(radec_AnaBeamDirection, anaBeamDirectionType); msfieldCol.tileBeamDirMeasCol().put(rownr, anaBeamDirection); } else { -- GitLab