diff --git a/RTCP/Cobalt/CoInterface/src/Parset.cc b/RTCP/Cobalt/CoInterface/src/Parset.cc index e948af7da927ebcfd46f5aefa58bcf3ee39b6494..65a43d29806c484dc8686aeb66856fe24d3ef2d6 100644 --- a/RTCP/Cobalt/CoInterface/src/Parset.cc +++ b/RTCP/Cobalt/CoInterface/src/Parset.cc @@ -1468,39 +1468,41 @@ namespace LOFAR } if (settings.beamFormer.enabled) { - // For Cobalt, we do not collapse channels. There's no need to do so, - // because we can do the final PPF/FFT on the desired number of output - // channels. The BlueGene, on the other hand, uses a fixed PPF/FFT size, - // so that the number of channels has to be reduced in the final step. - // As a result, `rawSamplingTime` is identical to `samplingTime`, - // `nrOfCollapsedChannels` is equal to the number of output channels per - // subband, and `frequencyDownsamplingFactor` is always 1. const ObservationSettings::BeamFormer::StokesSettings& coherentStokes = settings.beamFormer.coherentSettings; const ObservationSettings::BeamFormer::StokesSettings& incoherentStokes = settings.beamFormer.incoherentSettings; + + // The 'rawSamplingTime' is the duration of a sample right after the PPF ps.add("Observation.CoherentStokes.rawSamplingTime", str(format("%.16g") % (sampleDuration() * coherentStokes.nrChannels))); ps.add("Observation.IncoherentStokes.rawSamplingTime", str(format("%.16g") % (sampleDuration() * incoherentStokes.nrChannels))); + + // The 'samplingTime' is the duration of a sample in the output ps.add("Observation.CoherentStokes.samplingTime", str(format("%.16g") % - (sampleDuration() * coherentStokes.nrChannels))); + (sampleDuration() * coherentStokes.nrChannels * coherentStokes.timeIntegrationFactor))); ps.add("Observation.IncoherentStokes.samplingTime", str(format("%.16g") % - (sampleDuration() * incoherentStokes.nrChannels))); + (sampleDuration() * incoherentStokes.nrChannels * incoherentStokes.timeIntegrationFactor))); + ps.add("Observation.CoherentStokes.timeDownsamplingFactor", str(format("%.16g") % coherentStokes.timeIntegrationFactor)); ps.add("Observation.IncoherentStokes.timeDownsamplingFactor", str(format("%.16g") % incoherentStokes.timeIntegrationFactor)); + + // The BG/P could 'collapse channels'. Cobalt does not need that, so we + // put fixed/trivial values here. ps.add("Observation.CoherentStokes.nrOfCollapsedChannels", str(format("%u") % coherentStokes.nrChannels)); ps.add("Observation.IncoherentStokes.nrOfCollapsedChannels", str(format("%u") % incoherentStokes.nrChannels)); ps.add("Observation.CoherentStokes.frequencyDownsamplingFactor", "1"); ps.add("Observation.IncoherentStokes.frequencyDownsamplingFactor", "1"); + ps.add("Observation.CoherentStokes.stokes", stokesType(coherentStokes.type)); ps.add("Observation.IncoherentStokes.stokes",