LCOV - code coverage report
Current view: top level - synthesis/TransformMachines2 - VB2CFBMap.h (source / functions) Hit Total Coverage
Test: casa_coverage.info Lines: 11 11 100.0 %
Date: 2023-10-25 08:47:59 Functions: 6 6 100.0 %

          Line data    Source code
       1             : //# VB2CFBMap.h: Definition of the VB2CFBMap class
       2             : //# Copyright (C) 1997,1998,1999,2000,2001,2002,2003
       3             : //# Associated Universities, Inc. Washington DC, USA.
       4             : //#
       5             : //# This library is free software; you can redistribute it and/or modify it
       6             : //# under the terms of the GNU Library General Public License as published by
       7             : //# the Free Software Foundation; either version 2 of the License, or (at your
       8             : //# option) any later version.
       9             : //#
      10             : //# This library is distributed in the hope that it will be useful, but WITHOUT
      11             : //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      12             : //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
      13             : //# License for more details.
      14             : //#
      15             : //# You should have received a copy of the GNU Library General Public License
      16             : //# along with this library; if not, write to the Free Software Foundation,
      17             : //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
      18             : //#
      19             : //# Correspondence concerning AIPS++ should be addressed as follows:
      20             : //#        Internet email: aips2-request@nrao.edu.
      21             : //#        Postal address: AIPS++ Project Office
      22             : //#                        National Radio Astronomy Observatory
      23             : //#                        520 Edgemont Road
      24             : //#                        Charlottesville, VA 22903-2475 USA
      25             : //#
      26             : //# $Id$
      27             : //
      28             : #ifndef SYNTHESIS_TRANSFORM2_VB2CFBMAP_H
      29             : #define SYNTHESIS_TRANSFORM2_VB2CFBMAP_H
      30             : 
      31             : #include <casacore/casa/Arrays/Array.h>
      32             : #include <casacore/casa/Arrays/Matrix.h>
      33             : #include <casacore/casa/Arrays/Vector.h>
      34             : #include <msvis/MSVis/VisBuffer2.h>
      35             : #include <synthesis/TransformMachines2/CFBuffer.h>
      36             : #include <synthesis/TransformMachines2/CFStore2.h>
      37             : #include <synthesis/TransformMachines2/BaselineType.h>
      38             : #include <casacore/casa/Utilities/CountedPtr.h>
      39             : #include <casacore/coordinates/Coordinates/DirectionCoordinate.h>
      40             : #include <casacore/images/Images/ImageInterface.h>
      41             : #include <casacore/images/Images/TempImage.h>
      42             : #include <msvis/MSVis/VisBuffer2.h>
      43             : #include <synthesis/MeasurementComponents/SolvableVisCal.h>
      44             : #include <synthesis/TransformMachines2/Utils.h>
      45             : #include <casacore/casa/OS/Timer.h>
      46             : using namespace casacore;
      47             : namespace casa { //# NAMESPACE CASA - BEGIN
      48             :  namespace refim{
      49             :    using namespace CFDefs;
      50             :    class VB2CFBMap
      51             :    {
      52             :    public:
      53             :      VB2CFBMap();
      54             :      
      55          86 :      ~VB2CFBMap() 
      56          86 :      {
      57         258 :        LogIO log_l(LogOrigin("VB2CFBMap", "~VB2CFMap[R&D]"));
      58             : 
      59         172 :        log_l << "Total extra cost of heterogeneous array pointing correction = " << totalCost_p << "sec.  Total VBs processed =  " << totalVB_p << 
      60          86 :          ". The pointingoffsetsigdev used was = "<< sigmaDev <<LogIO::POST;
      61             :        
      62          86 :      };
      63             :      
      64             :      VB2CFBMap& operator=(const VB2CFBMap& other);
      65     3695757 :      const casacore::CountedPtr<CFBuffer >& operator[](const int& i) {return vb2CFBMap_p[i];};
      66             :      
      67             :      inline casacore::Vector<casacore::CountedPtr<CFBuffer>>& getVBRow2CFBMap() {return vb2CFBMap_p;};  
      68       33660 :      inline int nelements() {return vb2CFBMap_p.nelements();}
      69             :      
      70             :      virtual void setBLNeedsNewPOPG(vector<int>& vbRow2BLMap_p);
      71             : 
      72     7368260 :      virtual casacore::Int mapAntIDToAntType(const casacore::Int& /*ant*/) {return 0;};
      73             :      virtual casacore::Int makeVBRow2CFBMap(CFStore2& cfs,
      74             :                                             const VisBuffer2& vb, const casacore::Quantity& dPA,
      75             :                                             const casacore::Vector<casacore::Int>& dataChan2ImChanMap,
      76             :                                             const casacore::Vector<casacore::Int>& dataPol2ImPolMap,
      77             :                                             const casacore::CountedPtr<PointingOffsets>& po_p);
      78             :      /* void setPhaseGradPerRow(const casacore::CountedPtr<PointingOffsets>& po_p, */
      79             :      /*                              const casacore::CountedPtr<CFBuffer>& cfb, */
      80             :      /*                              const vi::VisBuffer2& vb, */
      81             :      /*                              const int& row); */
      82             :      /* const Matrix<vector<int> >& antennaGroups); */
      83             :      inline casacore::Matrix<casacore::Complex>& getCFPhaseGrad(const int& row)//, const int& ant0, const int& ant1)
      84             :      {return cfPhaseGrad_p(row);}
      85             :      virtual casacore::Matrix<casacore::Complex> setBLPhaseGrad(const casacore::CountedPtr<PointingOffsets>& pointingOffsets_p ,
      86             :                                                                 const vi::VisBuffer2& vb,
      87             :                                                                 const int& row,
      88             :                                                                 const double& sigmaDev);
      89             : 
      90             : 
      91       26875 :      void setDoPointing(const bool& dop=false) {doPointing_p = dop;}
      92          86 :      void setPOSigmaDev(const vector<float>& sigdev) {sigmaDev = sigdev;}
      93             :   //   protected:
      94             :      casacore::Vector<casacore::CountedPtr<CFBuffer > > vb2CFBMap_p;
      95             :      casacore::Vector<casacore::Matrix<casacore::Complex> > cfPhaseGrad_p;
      96             :      casacore::CountedPtr<BaselineType> baselineType_p;
      97             :      casacore::Vector< casacore::CountedPtr<PhaseGrad> >vectorPhaseGradCalculator_p;
      98             :      bool doPointing_p, needsNewPOPG_p, needsNewFieldPG_p;
      99             :      casacore::Int PO_DEBUG_P, cachedFieldId_p;
     100             :      /* casacore::Matrix< vector<int> > antennaGroups_p, cachedAntennaGroups_p; */
     101             :      /* casacore::Matrix< vector<float> > antennaPO_p, cachedAntennaPO_p; */
     102             :      vector<int> vbRow2BLMap_p;
     103             :      vector<bool> blNeedsNewPOPG_p;
     104             :      int blType_p;
     105             :      rownr_t vbRows_p;
     106             :      /* casacore::Matrix<int> mapAntGrp_p, mapBLGroup_p, cachedmapBLGroup_p; */
     107             :      vector<float> sigmaDev = {0.0,0.0};
     108             :      casacore::CountedPtr<CFBuffer> cachedCFBPtr_p;
     109             :      Vector<int> maxCFShape_p;
     110             :      casacore::Timer timer_p;
     111             :      float totalCost_p, totalVB_p;
     112             :      Bool computePhaseScreen_p;
     113             :    };
     114             :  }
     115             : }
     116             : #endif  

Generated by: LCOV version 1.16