COB-85: Various updates for LMM
The current code in cob-master
incorrectly assumes that beamFormer pipelines should be specified on a per-SAP basis. The actual number of SAPs in LMM will be only 2, with 244 beamlets/subbands each. This has a major impact on the way that LMM should be specified in the Parset as we can no longer reuse the per SAP TAB specification for multiple beamFormers since every beamFormer has it own set of TABs.
Instead of Observation.Beam[*].BeamFormer
we now added Cobalt.BeamFormer.Pipeline[*]
, with the specific configuration per beamFormer pipeline. To maintain backwards compatibility (e.g. with respect to the files to be created), the existing Cobalt.BeamFormer
structure is maintained. The subband selection and TAB/TAB ring specification is now part of Observation.BeamFormer.Pipeline[*].SAP[*]
and uses the same key names as in the existing Observation.Beam[*]
.
Thus in order to use LMM, one still specifies the beams (SAPs) using the Observation.nrBeams
and Observation.Beam
keys and moves the beamFormer specific keys (e.g. the subbandList
and nrTiedArrayBeams
to Cobalt.BeamFormer.Pipeline[*].Beam
, and the list of stations to Cobalt.BeamFormer.Pipeline[*].stationList
.
An initial test is added to tParset
, but this does not test all new functionality yet. While all existing tests (with only a single beamFormer) pass, more extensive testing for LMM is obviously needed.
Finally, this merge request includes some changes to the KernelParameters
structure to make it more explicit where parameters originate from. Some earlier changes for the 'previous' LMM implementation have been (partially) reverted, such as the tabDelays
.