Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • L2SS-1914-fix_job_dispatch
  • TMSS-3170
  • TMSS-3167
  • TMSS-3161
  • TMSS-3158-Front-End-Only-Allow-Changing-Again
  • TMSS-3133
  • TMSS-3319-Fix-Templates
  • test-fix-deploy
  • TMSS-3134
  • TMSS-2872
  • defer-state
  • add-custom-monitoring-points
  • TMSS-3101-Front-End-Only
  • TMSS-984-choices
  • SDC-1400-Front-End-Only
  • TMSS-3079-PII
  • TMSS-2936
  • check-for-max-244-subbands
  • TMSS-2927---Front-End-Only-PXII
  • Before-Remove-TMSS
  • LOFAR-Release-4_4_318 protected
  • LOFAR-Release-4_4_317 protected
  • LOFAR-Release-4_4_316 protected
  • LOFAR-Release-4_4_315 protected
  • LOFAR-Release-4_4_314 protected
  • LOFAR-Release-4_4_313 protected
  • LOFAR-Release-4_4_312 protected
  • LOFAR-Release-4_4_311 protected
  • LOFAR-Release-4_4_310 protected
  • LOFAR-Release-4_4_309 protected
  • LOFAR-Release-4_4_308 protected
  • LOFAR-Release-4_4_307 protected
  • LOFAR-Release-4_4_306 protected
  • LOFAR-Release-4_4_304 protected
  • LOFAR-Release-4_4_303 protected
  • LOFAR-Release-4_4_302 protected
  • LOFAR-Release-4_4_301 protected
  • LOFAR-Release-4_4_300 protected
  • LOFAR-Release-4_4_299 protected
40 results

DataFactory.cc

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    DataFactory.cc 2.35 KiB
    //# DataFactory.cc
    //# Copyright (C) 2011-2013  ASTRON (Netherlands Institute for Radio Astronomy)
    //# P.O. Box 2, 7990 AA Dwingeloo, The Netherlands
    //#
    //# This file is part of the LOFAR software suite.
    //# The LOFAR software suite is free software: you can redistribute it and/or
    //# modify it under the terms of the GNU General Public License as published
    //# by the Free Software Foundation, either version 3 of the License, or
    //# (at your option) any later version.
    //#
    //# The LOFAR software suite is distributed in the hope that it will be useful,
    //# but WITHOUT ANY WARRANTY; without even the implied warranty of
    //# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    //# GNU General Public License for more details.
    //#
    //# You should have received a copy of the GNU General Public License along
    //# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>.
    //#
    //# $Id$
    
    //# Always #include <lofar_config.h> first!
    #include <lofar_config.h>
    
    #include <CoInterface/DataFactory.h>
    
    #include <CoInterface/OutputTypes.h>
    #include <CoInterface/CorrelatedData.h>
    #include <CoInterface/BeamFormedData.h>
    #include <CoInterface/TriggerData.h>
    
    
    namespace LOFAR
    {
      namespace Cobalt
      {
    
    
        StreamableData *newStreamableData(const Parset &parset, OutputType outputType, unsigned streamNr, Allocator &allocator)
        {
          switch (outputType) {
          case CORRELATED_DATA: return new CorrelatedData(parset.nrMergedStations(), parset.nrChannelsPerSubband(), parset.integrationSteps(), allocator, 512); // 512 alignment is needed for writing to MS
    
          case BEAM_FORMED_DATA: {
            const struct ObservationSettings::BeamFormer::File &file = parset.settings.beamFormer.files[streamNr];
            const struct ObservationSettings::BeamFormer::StokesSettings &sset =
              file.coherent ? parset.settings.beamFormer.coherentSettings
                            : parset.settings.beamFormer.incoherentSettings;
    
            unsigned nrSubbands = parset.settings.nrSubbands(file.sapNr);
            unsigned nrChannels = sset.nrChannels;
            unsigned nrSamples = parset.settings.nrSamplesPerSubband() / sset.nrChannels / sset.timeIntegrationFactor;
    
            return new FinalBeamFormedData(nrSamples, nrSubbands, nrChannels, allocator);
          }
    
          default: THROW(CoInterfaceException, "unsupported output type");
          }
    
        }
    
    
      } // namespace Cobalt
    } // namespace LOFAR