Source
CalSolvingVi2LayerFactoryByVE(VisEquation* ve,const casacore::Bool& corrDepFlags=false); // From a VE pointer in calling scope
//# CalibratingVi2.h: Interface definition of the CalibratingVi2 class.
//#
//# CASA - Common Astronomy Software Applications (http://casa.nrao.edu/)
//# Copyright (C) Associated Universities, Inc. Washington DC, USA 2011, All rights reserved.
//# Copyright (C) European Southern Observatory, 2011, All rights reserved.
//#
//# This library is free software; you can redistribute it and/or
//# modify it under the terms of the GNU Lesser General Public
//# License as published by the Free software Foundation; either
//# version 2.1 of the License, or (at your option) any later version.
//#
//# This library is distributed in the hope that it will be useful,
//# but WITHOUT ANY WARRANTY, without even the implied warranty of
//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
//# Lesser General Public License for more details.
//#
//# You should have received a copy of the GNU Lesser General Public
//# License along with this library; if not, write to the Free Software
//# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
//# MA 02111-1307 USA
//# $Id: $
// Where TransformingVi2 interface is defined
namespace casa { //# NAMESPACE CASA - BEGIN
namespace vi { //# NAMESPACE VI - BEGIN
class CalibratingParameters {
// TBD: add solve-context parameters, like apply pivot (solved-for term), normalization
public:
CalibratingParameters();
CalibratingParameters(const casacore::Record& calLibRecord);
CalibratingParameters(const casacore::String& callib);
CalibratingParameters(casacore::Float corrFactor); // temporary, for initial testing
CalibratingParameters(const CalibratingParameters& other);
CalibratingParameters& operator=(const CalibratingParameters & other);
casacore::Bool byCalLib() const;
const casacore::Record& getCalLibRecord() const;
casacore::Float getCorrFactor() const;
void setCalLibRecord(const casacore::Record& calLibRecord);
void setCorrFactor(casacore::Float corrFactor);
private:
void validate() const;
casacore::Bool byCalLib_p;
casacore::Record calLibRecord_p;
casacore::Float corrFactor_p; // temporary, for initial testing
};
class CalibratingVi2 : public vi::TransformingVi2
{
public:
CalibratingVi2( vi::ViImplementation2 * inputVii,
const CalibratingParameters& calpar);
// From cal pars and an MS (used by OTF calibration outside synthesis)
CalibratingVi2( vi::ViImplementation2 * inputVii,
const CalibratingParameters& calpar,
casacore::String msname);
// From a VE pointer (used within synthesis, e.g., for solving)
CalibratingVi2( vi::ViImplementation2 * inputVii,
VisEquation *ve);
~CalibratingVi2();
// Report the the ViImplementation type
virtual casacore::String ViiType() const { return casacore::String("Cal( ")+getVii()->ViiType()+" )"; };