diff --git a/RTCP/Storage/src/MeasurementSetFormat.cc b/RTCP/Storage/src/MeasurementSetFormat.cc index 42c13acc2e71937f465ddba69a0dd667b67df1c6..6a59e56526fc0ff01cf596bde9844240fa27541a 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 {