casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
casa::PBMath1DCosPoly Class Reference

PBMath1DCosPoly is a 1-D casacore::Polynomial Cosine Expansion for a Primary Beam. More...

#include <PBMath1DCosPoly.h>

Inheritance diagram for casa::PBMath1DCosPoly:
casa::PBMath1D casa::PBMathInterface

Public Member Functions

 PBMath1DCosPoly ()
 
 PBMath1DCosPoly (const casacore::Vector< casacore::Double > &coeff, const casacore::Vector< casacore::Double > &cosScale, casacore::Quantity maxRad, casacore::Quantity refFreq, casacore::Bool isThisVP=false, BeamSquint squint=BeamSquint(casacore::MDirection(casacore::Quantity(0.0,"deg"), casacore::Quantity(0.0,"deg"), casacore::MDirection::Ref(casacore::MDirection::AZEL)), casacore::Quantity(1.0,"GHz")), casacore::Bool useSymmetricBeam=false)
 Instantiation from arguments; default = no squint squint is the offset from pointing center if the casacore::Stokes R beam useSymmetricBeam forces a fit to the squinted beam. More...
 
PBMath1DCosPolyoperator= (const PBMath1DCosPoly &other)
 Instantiation from a row in the Beam subTable PBMath1DCosPoly(const casacore::Table& BeamSubTable, casacore::Int row, casacore::Bool useSymmetricBeam=false);. More...
 
 ~PBMath1DCosPoly ()
 Clone the object casacore::CountedPtr<PBMathInterface> clone();. More...
 
PBMathInterface::PBClass whichPBClass ()
 Get the type of PB this is. More...
 
void summary (casacore::Int nValues=0)
 Flush the construction parameters to disk casacore::Bool flushToTable(casacore::Table& beamSubTable, casacore::Int iRow);. More...
 
- Public Member Functions inherited from casa::PBMath1D
 PBMath1D (casacore::Quantity maximumRadius, casacore::Quantity refFreq, casacore::Bool isThisVP, BeamSquint squint, casacore::Bool useSymmetricBeam)
 
virtual ~PBMath1D ()=0
 
void viewPB (casacore::Vector< casacore::Float > &r, casacore::Vector< casacore::Float > &PB, casacore::Int n_elements, const casacore::Double freq=1.0e9)
 Get the PB in a vector to look at Concerning n_elements: they are evenly spaced between 0 and maxradius. More...
 
virtual casacore::Bool ok ()
 Is state of PBMath OK? More...
 
casacore::ImageRegionextent (const casacore::ImageInterface< casacore::Complex > &in, const casacore::MDirection &pointing, const casacore::Int irow, const casacore::Float fPad, const casacore::Int iChan, const SkyJones::SizeType sizeType)
 Get the casacore::ImageRegion of the primary beam on an Image for a given pointing Note: casacore::ImageRegion is not necesarily constrained to lie within the image region (for example, if the pointing center is near the edge of the image). More...
 
casacore::ImageRegionextent (const casacore::ImageInterface< casacore::Float > &in, const casacore::MDirection &pointing, const casacore::Int irow, const casacore::Float fPad, const casacore::Int iChan, const SkyJones::SizeType sizeType)
 
virtual casacore::Int support (const casacore::CoordinateSystem &cs)
 
- Public Member Functions inherited from casa::PBMathInterface
 PBMathInterface (casacore::Bool isThisVP, BeamSquint squint, casacore::Bool useSymmetricBeam)
 Useful constructor. More...
 
virtual ~PBMathInterface ()=0
 virtual destructor More...
 
casacore::ImageInterface
< casacore::Complex > & 
applyVP (const casacore::ImageInterface< casacore::Complex > &in, casacore::ImageInterface< casacore::Complex > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Bool inverse=false, casacore::Bool conjugate=false, casacore::Float cutoff=0.01, casacore::Bool forward=true)
 Apply Jones matrix to an image (and adjoint) More...
 
casacore::ImageInterface
< casacore::Complex > & 
applyPB (const casacore::ImageInterface< casacore::Complex > &in, casacore::ImageInterface< casacore::Complex > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Bool inverse=false, casacore::Float cutoff=0.01, casacore::Bool forward=true)
 
casacore::ImageInterface
< casacore::Float > & 
applyPB (const casacore::ImageInterface< casacore::Float > &in, casacore::ImageInterface< casacore::Float > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Float cutoff=0.01)
 
casacore::ImageInterface
< casacore::Float > & 
applyPB2 (const casacore::ImageInterface< casacore::Float > &in, casacore::ImageInterface< casacore::Float > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Float cutoff=0.01)
 This has a very specialized role (in SkyEquation) and should not be used elsewhere. More...
 
SkyComponentapplyVP (SkyComponent &in, SkyComponent &out, const casacore::MDirection &sp, const casacore::Quantity frequency, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Bool inverse=false, casacore::Bool conjugate=false, casacore::Float cutoff=0.01, casacore::Bool forward=true)
 Apply Jones matrix to a sky component (and adjoint) More...
 
SkyComponentapplyPB (SkyComponent &in, SkyComponent &out, const casacore::MDirection &sp, const casacore::Quantity frequency, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Bool inverse=false, casacore::Float cutoff=0.01, casacore::Bool forward=true)
 
SkyComponentapplyPB2 (SkyComponent &in, SkyComponent &out, const casacore::MDirection &sp, const casacore::Quantity frequency, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE)
 
void namePBClass (casacore::String &name)
 Convert PBClass enumeration into PBClass String. More...
 
virtual void setUseSymmetric (casacore::Bool useSym=true)
 Fit an azimuthally symmetric beam to the squinted or otherwise 2-D beam for casacore::Stokes I? More...
 
virtual casacore::Bool getUseSymmetric ()
 Get value of useSymmetric. More...
 
virtual void setBandOrFeedName (const casacore::String elnamo)
 

Protected Member Functions

void fillPBArray ()
 Fill in vp_p array from construction parameters. More...
 
- Protected Member Functions inherited from casa::PBMath1D
 PBMath1D ()
 Protect default constructor: this will do you no good. More...
 
void extentguts (const casacore::CoordinateSystem &coords, const casacore::MDirection &pointing, const casacore::Float fPad, const casacore::Int iChan, casacore::Vector< casacore::Float > &blc, casacore::Vector< casacore::Float > &trc)
 calculate the limited box of the Primary Beam model's support, return in blc and trc (which are NOT contrained to be inside the image More...
 
void refineSize (casacore::Vector< casacore::Float > &blc, casacore::Vector< casacore::Float > &trc, const casacore::IPosition &shape, SkyJones::SizeType)
 push blc lower, trc higher such that they define an image which is a power of 2 in size. More...
 
casacore::ImageInterface
< casacore::Complex > & 
apply (const casacore::ImageInterface< casacore::Complex > &in, casacore::ImageInterface< casacore::Complex > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle, const BeamSquint::SquintType doSquint, casacore::Bool inverse, casacore::Bool conjugate, casacore::Int ipower, casacore::Float cutoff, casacore::Bool forward)
 lower level helping apply methods More...
 
casacore::ImageInterface
< casacore::Float > & 
apply (const casacore::ImageInterface< casacore::Float > &in, casacore::ImageInterface< casacore::Float > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle, const BeamSquint::SquintType doSquint, casacore::Float cutoff, const casacore::Int ipower=4)
 
SkyComponentapply (SkyComponent &in, SkyComponent &out, const casacore::MDirection &sp, const casacore::Quantity frequency, const casacore::Quantity parAngle, const BeamSquint::SquintType doSquint, casacore::Bool inverse, casacore::Bool conjugate, casacore::Int ipower, casacore::Float cutoff, casacore::Bool forward)
 PB and PB^2. More...
 
For wideband beams fill the
tabulated vp_p by the
interpolated beam at the freq
*virtual void 
nearestVPArray (double freq, bool printINFO=true)
 
void symmetrizeSquintedBeam ()
 Helper method to fit a circularly symmetric beam to the squinted RR + LL beam. More...
 
void applyXLine (const casacore::Complex *&in, casacore::Complex *&out, casacore::Float *&rx2, casacore::Complex *&vp, const casacore::Float ry2, const casacore::Int ipower, const casacore::Bool conjugate, const casacore::Bool inverse, const casacore::Bool forward, const casacore::Int nx, const casacore::Int iy, const casacore::Double rmax2, const casacore::Double factor, const casacore::Double inverseIncrementRadius, const casacore::Float cutoff)
 
- Protected Member Functions inherited from casa::PBMathInterface
 PBMathInterface ()
 Dumb constructor: protected, as it won't do you any good! More...
 

Private Attributes

casacore::Vector
< casacore::Double
coeff_p
 
casacore::Vector
< casacore::Double
cosScale_p
 

Additional Inherited Members

- Public Types inherited from casa::PBMathInterface
enum  PBClass {
  NONE,
  COMMONPB,
  AIRY,
  GAUSS,
  POLY,
  IPOLY,
  COSPOLY,
  NUMERIC,
  IMAGE,
  ZERNIKE
}
 Allowed PBMath Classes. More...
 
enum  { NumberOfPBClasses }
 Number of different classes in PBClass enumeration. More...
 
- Static Public Member Functions inherited from casa::PBMathInterface
static void namePBClass (const PBMathInterface::PBClass iPB, casacore::String &str)
 Convert enumeration into a string. More...
 
- Static Protected Member Functions inherited from casa::PBMathInterface
static casacore::Float asFloat (const casacore::Complex &value)
 Functions to deal with conversions to Float. More...
 
static casacore::Float asFloat (const casacore::DComplex &value)
 
static casacore::Float asFloat (const casacore::Float &value)
 
static casacore::Float asFloat (const casacore::Double &value)
 
- Protected Attributes inherited from casa::PBMath1D
casacore::Vector
< casacore::Complex > 
vp_p
 The parameterized representation is for the VP, not the PB. More...
 
casacore::Vector
< casacore::Complex > 
esvp_p
 Tabulated effective az-symmetrical voltage pattern (optional, depending upon useSymmetric_p) More...
 
casacore::Matrix
< casacore::Complex > 
wbvp_p
 Tabulated voltage pattern for wide band feed First axis is radius, 2nd axis is frequency. More...
 
casacore::Bool wideFit_p
 Switch to use wideband beam fits. More...
 
casacore::Vector
< casacore::Double
wFreqs_p
 Wideband beam fit frequencies. More...
 
casacore::Quantity maximumRadius_p
 Maximum radius allowed in tabulated model. More...
 
casacore::Quantity refFreq_p
 reference frequency: used for squint and other beam paramaters such as width, found in derived types. More...
 
casacore::Double fScale_p
 internal scaling from refFreq_p to 1GHz; used during construction More...
 
casacore::Double inverseIncrementRadius_p
 Increment in radius. More...
 
casacore::Double scale_p
 Scale to convert to tabulated units. More...
 
casacore::CompositeNumber composite_p
 casacore::CompositeNumber (for beam application and the like) More...
 
- Protected Attributes inherited from casa::PBMathInterface
casacore::Bool isThisVP_p
 Are the parameters being provided in the derived class constructor describing a Voltage Pattern or a Primary Beam? The default is Voltage Pattern, and we keep it internally as a voltage pattern. More...
 
BeamSquint squint_p
 Beam squint: convention is AZ-EL offset of the casacore::Stokes RR beam w.r.t. More...
 
casacore::Bool useSymmetricBeam_p
 Should we use the effective az-symmetrical primary beam? Otherwise, use squinted beam; if no squint, no difference. More...
 
casacore::String bandOrFeedName_p
 

Detailed Description

PBMath1DCosPoly is a 1-D casacore::Polynomial Cosine Expansion for a Primary Beam.

Intended use:

Public interface

Prerequisite

Etymology

PBMath1DCosPoly: derived from PBMath1D, implements a polynomial of Cosines of different widths

Synopsis

PBMath1DCosPoly: a voltage pattern expressed as a polynomial of cosines (all powers of them):

VP(x) = sum_i coeff_i * cos(scale_i * x)^{i}

x is in arcminutes, referenced to 1GHz frequency; the argument of the cosines are in radians

Example

cosCoef.set(0.0);
cosScale.set(0.0);
cosCoef(3) = 1.0;
cosScale(3) = 0.01891; // 0.01891 = 0.065 * 1000(MHz/GHz) /(60(arcm/deg)) * 2pi/180
PBMath1DCosPoly cosPB(cosCoef, cosScale,
casacore::Quantity(1.0, "deg"),
casacore::Quantity(1.0, "GHz"));
cosPB.applyPB(im3, im4, pointingDir);

Motivation

All of the 1-D PB types have everything in common except for the details of their parameterization. This lightweight class deals with those differences: construction, filling the PBArray from construction parameters, and flushing to disk. WSRT uses this model.

To Do

Definition at line 95 of file PBMath1DCosPoly.h.

Constructor & Destructor Documentation

casa::PBMath1DCosPoly::PBMath1DCosPoly ( )
casa::PBMath1DCosPoly::PBMath1DCosPoly ( const casacore::Vector< casacore::Double > &  coeff,
const casacore::Vector< casacore::Double > &  cosScale,
casacore::Quantity  maxRad,
casacore::Quantity  refFreq,
casacore::Bool  isThisVP = false,
BeamSquint  squint = BeamSquint(casacore::MDirection(casacore::Quantity(0.0,"deg"), casacore::Quantity(0.0,"deg"), casacore::MDirection::Ref(casacore::MDirection::AZEL)), casacore::Quantity(1.0,"GHz")),
casacore::Bool  useSymmetricBeam = false 
)

Instantiation from arguments; default = no squint squint is the offset from pointing center if the casacore::Stokes R beam useSymmetricBeam forces a fit to the squinted beam.

casa::PBMath1DCosPoly::~PBMath1DCosPoly ( )

Clone the object casacore::CountedPtr<PBMathInterface> clone();.

destructor

Member Function Documentation

void casa::PBMath1DCosPoly::fillPBArray ( )
protectedvirtual

Fill in vp_p array from construction parameters.

Implements casa::PBMath1D.

PBMath1DCosPoly& casa::PBMath1DCosPoly::operator= ( const PBMath1DCosPoly other)

Instantiation from a row in the Beam subTable PBMath1DCosPoly(const casacore::Table& BeamSubTable, casacore::Int row, casacore::Bool useSymmetricBeam=false);.

Copy constructor PBMath1DCosPoly(const PBMath1DCosPoly& other);

Assignment operator, by reference

void casa::PBMath1DCosPoly::summary ( casacore::Int  nValues = 0)
virtual

Flush the construction parameters to disk casacore::Bool flushToTable(casacore::Table& beamSubTable, casacore::Int iRow);.

Summarize the construction data for this primary beam

Reimplemented from casa::PBMath1D.

PBMathInterface::PBClass casa::PBMath1DCosPoly::whichPBClass ( )
inlinevirtual

Get the type of PB this is.

Implements casa::PBMathInterface.

Definition at line 130 of file PBMath1DCosPoly.h.

References casa::PBMathInterface::COSPOLY.

Member Data Documentation

casacore::Vector<casacore::Double> casa::PBMath1DCosPoly::coeff_p
private

Definition at line 146 of file PBMath1DCosPoly.h.

casacore::Vector<casacore::Double> casa::PBMath1DCosPoly::cosScale_p
private

Definition at line 147 of file PBMath1DCosPoly.h.


The documentation for this class was generated from the following file: