LCOV - code coverage report
Current view: top level - msvis/MSVis - Vbi2MsRow.cc (source / functions) Hit Total Coverage
Test: casa_coverage.info Lines: 259 315 82.2 %
Date: 2023-10-25 08:47:59 Functions: 77 95 81.1 %

          Line data    Source code
       1             : /*
       2             :  * Vbi2MsRow.cc
       3             :  *
       4             :  *  Created on: Aug 22, 2013
       5             :  *      Author: jjacobs
       6             :  */
       7             : 
       8             : #include <casacore/casa/Exceptions.h>
       9             : #include <casacore/measures/Measures/MDirection.h>
      10             : #include <msvis/MSVis/Vbi2MsRow.h>
      11             : #include <msvis/MSVis/VisibilityIterator2.h>
      12             : #include <msvis/MSVis/VisModelDataI.h>
      13             : #include <msvis/MSVis/VisBufferImpl2.h>
      14             : #include <msvis/MSVis/VisBufferImpl2Internal.h>
      15             : 
      16             : #define AssertWritable() ThrowIf (! isWritable (), "Cannot write to this MsRow object")
      17             : 
      18             : using casa::vi::VisBufferImpl2;
      19             : 
      20             : using namespace casacore;
      21             : namespace casa {
      22             : 
      23             : namespace ms {
      24             : 
      25             : 
      26      591882 : Vbi2MsRow::Vbi2MsRow (rownr_t row, const VisBufferImpl2 * vb)
      27             : : MsRow (row, vb),
      28             :   correctedCache_p (& VisBufferImpl2::visCubeCorrected),
      29             :   flagCache_p (& VisBufferImpl2::flagCube),
      30             :   modelCache_p(& VisBufferImpl2::visCubeModel),
      31             :   observedCache_p(&VisBufferImpl2::visCube),
      32             :   sigmaCache_p (&VisBufferImpl2::sigma),
      33             :   sigmaSpectrumCache_p(& VisBufferImpl2::sigmaSpectrum),
      34             :   weightCache_p (&VisBufferImpl2::weight),
      35             :   weightSpectrumCache_p(& VisBufferImpl2::weightSpectrum),
      36      591882 :   vbi2_p (const_cast<VisBufferImpl2 *> (vb))
      37             : {
      38      591882 :     configureArrayCaches ();
      39      591882 : }
      40             : 
      41             : 
      42      606909 : Vbi2MsRow::Vbi2MsRow (rownr_t row, VisBufferImpl2 * vb)
      43             : : MsRow (row, vb),
      44             :   correctedCache_p (& VisBufferImpl2::visCubeCorrected),
      45             :   flagCache_p (& VisBufferImpl2::flagCube),
      46             :   modelCache_p(& VisBufferImpl2::visCubeModel),
      47             :   observedCache_p(&VisBufferImpl2::visCube),
      48             :   sigmaCache_p (&VisBufferImpl2::sigma),
      49             :   sigmaSpectrumCache_p(& VisBufferImpl2::sigmaSpectrum),
      50             :   weightCache_p (&VisBufferImpl2::weight),
      51             :   weightSpectrumCache_p(& VisBufferImpl2::weightSpectrum),
      52      606909 :   vbi2_p (vb)
      53             : {
      54      606909 :     configureArrayCaches ();
      55      606909 : }
      56             : 
      57             : void
      58     1198791 : Vbi2MsRow::configureArrayCaches ()
      59             : {
      60     1198791 :     arrayCaches_p.push_back (& correctedCache_p);
      61     1198791 :     arrayCaches_p.push_back (& flagCache_p);
      62     1198791 :     arrayCaches_p.push_back (& modelCache_p);
      63     1198791 :     arrayCaches_p.push_back (& observedCache_p);
      64     1198791 :     arrayCaches_p.push_back (& sigmaCache_p);
      65     1198791 :     arrayCaches_p.push_back (& sigmaSpectrumCache_p);
      66     1198791 :     arrayCaches_p.push_back (& weightCache_p);
      67     1198791 :     arrayCaches_p.push_back (& weightSpectrumCache_p);
      68     1198791 : }
      69             : 
      70             : void
      71    22696733 : Vbi2MsRow::clearArrayCaches ()
      72             : {
      73   215551985 :     for (std::vector<CachedArrayBase *>::iterator i = arrayCaches_p.begin();
      74   215551985 :          i != arrayCaches_p.end();
      75   192855252 :          i ++){
      76   192855252 :         (* i)->clearCache();
      77             :     }
      78    22696733 : }
      79             : 
      80             : void
      81    22696733 : Vbi2MsRow::changeRow (rownr_t row)
      82             : {
      83    22696733 :     MsRow::changeRow (row);
      84    22696733 :     clearArrayCaches ();
      85    22696733 : }
      86             : 
      87             : ////////////////////////////////////////////////////////////
      88             : //
      89             : // Scalar getters
      90             : //
      91             : 
      92             : Int
      93    11904484 : Vbi2MsRow::antenna1 () const
      94             : {
      95    11904484 :     return vbi2_p->antenna1 () (row ());
      96             : }
      97             : 
      98             : Int
      99    11904484 : Vbi2MsRow::antenna2 () const
     100             : {
     101    11904484 :     return vbi2_p->antenna2 () (row ());
     102             : }
     103             : 
     104             : Int
     105      978278 : Vbi2MsRow::arrayId () const
     106             : {
     107      978278 :     return vbi2_p->arrayId () (row ());
     108             : }
     109             : 
     110             : Int
     111           0 : Vbi2MsRow::correlationType () const
     112             : {
     113           0 :     return vbi2_p->correlationTypes () (row ());
     114             : }
     115             : 
     116             : 
     117             : template <typename T, typename U>
     118             : void
     119     2934834 : Vbi2MsRow::copyIf (Bool copyThis, Vbi2MsRow * other,
     120             :                    void (Vbi2MsRow::* setter) (T),
     121             :                    U (Vbi2MsRow::* getter) () const)
     122             : {
     123     2934834 :     if (copyThis){
     124     1714665 :         (this ->* setter) ((other ->* getter) ());
     125             :     }
     126     2934834 : }
     127             : 
     128             : void
     129      489139 : Vbi2MsRow::copy (Vbi2MsRow * other,
     130             :                  const VisBufferComponents2 & componentsToCopy)
     131             : {
     132             :     // Copy the data contents of the other row into this one
     133             : 
     134      489139 :     setAntenna1 (other->antenna1 ());
     135      489139 :     setAntenna2 (other->antenna2 ());
     136      489139 :     setArrayId (other->arrayId ());
     137      489139 :     setDataDescriptionId (other->dataDescriptionId ());
     138      489139 :     setExposure (other->exposure ());
     139      489139 :     setFeed1 (other->feed1 ());
     140      489139 :     setFeed2 (other->feed2 ());
     141      489139 :     setFieldId (other->fieldId ());
     142      489139 :     setFlags (other->flags ());
     143      489139 :     setInterval (other->interval ());
     144      489139 :     setObservationId (other->observationId ());
     145      489139 :     setProcessorId (other->processorId ());
     146      489139 :     setRowFlag (other->isRowFlagged());
     147      489139 :     setRowId (other->rowId());
     148      489139 :     setScanNumber (other->scanNumber ());
     149      489139 :     setSigma (other->sigma ());
     150      489139 :     setSpectralWindow (other->spectralWindow());
     151      489139 :     setStateId (other->stateId ());
     152      489139 :     setTime (other->time ());
     153      489139 :     setTimeCentroid (other->timeCentroid ());
     154      489139 :     setUvw (other->uvw ());
     155      489139 :     setWeight (other->weight ());
     156             : 
     157             :     // Optionally copied fields
     158             : 
     159      489139 :     copyIf (componentsToCopy.contains (VisBufferComponent2::VisibilityCubeCorrected), other,
     160             :             & Vbi2MsRow::setCorrected, & Vbi2MsRow::corrected );
     161      489139 :     copyIf (componentsToCopy.contains (VisBufferComponent2::VisibilityCubeModel), other,
     162             :             & Vbi2MsRow::setModel, & Vbi2MsRow::model );
     163      489139 :     copyIf (componentsToCopy.contains (VisBufferComponent2::VisibilityCubeObserved), other,
     164             :             & Vbi2MsRow::setObserved, & Vbi2MsRow::observed );
     165      489139 :     copyIf (componentsToCopy.contains (VisBufferComponent2::VisibilityCubeFloat), other,
     166             :             & Vbi2MsRow::setSingleDishData, & Vbi2MsRow::singleDishData );
     167      489139 :     copyIf (componentsToCopy.contains (VisBufferComponent2::WeightSpectrum), other,
     168             :             & Vbi2MsRow::setWeightSpectrum, & Vbi2MsRow::weightSpectrum );
     169      489139 :     copyIf (componentsToCopy.contains (VisBufferComponent2::SigmaSpectrum), other,
     170             :             & Vbi2MsRow::setSigmaSpectrum, & Vbi2MsRow::sigmaSpectrum );
     171      489139 : }
     172             : 
     173             : 
     174             : Int
     175      978278 : Vbi2MsRow::dataDescriptionId () const
     176             : {
     177      978278 :     return vbi2_p->dataDescriptionIds () (row ());
     178             : }
     179             : 
     180             : Int
     181      978278 : Vbi2MsRow::feed1 () const
     182             : {
     183      978278 :     return vbi2_p->feed1 () (row ());
     184             : }
     185             : 
     186             : Int
     187      978278 : Vbi2MsRow::feed2 () const
     188             : {
     189      978278 :     return vbi2_p->feed2 () (row ());
     190             : }
     191             : 
     192             : Int
     193      978278 : Vbi2MsRow::fieldId () const
     194             : {
     195      978278 :     return vbi2_p->fieldId () (row ());
     196             : }
     197             : 
     198             : VisBufferImpl2 *
     199    11444150 : Vbi2MsRow::getVbi () const
     200             : {
     201    11444150 :     return vbi2_p;
     202             : }
     203             : 
     204             : 
     205             : Bool
     206    11415345 : Vbi2MsRow::isRowFlagged () const
     207             : {
     208    11415345 :     return vbi2_p->flagRow () (row ());
     209             : }
     210             : 
     211             : const Matrix<Bool> &
     212    23347909 : Vbi2MsRow::flags () const
     213             : {
     214    23347909 :     return flagCache_p.getCachedPlane (vbi2_p, row());
     215             : }
     216             : 
     217             : Matrix<Bool> &
     218    21852412 : Vbi2MsRow::flagsMutable ()
     219             : {
     220    21852412 :     return flagCache_p.getCachedPlane (vbi2_p, row());
     221             : }
     222             : 
     223             : Bool
     224           0 : Vbi2MsRow::isFlagged (Int correlation, Int channel) const
     225             : {
     226           0 :     return vbi2_p->flagCube () (correlation,channel, row ());
     227             : }
     228             : 
     229             : 
     230             : Int
     231      978278 : Vbi2MsRow::observationId () const
     232             : {
     233      978278 :     return vbi2_p->observationId () (row ());
     234             : }
     235             : 
     236             : Int
     237      978278 : Vbi2MsRow::processorId () const
     238             : {
     239      978278 :     return vbi2_p->processorId () (row ());
     240             : }
     241             : 
     242             : Int
     243      978278 : Vbi2MsRow::scanNumber () const
     244             : {
     245      978278 :     return vbi2_p->scan () (row ());
     246             : }
     247             : 
     248             : Int
     249      978278 : Vbi2MsRow::stateId () const
     250             : {
     251      978278 :     return vbi2_p->stateId () (row ());
     252             : }
     253             : 
     254             : Double
     255    22341551 : Vbi2MsRow::exposure () const
     256             : {
     257    22341551 :     return vbi2_p->exposure () (row ());
     258             : }
     259             : 
     260             : Double
     261    12344114 : Vbi2MsRow::interval () const
     262             : {
     263    12344114 :     return vbi2_p->timeInterval () (row ());
     264             : }
     265             : 
     266             : Int
     267      489139 : Vbi2MsRow::rowId () const
     268             : {
     269      489139 :     return vbi2_p->rowIds() (row());
     270             : }
     271             : 
     272             : Float
     273     2979222 : Vbi2MsRow::sigma (Int correlation) const
     274             : {
     275     2979222 :     return vbi2_p->sigma () (correlation, row ());
     276             : }
     277             : 
     278             : Int
     279    11904484 : Vbi2MsRow::spectralWindow () const
     280             : {
     281    11904484 :     return vbi2_p->spectralWindows() (row());
     282             : }
     283             : 
     284             : 
     285             : Double
     286    23042259 : Vbi2MsRow::time () const
     287             : {
     288    23042259 :     return vbi2_p->time () (row ());
     289             : }
     290             : Double
     291    22830690 : Vbi2MsRow::timeCentroid () const
     292             : {
     293    22830690 :     return vbi2_p->timeCentroid () (row ());
     294             : }
     295             : 
     296             : Float
     297    38292074 : Vbi2MsRow::weight (Int correlation) const
     298             : {
     299    38292074 :     return vbi2_p->weight () (correlation, row ());
     300             : }
     301             : 
     302             : 
     303             : ////////////////////////////////////////////////////////////
     304             : //
     305             : // Scalar setters
     306             : //
     307             : 
     308             : void
     309      978278 : Vbi2MsRow::setAntenna1 (Int value)
     310             : {
     311      978278 :     AssertWritable();
     312             : 
     313      978278 :     vbi2_p->cache_p->antenna1_p.getRef (false) (row ()) = value;
     314      978278 : }
     315             : 
     316             : void
     317      978278 : Vbi2MsRow::setAntenna2 (Int value)
     318             : {
     319      978278 :     AssertWritable();
     320             : 
     321      978278 :     vbi2_p->cache_p->antenna2_p.getRef (false)(row ()) = value;
     322      978278 : }
     323             : 
     324             : void
     325      978278 : Vbi2MsRow::setArrayId (Int value)
     326             : {
     327      978278 :     AssertWritable();
     328             : 
     329      978278 :     vbi2_p->cache_p->arrayId_p.getRef (false)(row ()) = value;
     330      978278 : }
     331             : 
     332             : void
     333           0 : Vbi2MsRow::setCorrelationType (Int value)
     334             : {
     335           0 :     AssertWritable();
     336             : 
     337           0 :     vbi2_p->cache_p->corrType_p.getRef (false)(row ()) = value;
     338           0 : }
     339             : 
     340             : 
     341             : 
     342             : void
     343      978278 : Vbi2MsRow::setDataDescriptionId (Int value)
     344             : {
     345      978278 :     AssertWritable();
     346             : 
     347      978278 :     vbi2_p->cache_p->dataDescriptionIds_p.getRef (false)(row ()) = value;
     348      978278 : }
     349             : 
     350             : void
     351      978278 : Vbi2MsRow::setFeed1 (Int value)
     352             : {
     353      978278 :     AssertWritable();
     354             : 
     355      978278 :     vbi2_p->cache_p->feed1_p.getRef (false)(row ()) = value;
     356      978278 : }
     357             : 
     358             : void
     359      978278 : Vbi2MsRow::setFeed2 (Int value)
     360             : {
     361      978278 :     AssertWritable();
     362             : 
     363      978278 :     vbi2_p->cache_p->feed2_p.getRef (false)(row ()) = value;
     364      978278 : }
     365             : 
     366             : void
     367      978278 : Vbi2MsRow::setFieldId (Int value)
     368             : {
     369      978278 :     AssertWritable();
     370             : 
     371      978278 :     vbi2_p->cache_p->fieldId_p.getRef (false)(row ()) = value;
     372      978278 : }
     373             : 
     374             : void
     375      978278 : Vbi2MsRow::setRowId (Int value)
     376             : {
     377      978278 :     AssertWritable();
     378             : 
     379      978278 :     vbi2_p->cache_p->rowIds_p.getRef (false) (row ()) = value;
     380      978278 : }
     381             : 
     382             : void
     383    12393623 : Vbi2MsRow::setRowFlag (Bool isFlagged)
     384             : {
     385    12393623 :     AssertWritable ();
     386             : 
     387    12393623 :     vbi2_p->cache_p->flagRow_p.getRef (false)(row ()) = isFlagged;
     388    12393623 : }
     389             : 
     390             : void
     391           0 : Vbi2MsRow::setFlags (Bool isFlagged, Int correlation, Int channel)
     392             : {
     393           0 :     AssertWritable ();
     394             : 
     395           0 :     vbi2_p->cache_p->flagCube_p.getRef (false)(correlation,channel, row ()) = isFlagged;
     396           0 : }
     397             : 
     398             : void
     399      978278 : Vbi2MsRow::setFlags (const Matrix<Bool> & value)
     400             : {
     401      978278 :     AssertWritable ();
     402             : 
     403      978278 :     Matrix<Bool> & flags = flagCache_p.getCachedPlane (vbi2_p, row());
     404      978278 :     flags = value;
     405      978278 : }
     406             : 
     407             : void
     408      978278 : Vbi2MsRow::setObservationId (Int value)
     409             : {
     410      978278 :     AssertWritable();
     411             : 
     412      978278 :     vbi2_p->cache_p->observationId_p.getRef (false)(row ()) = value;
     413      978278 : }
     414             : 
     415             : void
     416      978278 : Vbi2MsRow::setProcessorId (Int value)
     417             : {
     418      978278 :     AssertWritable();
     419             : 
     420      978278 :     vbi2_p->cache_p->processorId_p.getRef (false)(row ()) = value;
     421      978278 : }
     422             : 
     423             : void
     424      978278 : Vbi2MsRow::setScanNumber (Int value)
     425             : {
     426      978278 :     AssertWritable();
     427             : 
     428      978278 :     vbi2_p->cache_p->scan_p.getRef (false)(row ()) = value;
     429      978278 : }
     430             : 
     431             : void
     432      978278 : Vbi2MsRow::setSpectralWindow (Int value)
     433             : {
     434      978278 :     vbi2_p->cache_p->spectralWindows_p.getRef (false)(row ()) = value;
     435      978278 : }
     436             : 
     437             : void
     438      978278 : Vbi2MsRow::setStateId (Int value)
     439             : {
     440      978278 :     AssertWritable();
     441             : 
     442      978278 :     vbi2_p->cache_p->stateId_p.getRef (false)(row ()) = value;
     443      978278 : }
     444             : 
     445             : void
     446    11415345 : Vbi2MsRow::setExposure (Double value)
     447             : {
     448    11415345 :     AssertWritable();
     449             : 
     450    11415345 :     vbi2_p->cache_p->exposure_p.getRef (false)(row ()) = value;
     451    11415345 : }
     452             : 
     453             : void
     454     1417908 : Vbi2MsRow::setInterval (Double value)
     455             : {
     456     1417908 :     AssertWritable();
     457             : 
     458     1417908 :     vbi2_p->cache_p->timeInterval_p.getRef (false)(row ()) = value;
     459     1417908 : }
     460             : 
     461             : void
     462           0 : Vbi2MsRow::setSigma (Int correlation, Float value)
     463             : {
     464           0 :     AssertWritable();
     465             : 
     466           0 :     vbi2_p->cache_p->sigma_p.getRef (false)(correlation, row ()) = value;
     467           0 : }
     468             : 
     469             : void
     470      978278 : Vbi2MsRow::setTime (Double value)
     471             : {
     472      978278 :     AssertWritable();
     473             : 
     474      978278 :     vbi2_p->cache_p->time_p.getRef (false)(row ()) = value;
     475      978278 : }
     476             : 
     477             : void
     478    12393623 : Vbi2MsRow::setTimeCentroid (Double value)
     479             : {
     480    12393623 :     AssertWritable();
     481             : 
     482    12393623 :     vbi2_p->cache_p->timeCentroid_p.getRef (false)(row ()) = value;
     483    12393623 : }
     484             : 
     485             : void
     486           0 : Vbi2MsRow::setWeight (Int correlation, Float value)
     487             : {
     488           0 :     AssertWritable();
     489             : 
     490           0 :     vbi2_p->cache_p->weight_p.getRef (false)(correlation, row ()) = value;
     491           0 : }
     492             : 
     493             : ////////////////////////////////////////////////////////////
     494             : //
     495             : // Nonscalar getters
     496             : //
     497             : 
     498             : const Complex &
     499           0 : Vbi2MsRow::corrected (Int correlation, Int channel) const
     500             : {
     501           0 :     return vbi2_p->visCubeCorrected () (correlation, channel, row ());
     502             : }
     503             : 
     504             : 
     505             : Float
     506           0 : Vbi2MsRow::weightSpectrum (Int correlation, Int channel) const
     507             : {
     508           0 :     return vbi2_p->weightSpectrum () (correlation, channel, row ());
     509             : }
     510             : 
     511             : 
     512             : Float
     513           0 : Vbi2MsRow::sigmaSpectrum (Int correlation, Int channel) const
     514             : {
     515           0 :     return vbi2_p->sigmaSpectrum () (correlation, channel, row ());
     516             : }
     517             : 
     518             : 
     519             : const Complex &
     520           0 : Vbi2MsRow::model (Int correlation, Int channel) const
     521             : {
     522           0 :     return vbi2_p->visCubeModel () (correlation, channel, row ());
     523             : }
     524             : 
     525             : 
     526             : const Complex &
     527           0 : Vbi2MsRow::observed (Int correlation, Int channel) const
     528             : {
     529           0 :     return vbi2_p->visCube () (correlation, channel, row ());
     530             : }
     531             : 
     532           0 : const Float & Vbi2MsRow::singleDishData (Int correlation, Int channel) const
     533             : {
     534           0 :     return vbi2_p->visCubeFloat () (correlation, channel, row ());
     535             : }
     536             : 
     537             : const Vector<Double>
     538    23336821 : Vbi2MsRow::uvw () const
     539             : {
     540    23336821 :     return vbi2_p->uvw ().column (row());
     541             : }
     542             : 
     543             : void
     544    11904484 : Vbi2MsRow::setUvw (const Vector<Double> & value)
     545             : {
     546    11904484 :     vbi2_p->cache_p->uvw_p.getRef(false).column (row()) = value;
     547    11904484 : }
     548             : 
     549             : const Matrix<Complex> &
     550     9925226 : Vbi2MsRow::corrected () const
     551             : {
     552     9925226 :     return correctedCache_p.getCachedPlane (vbi2_p, row());
     553             : }
     554             : 
     555             : Matrix<Complex> &
     556     9925226 : Vbi2MsRow::correctedMutable ()
     557             : {
     558     9925226 :     return correctedCache_p.getCachedPlane (vbi2_p, row());
     559             : }
     560             : 
     561             : void
     562      249967 : Vbi2MsRow::setCorrected (const Matrix<Complex> & value)
     563             : {
     564      249967 :     AssertWritable();
     565             : 
     566      249967 :     Matrix<Complex> & corrected = correctedCache_p.getCachedPlane (vbi2_p, row());
     567      249967 :     corrected = value;
     568      249967 : }
     569             : 
     570             : const Matrix<Complex> &
     571     9903795 : Vbi2MsRow::model () const
     572             : {
     573     9903795 :     return modelCache_p.getCachedPlane (vbi2_p, row());
     574             : }
     575             : 
     576             : Matrix<Complex> &
     577     9903795 : Vbi2MsRow::modelMutable ()
     578             : {
     579     9903795 :     return modelCache_p.getCachedPlane (vbi2_p, row());
     580             : }
     581             : 
     582             : void
     583      247973 : Vbi2MsRow::setModel (const Matrix<Complex> & value)
     584             : {
     585      247973 :     AssertWritable();
     586             : 
     587      247973 :     Matrix<Complex> & model = modelCache_p.getCachedPlane (vbi2_p, row());
     588      247973 :     model = value;
     589      247973 : }
     590             : 
     591             : const Matrix<Complex> &
     592     1364231 : Vbi2MsRow::observed () const
     593             : {
     594     1364231 :     return observedCache_p.getCachedPlane (vbi2_p, row());
     595             : }
     596             : 
     597             : Matrix<Complex> &
     598     1364231 : Vbi2MsRow::observedMutable ()
     599             : {
     600     1364231 :     return observedCache_p.getCachedPlane (vbi2_p, row());
     601             : }
     602             : 
     603             : void
     604      237766 : Vbi2MsRow::setObserved (const Matrix<Complex> & value)
     605             : {
     606      237766 :     AssertWritable();
     607             : 
     608      237766 :     Matrix<Complex> & observed = observedCache_p.getCachedPlane (vbi2_p, row());
     609      237766 :     observed = value;
     610      237766 : }
     611             : 
     612             : const Vector<Float> &
     613    11876404 : Vbi2MsRow::sigma () const
     614             : {
     615    11876404 :     return sigmaCache_p.getCachedColumn (vbi2_p, row());
     616             : }
     617             : 
     618             : Vector<Float> &
     619    10926206 : Vbi2MsRow::sigmaMutable () const
     620             : {
     621    10926206 :     return sigmaCache_p.getCachedColumn (vbi2_p, row());
     622             : }
     623             : 
     624             : void
     625      517219 : Vbi2MsRow::setSigma (const Vector<Float> & value)
     626             : {
     627      517219 :     AssertWritable();
     628             : 
     629      517219 :     Vector<Float> & sigma = sigmaCache_p.getCachedColumn (vbi2_p, row());
     630      517219 :     sigma = value;
     631      517219 : }
     632             : 
     633       93972 : const Matrix<Float> Vbi2MsRow::singleDishData () const
     634             : {
     635       93972 :     return vbi2_p->visCubeFloat ().xyPlane (row());
     636             : }
     637             : 
     638             : Matrix<Float>
     639       93972 : Vbi2MsRow::singleDishDataMutable ()
     640             : {
     641       93972 :     return vbi2_p->visCubeFloat ().xyPlane (row());
     642             : }
     643             : 
     644             : void
     645         681 : Vbi2MsRow::setSingleDishData (const Matrix<Float> & value)
     646             : {
     647         681 :     vbi2_p->cache_p->floatDataCube_p.getRef(false).xyPlane (row()) = value;
     648         681 : }
     649             : 
     650             : 
     651             : 
     652             : const Vector<Float> &
     653    11876404 : Vbi2MsRow::weight () const
     654             : {
     655    11876404 :     return weightCache_p.getCachedColumn (vbi2_p, row());
     656             : }
     657             : 
     658             : Vector<Float> &
     659    10926206 : Vbi2MsRow::weightMutable () const
     660             : {
     661    10926206 :     return weightCache_p.getCachedColumn (vbi2_p, row());
     662             : }
     663             : 
     664             : void
     665     1467417 : Vbi2MsRow::setWeight (const Vector<Float> & value)
     666             : {
     667     1467417 :     AssertWritable();
     668             : 
     669     1467417 :     Vector<Float> & weight = weightCache_p.getCachedColumn (vbi2_p, row());
     670     1467417 :     weight = value;
     671     1467417 : }
     672             : 
     673             : void
     674      978278 : Vbi2MsRow::setWeightSpectrum (const Matrix<Float> & value)
     675             : {
     676      978278 :     AssertWritable();
     677             : 
     678      978278 :     Matrix<Float> & weightSpectrum = weightSpectrumCache_p.getCachedPlane (vbi2_p, row());
     679      978278 :     weightSpectrum = value;
     680      978278 : }
     681             : 
     682             : const Matrix<Float> &
     683    11794098 : Vbi2MsRow::weightSpectrum () const
     684             : {
     685    11794098 :     return weightSpectrumCache_p.getCachedPlane (vbi2_p, row());
     686             : }
     687             : 
     688             : Matrix<Float> &
     689    10926206 : Vbi2MsRow::weightSpectrumMutable () const
     690             : {
     691    10926206 :     return weightSpectrumCache_p.getCachedPlane (vbi2_p, row());
     692             : }
     693             : 
     694             : const Matrix<Float> &
     695     2254194 : Vbi2MsRow::sigmaSpectrum () const
     696             : {
     697     2254194 :     return sigmaSpectrumCache_p.getCachedPlane (vbi2_p, row());
     698             : }
     699             : 
     700             : Matrix<Float> &
     701    10926206 : Vbi2MsRow::sigmaSpectrumMutable () const
     702             : {
     703    10926206 :     return sigmaSpectrumCache_p.getCachedPlane (vbi2_p, row());
     704             : }
     705             : 
     706             : void
     707      978278 : Vbi2MsRow::setSigmaSpectrum (const Matrix<Float> & value)
     708             : {
     709      978278 :     AssertWritable();
     710             : 
     711      978278 :     Matrix<Float> & sigmaSpectrum = sigmaSpectrumCache_p.getCachedPlane (vbi2_p, row());
     712      978278 :     sigmaSpectrum = value;
     713      978278 : }
     714             : 
     715             : ////////////////////////////////////////////////////////////
     716             : //
     717             : // Nonscalar setters
     718             : //
     719             : 
     720             : void
     721           0 : Vbi2MsRow::setCorrected (Int correlation, Int channel, const Complex & value)
     722             : {
     723           0 :     AssertWritable();
     724             : 
     725           0 :     vbi2_p->cache_p->correctedVisCube_p.getRef (false)(correlation, channel, row ()) = value;
     726           0 : }
     727             : 
     728             : void
     729           0 : Vbi2MsRow::setWeightSpectrum (Int correlation, Int channel, Float value)
     730             : {
     731           0 :     AssertWritable();
     732             : 
     733           0 :     vbi2_p->cache_p->weightSpectrum_p.getRef (false)(correlation, channel, row ()) = value;
     734           0 : }
     735             : 
     736             : 
     737             : void
     738           0 : Vbi2MsRow::setSigmaSpectrum (Int correlation, Int channel, Float value)
     739             : {
     740           0 :     AssertWritable();
     741             : 
     742           0 :     vbi2_p->cache_p->sigmaSpectrum_p.getRef (false)(correlation, channel, row ()) = value;
     743           0 : }
     744             : 
     745             : 
     746             : void
     747           0 : Vbi2MsRow::setModel (Int correlation, Int channel, const Complex & value)
     748             : {
     749           0 :     AssertWritable();
     750             : 
     751           0 :     vbi2_p->cache_p->modelVisCube_p.getRef (false)(correlation, channel, row ()) = value;
     752           0 : }
     753             : 
     754             : void
     755           0 : Vbi2MsRow::setObserved (Int correlation, Int channel, const Complex & value)
     756             : {
     757           0 :     AssertWritable();
     758             : 
     759           0 :     vbi2_p->cache_p->visCube_p.getRef (false)(correlation, channel, row ()) = value;
     760           0 : }
     761             : 
     762             : void
     763           0 : Vbi2MsRow::setSingleDishData (Int correlation, Int channel, const Float & value)
     764             : {
     765           0 :     AssertWritable();
     766             : 
     767           0 :     vbi2_p->cache_p->floatDataCube_p.getRef (false)(correlation, channel, row ()) = value;
     768           0 : }
     769             : 
     770             : 
     771             : 
     772             : }
     773             : }
     774             : 
     775             : 

Generated by: LCOV version 1.16