LCOV - code coverage report
Current view: top level - msvis/MSVis - SpectralWindow.h (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 0 6 0.0 %
Date: 2024-10-10 15:00:01 Functions: 0 1 0.0 %

          Line data    Source code
       1             : /*
       2             :  * SpectralWindow.h
       3             :  *
       4             :  *  Created on: Feb 15, 2013
       5             :  *      Author: jjacobs
       6             :  */
       7             : 
       8             : #ifndef MSVIS_SPECTRALWINDOW_H_
       9             : #define MSVIS_SPECTRALWINDOW_H_
      10             : 
      11             : #include <casacore/casa/aipstype.h>
      12             : #include <casacore/casa/BasicSL.h>
      13             : #include <vector>
      14             : 
      15             : namespace casacore{
      16             : 
      17             : template<typename T> class ArrayColumn;
      18             : class MeasurementSet;
      19             : }
      20             : 
      21             : namespace casa {
      22             : 
      23             : namespace ms {
      24             : 
      25             :   //#warning "Needs battery of low-level tests; also needs write functionality"
      26             : 
      27             : class SpectralChannel {
      28             : 
      29             : public:
      30             : 
      31           0 :     SpectralChannel (casacore::Double frequency, casacore::Double width,
      32             :                      casacore::Double effectiveBandwidth, casacore::Double resolution)
      33           0 :     : effectiveBandwidth_p (effectiveBandwidth),
      34           0 :       frequency_p (frequency),
      35           0 :       resolution_p (resolution),
      36           0 :       width_p (width)
      37           0 :     {}
      38             : 
      39             :     casacore::Double effectiveBandwidth () const;
      40             :     casacore::Double frequency () const;
      41             :     casacore::Double resolution () const;
      42             :     casacore::Double width () const;
      43             : 
      44             : private:
      45             : 
      46             :     casacore::Double effectiveBandwidth_p;
      47             :     casacore::Double frequency_p;
      48             :     casacore::Double resolution_p;
      49             :     casacore::Double width_p;
      50             : 
      51             : };
      52             : 
      53             : class SpectralWindow {
      54             : 
      55             : public:
      56             : 
      57             :     typedef std::vector<SpectralChannel> Channels;
      58             :     typedef Channels::const_iterator const_iterator;
      59             : 
      60             :     SpectralWindow (const casacore::MSSpWindowColumns & columns, casacore::Int spectralWindowId);
      61             : 
      62             :     const_iterator begin () const;
      63             :     bool empty () const;
      64             :     const_iterator end () const;
      65             :     const SpectralChannel & get (casacore::Int i) const;
      66             : 
      67             :     casacore::Int id () const;
      68             :     casacore::Bool isFlagged () const;
      69             :     casacore::Int frequencyGroup () const;
      70             :     casacore::String frequencyGroupName () const;
      71             :     casacore::Int frequencyMeasureReference () const;
      72             :     casacore::Int ifConversionChain () const;
      73             :     casacore::String name () const;
      74             :     int nChannels () const;
      75             :     int netSideband () const;
      76             :     casacore::Double totalBandwidth () const;
      77             :     casacore::Double referenceFrequency () const;
      78             : 
      79             : protected:
      80             : 
      81             :     void fillArrays(const casacore::MSSpWindowColumns & columns);
      82             :     casacore::Vector<casacore::Double> getArray (const casacore::ArrayColumn<casacore::Double> & arrayColumn);
      83             :     void fillScalars (const casacore::MSSpWindowColumns & columns);
      84             :     template<typename T>
      85             :     T getScalar (const casacore::ScalarColumn<T> & column);
      86             : 
      87             : private:
      88             : 
      89             :     Channels channels_p;
      90             :     casacore::Bool flagged_p;
      91             :     casacore::Int frequencyGroup_p;
      92             :     casacore::String frequencyGroupName_p;
      93             :     casacore::Int frequencyMeasureReference_p;
      94             :     casacore::Int id_p;
      95             :     casacore::Int ifConversionChain_p;
      96             :     casacore::String name_p;
      97             :     int nChannels_p;
      98             :     int netSideband_p;
      99             :     casacore::Double totalBandwidth_p;
     100             :     casacore::Double referenceFrequency_p;
     101             : };
     102             : 
     103             : class SpectralWindows {
     104             : 
     105             : public:
     106             : 
     107             :     typedef std::vector<SpectralWindow> Windows;
     108             :     typedef Windows::const_iterator const_iterator;
     109             : 
     110             :     SpectralWindows (const casacore::MeasurementSet * ms);
     111             : 
     112             :     const_iterator begin () const;
     113             :     bool empty () const;
     114             :     const_iterator end () const;
     115             :     const SpectralWindow & get (casacore::Int id) const;
     116             :     size_t size () const;
     117             : 
     118             : protected:
     119             : 
     120             : private:
     121             : 
     122             :     Windows windows_p;
     123             : };
     124             : 
     125             : } // end namespace vi
     126             : 
     127             : } // end namespace casa
     128             : 
     129             : #endif /* SPECTRALWINDOW_H_ */

Generated by: LCOV version 1.16