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