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

          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           0 : Vbi2MsRow::Vbi2MsRow (rownr_t row, const VisBufferImpl2 * vb)
      27             : : MsRow (row, vb),
      28           0 :   correctedCache_p (& VisBufferImpl2::visCubeCorrected),
      29           0 :   flagCache_p (& VisBufferImpl2::flagCube),
      30           0 :   modelCache_p(& VisBufferImpl2::visCubeModel),
      31           0 :   observedCache_p(&VisBufferImpl2::visCube),
      32           0 :   sigmaCache_p (&VisBufferImpl2::sigma),
      33           0 :   sigmaSpectrumCache_p(& VisBufferImpl2::sigmaSpectrum),
      34           0 :   weightCache_p (&VisBufferImpl2::weight),
      35           0 :   weightSpectrumCache_p(& VisBufferImpl2::weightSpectrum),
      36           0 :   vbi2_p (const_cast<VisBufferImpl2 *> (vb))
      37             : {
      38           0 :     configureArrayCaches ();
      39           0 : }
      40             : 
      41             : 
      42           0 : Vbi2MsRow::Vbi2MsRow (rownr_t row, VisBufferImpl2 * vb)
      43             : : MsRow (row, vb),
      44           0 :   correctedCache_p (& VisBufferImpl2::visCubeCorrected),
      45           0 :   flagCache_p (& VisBufferImpl2::flagCube),
      46           0 :   modelCache_p(& VisBufferImpl2::visCubeModel),
      47           0 :   observedCache_p(&VisBufferImpl2::visCube),
      48           0 :   sigmaCache_p (&VisBufferImpl2::sigma),
      49           0 :   sigmaSpectrumCache_p(& VisBufferImpl2::sigmaSpectrum),
      50           0 :   weightCache_p (&VisBufferImpl2::weight),
      51           0 :   weightSpectrumCache_p(& VisBufferImpl2::weightSpectrum),
      52           0 :   vbi2_p (vb)
      53             : {
      54           0 :     configureArrayCaches ();
      55           0 : }
      56             : 
      57             : void
      58           0 : Vbi2MsRow::configureArrayCaches ()
      59             : {
      60           0 :     arrayCaches_p.push_back (& correctedCache_p);
      61           0 :     arrayCaches_p.push_back (& flagCache_p);
      62           0 :     arrayCaches_p.push_back (& modelCache_p);
      63           0 :     arrayCaches_p.push_back (& observedCache_p);
      64           0 :     arrayCaches_p.push_back (& sigmaCache_p);
      65           0 :     arrayCaches_p.push_back (& sigmaSpectrumCache_p);
      66           0 :     arrayCaches_p.push_back (& weightCache_p);
      67           0 :     arrayCaches_p.push_back (& weightSpectrumCache_p);
      68           0 : }
      69             : 
      70             : void
      71           0 : Vbi2MsRow::clearArrayCaches ()
      72             : {
      73           0 :     for (std::vector<CachedArrayBase *>::iterator i = arrayCaches_p.begin();
      74           0 :          i != arrayCaches_p.end();
      75           0 :          i ++){
      76           0 :         (* i)->clearCache();
      77             :     }
      78           0 : }
      79             : 
      80             : void
      81           0 : Vbi2MsRow::changeRow (rownr_t row)
      82             : {
      83           0 :     MsRow::changeRow (row);
      84           0 :     clearArrayCaches ();
      85           0 : }
      86             : 
      87             : ////////////////////////////////////////////////////////////
      88             : //
      89             : // Scalar getters
      90             : //
      91             : 
      92             : Int
      93           0 : Vbi2MsRow::antenna1 () const
      94             : {
      95           0 :     return vbi2_p->antenna1 () (row ());
      96             : }
      97             : 
      98             : Int
      99           0 : Vbi2MsRow::antenna2 () const
     100             : {
     101           0 :     return vbi2_p->antenna2 () (row ());
     102             : }
     103             : 
     104             : Int
     105           0 : Vbi2MsRow::arrayId () const
     106             : {
     107           0 :     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           0 : Vbi2MsRow::copyIf (Bool copyThis, Vbi2MsRow * other,
     120             :                    void (Vbi2MsRow::* setter) (T),
     121             :                    U (Vbi2MsRow::* getter) () const)
     122             : {
     123           0 :     if (copyThis){
     124           0 :         (this ->* setter) ((other ->* getter) ());
     125             :     }
     126           0 : }
     127             : 
     128             : void
     129           0 : Vbi2MsRow::copy (Vbi2MsRow * other,
     130             :                  const VisBufferComponents2 & componentsToCopy)
     131             : {
     132             :     // Copy the data contents of the other row into this one
     133             : 
     134           0 :     setAntenna1 (other->antenna1 ());
     135           0 :     setAntenna2 (other->antenna2 ());
     136           0 :     setArrayId (other->arrayId ());
     137           0 :     setDataDescriptionId (other->dataDescriptionId ());
     138           0 :     setExposure (other->exposure ());
     139           0 :     setFeed1 (other->feed1 ());
     140           0 :     setFeed2 (other->feed2 ());
     141           0 :     setFieldId (other->fieldId ());
     142           0 :     setFlags (other->flags ());
     143           0 :     setInterval (other->interval ());
     144           0 :     setObservationId (other->observationId ());
     145           0 :     setProcessorId (other->processorId ());
     146           0 :     setRowFlag (other->isRowFlagged());
     147           0 :     setRowId (other->rowId());
     148           0 :     setScanNumber (other->scanNumber ());
     149           0 :     setSigma (other->sigma ());
     150           0 :     setSpectralWindow (other->spectralWindow());
     151           0 :     setStateId (other->stateId ());
     152           0 :     setTime (other->time ());
     153           0 :     setTimeCentroid (other->timeCentroid ());
     154           0 :     setUvw (other->uvw ());
     155           0 :     setWeight (other->weight ());
     156             : 
     157             :     // Optionally copied fields
     158             : 
     159           0 :     copyIf (componentsToCopy.contains (VisBufferComponent2::VisibilityCubeCorrected), other,
     160             :             & Vbi2MsRow::setCorrected, & Vbi2MsRow::corrected );
     161           0 :     copyIf (componentsToCopy.contains (VisBufferComponent2::VisibilityCubeModel), other,
     162             :             & Vbi2MsRow::setModel, & Vbi2MsRow::model );
     163           0 :     copyIf (componentsToCopy.contains (VisBufferComponent2::VisibilityCubeObserved), other,
     164             :             & Vbi2MsRow::setObserved, & Vbi2MsRow::observed );
     165           0 :     copyIf (componentsToCopy.contains (VisBufferComponent2::VisibilityCubeFloat), other,
     166             :             & Vbi2MsRow::setSingleDishData, & Vbi2MsRow::singleDishData );
     167           0 :     copyIf (componentsToCopy.contains (VisBufferComponent2::WeightSpectrum), other,
     168             :             & Vbi2MsRow::setWeightSpectrum, & Vbi2MsRow::weightSpectrum );
     169           0 :     copyIf (componentsToCopy.contains (VisBufferComponent2::SigmaSpectrum), other,
     170             :             & Vbi2MsRow::setSigmaSpectrum, & Vbi2MsRow::sigmaSpectrum );
     171           0 : }
     172             : 
     173             : 
     174             : Int
     175           0 : Vbi2MsRow::dataDescriptionId () const
     176             : {
     177           0 :     return vbi2_p->dataDescriptionIds () (row ());
     178             : }
     179             : 
     180             : Int
     181           0 : Vbi2MsRow::feed1 () const
     182             : {
     183           0 :     return vbi2_p->feed1 () (row ());
     184             : }
     185             : 
     186             : Int
     187           0 : Vbi2MsRow::feed2 () const
     188             : {
     189           0 :     return vbi2_p->feed2 () (row ());
     190             : }
     191             : 
     192             : Int
     193           0 : Vbi2MsRow::fieldId () const
     194             : {
     195           0 :     return vbi2_p->fieldId () (row ());
     196             : }
     197             : 
     198             : VisBufferImpl2 *
     199           0 : Vbi2MsRow::getVbi () const
     200             : {
     201           0 :     return vbi2_p;
     202             : }
     203             : 
     204             : 
     205             : Bool
     206           0 : Vbi2MsRow::isRowFlagged () const
     207             : {
     208           0 :     return vbi2_p->flagRow () (row ());
     209             : }
     210             : 
     211             : const Matrix<Bool> &
     212           0 : Vbi2MsRow::flags () const
     213             : {
     214           0 :     return flagCache_p.getCachedPlane (vbi2_p, row());
     215             : }
     216             : 
     217             : Matrix<Bool> &
     218           0 : Vbi2MsRow::flagsMutable ()
     219             : {
     220           0 :     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           0 : Vbi2MsRow::observationId () const
     232             : {
     233           0 :     return vbi2_p->observationId () (row ());
     234             : }
     235             : 
     236             : Int
     237           0 : Vbi2MsRow::processorId () const
     238             : {
     239           0 :     return vbi2_p->processorId () (row ());
     240             : }
     241             : 
     242             : Int
     243           0 : Vbi2MsRow::scanNumber () const
     244             : {
     245           0 :     return vbi2_p->scan () (row ());
     246             : }
     247             : 
     248             : Int
     249           0 : Vbi2MsRow::stateId () const
     250             : {
     251           0 :     return vbi2_p->stateId () (row ());
     252             : }
     253             : 
     254             : Double
     255           0 : Vbi2MsRow::exposure () const
     256             : {
     257           0 :     return vbi2_p->exposure () (row ());
     258             : }
     259             : 
     260             : Double
     261           0 : Vbi2MsRow::interval () const
     262             : {
     263           0 :     return vbi2_p->timeInterval () (row ());
     264             : }
     265             : 
     266             : Int
     267           0 : Vbi2MsRow::rowId () const
     268             : {
     269           0 :     return vbi2_p->rowIds() (row());
     270             : }
     271             : 
     272             : Float
     273           0 : Vbi2MsRow::sigma (Int correlation) const
     274             : {
     275           0 :     return vbi2_p->sigma () (correlation, row ());
     276             : }
     277             : 
     278             : Int
     279           0 : Vbi2MsRow::spectralWindow () const
     280             : {
     281           0 :     return vbi2_p->spectralWindows() (row());
     282             : }
     283             : 
     284             : 
     285             : Double
     286           0 : Vbi2MsRow::time () const
     287             : {
     288           0 :     return vbi2_p->time () (row ());
     289             : }
     290             : Double
     291           0 : Vbi2MsRow::timeCentroid () const
     292             : {
     293           0 :     return vbi2_p->timeCentroid () (row ());
     294             : }
     295             : 
     296             : Float
     297           0 : Vbi2MsRow::weight (Int correlation) const
     298             : {
     299           0 :     return vbi2_p->weight () (correlation, row ());
     300             : }
     301             : 
     302             : 
     303             : ////////////////////////////////////////////////////////////
     304             : //
     305             : // Scalar setters
     306             : //
     307             : 
     308             : void
     309           0 : Vbi2MsRow::setAntenna1 (Int value)
     310             : {
     311           0 :     AssertWritable();
     312             : 
     313           0 :     vbi2_p->cache_p->antenna1_p.getRef (false) (row ()) = value;
     314           0 : }
     315             : 
     316             : void
     317           0 : Vbi2MsRow::setAntenna2 (Int value)
     318             : {
     319           0 :     AssertWritable();
     320             : 
     321           0 :     vbi2_p->cache_p->antenna2_p.getRef (false)(row ()) = value;
     322           0 : }
     323             : 
     324             : void
     325           0 : Vbi2MsRow::setArrayId (Int value)
     326             : {
     327           0 :     AssertWritable();
     328             : 
     329           0 :     vbi2_p->cache_p->arrayId_p.getRef (false)(row ()) = value;
     330           0 : }
     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           0 : Vbi2MsRow::setDataDescriptionId (Int value)
     344             : {
     345           0 :     AssertWritable();
     346             : 
     347           0 :     vbi2_p->cache_p->dataDescriptionIds_p.getRef (false)(row ()) = value;
     348           0 : }
     349             : 
     350             : void
     351           0 : Vbi2MsRow::setFeed1 (Int value)
     352             : {
     353           0 :     AssertWritable();
     354             : 
     355           0 :     vbi2_p->cache_p->feed1_p.getRef (false)(row ()) = value;
     356           0 : }
     357             : 
     358             : void
     359           0 : Vbi2MsRow::setFeed2 (Int value)
     360             : {
     361           0 :     AssertWritable();
     362             : 
     363           0 :     vbi2_p->cache_p->feed2_p.getRef (false)(row ()) = value;
     364           0 : }
     365             : 
     366             : void
     367           0 : Vbi2MsRow::setFieldId (Int value)
     368             : {
     369           0 :     AssertWritable();
     370             : 
     371           0 :     vbi2_p->cache_p->fieldId_p.getRef (false)(row ()) = value;
     372           0 : }
     373             : 
     374             : void
     375           0 : Vbi2MsRow::setRowId (Int value)
     376             : {
     377           0 :     AssertWritable();
     378             : 
     379           0 :     vbi2_p->cache_p->rowIds_p.getRef (false) (row ()) = value;
     380           0 : }
     381             : 
     382             : void
     383           0 : Vbi2MsRow::setRowFlag (Bool isFlagged)
     384             : {
     385           0 :     AssertWritable ();
     386             : 
     387           0 :     vbi2_p->cache_p->flagRow_p.getRef (false)(row ()) = isFlagged;
     388           0 : }
     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           0 : Vbi2MsRow::setFlags (const Matrix<Bool> & value)
     400             : {
     401           0 :     AssertWritable ();
     402             : 
     403           0 :     Matrix<Bool> & flags = flagCache_p.getCachedPlane (vbi2_p, row());
     404           0 :     flags = value;
     405           0 : }
     406             : 
     407             : void
     408           0 : Vbi2MsRow::setObservationId (Int value)
     409             : {
     410           0 :     AssertWritable();
     411             : 
     412           0 :     vbi2_p->cache_p->observationId_p.getRef (false)(row ()) = value;
     413           0 : }
     414             : 
     415             : void
     416           0 : Vbi2MsRow::setProcessorId (Int value)
     417             : {
     418           0 :     AssertWritable();
     419             : 
     420           0 :     vbi2_p->cache_p->processorId_p.getRef (false)(row ()) = value;
     421           0 : }
     422             : 
     423             : void
     424           0 : Vbi2MsRow::setScanNumber (Int value)
     425             : {
     426           0 :     AssertWritable();
     427             : 
     428           0 :     vbi2_p->cache_p->scan_p.getRef (false)(row ()) = value;
     429           0 : }
     430             : 
     431             : void
     432           0 : Vbi2MsRow::setSpectralWindow (Int value)
     433             : {
     434           0 :     vbi2_p->cache_p->spectralWindows_p.getRef (false)(row ()) = value;
     435           0 : }
     436             : 
     437             : void
     438           0 : Vbi2MsRow::setStateId (Int value)
     439             : {
     440           0 :     AssertWritable();
     441             : 
     442           0 :     vbi2_p->cache_p->stateId_p.getRef (false)(row ()) = value;
     443           0 : }
     444             : 
     445             : void
     446           0 : Vbi2MsRow::setExposure (Double value)
     447             : {
     448           0 :     AssertWritable();
     449             : 
     450           0 :     vbi2_p->cache_p->exposure_p.getRef (false)(row ()) = value;
     451           0 : }
     452             : 
     453             : void
     454           0 : Vbi2MsRow::setInterval (Double value)
     455             : {
     456           0 :     AssertWritable();
     457             : 
     458           0 :     vbi2_p->cache_p->timeInterval_p.getRef (false)(row ()) = value;
     459           0 : }
     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           0 : Vbi2MsRow::setTime (Double value)
     471             : {
     472           0 :     AssertWritable();
     473             : 
     474           0 :     vbi2_p->cache_p->time_p.getRef (false)(row ()) = value;
     475           0 : }
     476             : 
     477             : void
     478           0 : Vbi2MsRow::setTimeCentroid (Double value)
     479             : {
     480           0 :     AssertWritable();
     481             : 
     482           0 :     vbi2_p->cache_p->timeCentroid_p.getRef (false)(row ()) = value;
     483           0 : }
     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           0 : Vbi2MsRow::uvw () const
     539             : {
     540           0 :     return vbi2_p->uvw ().column (row());
     541             : }
     542             : 
     543             : void
     544           0 : Vbi2MsRow::setUvw (const Vector<Double> & value)
     545             : {
     546           0 :     vbi2_p->cache_p->uvw_p.getRef(false).column (row()) = value;
     547           0 : }
     548             : 
     549             : const Matrix<Complex> &
     550           0 : Vbi2MsRow::corrected () const
     551             : {
     552           0 :     return correctedCache_p.getCachedPlane (vbi2_p, row());
     553             : }
     554             : 
     555             : Matrix<Complex> &
     556           0 : Vbi2MsRow::correctedMutable ()
     557             : {
     558           0 :     return correctedCache_p.getCachedPlane (vbi2_p, row());
     559             : }
     560             : 
     561             : void
     562           0 : Vbi2MsRow::setCorrected (const Matrix<Complex> & value)
     563             : {
     564           0 :     AssertWritable();
     565             : 
     566           0 :     Matrix<Complex> & corrected = correctedCache_p.getCachedPlane (vbi2_p, row());
     567           0 :     corrected = value;
     568           0 : }
     569             : 
     570             : const Matrix<Complex> &
     571           0 : Vbi2MsRow::model () const
     572             : {
     573           0 :     return modelCache_p.getCachedPlane (vbi2_p, row());
     574             : }
     575             : 
     576             : Matrix<Complex> &
     577           0 : Vbi2MsRow::modelMutable ()
     578             : {
     579           0 :     return modelCache_p.getCachedPlane (vbi2_p, row());
     580             : }
     581             : 
     582             : void
     583           0 : Vbi2MsRow::setModel (const Matrix<Complex> & value)
     584             : {
     585           0 :     AssertWritable();
     586             : 
     587           0 :     Matrix<Complex> & model = modelCache_p.getCachedPlane (vbi2_p, row());
     588           0 :     model = value;
     589           0 : }
     590             : 
     591             : const Matrix<Complex> &
     592           0 : Vbi2MsRow::observed () const
     593             : {
     594           0 :     return observedCache_p.getCachedPlane (vbi2_p, row());
     595             : }
     596             : 
     597             : Matrix<Complex> &
     598           0 : Vbi2MsRow::observedMutable ()
     599             : {
     600           0 :     return observedCache_p.getCachedPlane (vbi2_p, row());
     601             : }
     602             : 
     603             : void
     604           0 : Vbi2MsRow::setObserved (const Matrix<Complex> & value)
     605             : {
     606           0 :     AssertWritable();
     607             : 
     608           0 :     Matrix<Complex> & observed = observedCache_p.getCachedPlane (vbi2_p, row());
     609           0 :     observed = value;
     610           0 : }
     611             : 
     612             : const Vector<Float> &
     613           0 : Vbi2MsRow::sigma () const
     614             : {
     615           0 :     return sigmaCache_p.getCachedColumn (vbi2_p, row());
     616             : }
     617             : 
     618             : Vector<Float> &
     619           0 : Vbi2MsRow::sigmaMutable () const
     620             : {
     621           0 :     return sigmaCache_p.getCachedColumn (vbi2_p, row());
     622             : }
     623             : 
     624             : void
     625           0 : Vbi2MsRow::setSigma (const Vector<Float> & value)
     626             : {
     627           0 :     AssertWritable();
     628             : 
     629           0 :     Vector<Float> & sigma = sigmaCache_p.getCachedColumn (vbi2_p, row());
     630           0 :     sigma = value;
     631           0 : }
     632             : 
     633           0 : const Matrix<Float> Vbi2MsRow::singleDishData () const
     634             : {
     635           0 :     return vbi2_p->visCubeFloat ().xyPlane (row());
     636             : }
     637             : 
     638             : Matrix<Float>
     639           0 : Vbi2MsRow::singleDishDataMutable ()
     640             : {
     641           0 :     return vbi2_p->visCubeFloat ().xyPlane (row());
     642             : }
     643             : 
     644             : void
     645           0 : Vbi2MsRow::setSingleDishData (const Matrix<Float> & value)
     646             : {
     647           0 :     vbi2_p->cache_p->floatDataCube_p.getRef(false).xyPlane (row()) = value;
     648           0 : }
     649             : 
     650             : 
     651             : 
     652             : const Vector<Float> &
     653           0 : Vbi2MsRow::weight () const
     654             : {
     655           0 :     return weightCache_p.getCachedColumn (vbi2_p, row());
     656             : }
     657             : 
     658             : Vector<Float> &
     659           0 : Vbi2MsRow::weightMutable () const
     660             : {
     661           0 :     return weightCache_p.getCachedColumn (vbi2_p, row());
     662             : }
     663             : 
     664             : void
     665           0 : Vbi2MsRow::setWeight (const Vector<Float> & value)
     666             : {
     667           0 :     AssertWritable();
     668             : 
     669           0 :     Vector<Float> & weight = weightCache_p.getCachedColumn (vbi2_p, row());
     670           0 :     weight = value;
     671           0 : }
     672             : 
     673             : void
     674           0 : Vbi2MsRow::setWeightSpectrum (const Matrix<Float> & value)
     675             : {
     676           0 :     AssertWritable();
     677             : 
     678           0 :     Matrix<Float> & weightSpectrum = weightSpectrumCache_p.getCachedPlane (vbi2_p, row());
     679           0 :     weightSpectrum = value;
     680           0 : }
     681             : 
     682             : const Matrix<Float> &
     683           0 : Vbi2MsRow::weightSpectrum () const
     684             : {
     685           0 :     return weightSpectrumCache_p.getCachedPlane (vbi2_p, row());
     686             : }
     687             : 
     688             : Matrix<Float> &
     689           0 : Vbi2MsRow::weightSpectrumMutable () const
     690             : {
     691           0 :     return weightSpectrumCache_p.getCachedPlane (vbi2_p, row());
     692             : }
     693             : 
     694             : const Matrix<Float> &
     695           0 : Vbi2MsRow::sigmaSpectrum () const
     696             : {
     697           0 :     return sigmaSpectrumCache_p.getCachedPlane (vbi2_p, row());
     698             : }
     699             : 
     700             : Matrix<Float> &
     701           0 : Vbi2MsRow::sigmaSpectrumMutable () const
     702             : {
     703           0 :     return sigmaSpectrumCache_p.getCachedPlane (vbi2_p, row());
     704             : }
     705             : 
     706             : void
     707           0 : Vbi2MsRow::setSigmaSpectrum (const Matrix<Float> & value)
     708             : {
     709           0 :     AssertWritable();
     710             : 
     711           0 :     Matrix<Float> & sigmaSpectrum = sigmaSpectrumCache_p.getCachedPlane (vbi2_p, row());
     712           0 :     sigmaSpectrum = value;
     713           0 : }
     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