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

Primary beam envelope class, derived from PBMathInterface. More...

#include <PBMath.h>

Public Types

enum  CommonPB {
  UNKNOWN,
  DEFAULT,
  ATCA_L1,
  ATCA_L2,
  ATCA_L3,
  ATCA_S,
  ATCA_C,
  ATCA_X,
  GBT,
  GMRT,
  HATCREEK,
  NRAO12M,
  NRAO140FT,
  OVRO,
  VLA,
  VLA_INVERSE,
  VLA_NVSS,
  VLA_2NULL,
  VLA_4,
  VLA_P,
  VLA_L,
  VLA_C,
  VLA_X,
  VLA_U,
  VLA_K,
  VLA_Q,
  WSRT,
  WSRT_LOW,
  ALMA,
  ALMASD,
  ACA,
  IRAMPDB,
  IRAM30M,
  SMA,
  ATA,
  ATCA_C_RI,
  ATCA,
  ATCA_16,
  ATCA_K,
  ATCA_Q,
  ATCA_W,
  EVLA,
  NGVLA,
  NONE
}
 This enumeration provides a simple way to instantiate the common primary beam models. More...
 
enum  { NumberOfCommonPB }
 

Public Member Functions

 PBMath ()
 Default constructor, required for casacore::Block<PBMath> More...
 
 PBMath (PBMath::CommonPB myPBType, casacore::Bool useSymmetricBeam=false)
 Make a PB of common type. More...
 
 PBMath (casacore::String &telescopeName, casacore::Bool useSymmetricBeam=false, casacore::Quantity freq=casacore::Quantity(0.0,"Hz"))
 Make a PB from a telescopename and frequency. More...
 
 PBMath (casacore::Double dishDiam, casacore::Bool useSymmetricBeam, casacore::Quantity freq)
 Make a PB by dish diameter. More...
 
 PBMath (const casacore::RecordInterface &myrec)
 Make a PB from a RecordInterface. More...
 
 PBMath (PBMathInterface::PBClass theclass, casacore::Quantity halfWidth, 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)
 Make a Gaussian Primary beam. More...
 
 PBMath (PBMathInterface::PBClass theclass, const casacore::Vector< casacore::Double > &coeff, 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)
 Make a casacore::Polynomial, Inverse casacore::Polynomial, or Numeric Primary beam (These three have identical calling signatures, they can only be distinguished by the PBClass enumeration) More...
 
 PBMath (PBMathInterface::PBClass theclass, const casacore::Vector< casacore::Float > &coeff, 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)
 Make a Numeric Primary beam (FLOAT!) More...
 
 PBMath (PBMathInterface::PBClass theclass, const casacore::Vector< casacore::Double > &coeff, const casacore::Vector< casacore::Double > &scale, 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)
 Make a CosPolynomial beam type. More...
 
 PBMath (PBMathInterface::PBClass theclass, casacore::Quantity dishDiam, casacore::Quantity blockageDiam, casacore::Quantity maxRad, casacore::Quantity refFreq, 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)
 Make an Airy beam type. More...
 
 PBMath (PBMathInterface::PBClass theclass, casacore::ImageInterface< casacore::Float > &reJones)
 Make an Image-based beam. More...
 
 PBMath (PBMathInterface::PBClass theclass, casacore::ImageInterface< casacore::Float > &reJones, casacore::ImageInterface< casacore::Float > &imJones)
 
 PBMath (const PBMath &other)
 Instantiate from a Table PBMath(const casacore::Table& theTable, casacore::Int row);. More...
 
virtual ~PBMath ()
 destructor More...
 
PBMathoperator= (const PBMath &other)
 operator= returns a reference to the PBMath; reference counted pointer More...
 
casacore::Bool operator== (const PBMath &other) const
 comparison operator: just checks that the objects are same (could have two different objects with identical data, these are treated as !=) More...
 
casacore::Bool operator!= (const PBMath &other) const
 comparison operator: just checks that the objects are different (could have two different objects with identical data, these are treated as !=) 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)
 copy() returns a copy of the PBMath PBMath copy() const; 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)
 
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 setUseSymmetric (casacore::Bool useSym=true)
 Fit an azimuthally symmetric beam to the squinted or otherwise 2-D beam for casacore::Stokes I? More...
 
casacore::Bool getUseSymmetric ()
 Get value of useSymmetric. More...
 
PBMathInterface::PBClass whichPBClass ()
 Get the type of PB this is. More...
 
void summary (casacore::Int nValues=0)
 Summarize the Voltage Pattern;. More...
 
casacore::Bool ok () const
 Is the state of the PBMath OK? More...
 
casacore::ImageRegionextent (const casacore::ImageInterface< casacore::Complex > &im, const casacore::MDirection &pointing, const casacore::Int row, const casacore::Float fPad, const casacore::Int iChan, const SkyJones::SizeType)
 Get the BLC, TRC of the primary beam on an Image for a given pointing Note: BLC and TRC are 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 > &im, const casacore::MDirection &pointing, const casacore::Int row, const casacore::Float fPad, const casacore::Int iChan, const SkyJones::SizeType)
 
virtual casacore::Int support (const casacore::CoordinateSystem &cs)
 
void namePBClass (casacore::String &name)
 gives the name of the PB Class that has been used More...
 

Static Public Member Functions

static void whichCommonPBtoUse (casacore::String &telescope, casacore::Quantity &freq, casacore::String &band, PBMath::CommonPB &whichPB, casacore::String &pbName)
 given the Telescope name and the frequency, guess the most approrpiate CommonPB primary beam type and the band More...
 
static void nameCommonPB (const PBMath::CommonPB iPB, casacore::String &str)
 converts the enumrated type into a string More...
 
static void enumerateCommonPB (const casacore::String &str, PBMath::CommonPB &ipb)
 converts the PB casacore::String into an enumrated type More...
 
static PBMathInterfacepbMathInterfaceForCommonPB (const PBMath::CommonPB ipb, bool useSymmetricBeam)
 return a PBMathInteface for a commonPB ; caller needs to delete pointer More...
 
static PBMathInterfacepbMathInterfaceFromRecord (const casacore::RecordInterface &rec)
 return a PBMathInteface from a Vpmanager record ; caller needs to delete pointer More...
 

Protected Member Functions

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=0.01, casacore::Bool forward=true)
 Gradient stuff: this needs more thought, as it is not really connected with the stuff in VPSkyJones and all. More...
 
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=0.01, casacore::Bool forward=true)
 

Private Member Functions

void initByTelescope (PBMath::CommonPB myPBType, casacore::Bool useSymmetricBeam=false, casacore::Double frequency=0.0)
 casacore::Function to initialize the state of the tool More...
 
void initByDiameter (casacore::Double diam, casacore::Bool useSymmetricBeam, casacore::Double freq)
 casacore::Function to initialize the by dish diameter More...
 

Static Private Member Functions

static casacore::Bool getQuantity (const casacore::RecordInterface &rec, const casacore::String &item, casacore::Quantity &returnedQuantity)
 These should probably move to casacore::RecordInterface when we are happy with their performance. More...
 
static casacore::Bool getMDirection (const casacore::RecordInterface &rec, const casacore::String &item, casacore::MDirection &returnedMDirection)
 

Private Attributes

casacore::CountedPtr
< PBMathInterface
pb_pointer_p
 

Detailed Description

Primary beam envelope class, derived from PBMathInterface.

Intended use:

Public interface

Prerequisite

Etymology

PBMath types do the mathematical operations of the Primary Beamss or Voltage patterns. This envelope class's name was designed for simplicity.

Synopsis

PBMath is an envelope class for the various types of 1D and 2D primary beam/voltage pattern objects. They all have a common interface defined by PBMathInterface. The PBMath object has a counted pointer to the actual PB type; hence, the PBMath object is lightweight and can be passed around by value in other classes.

Construct a PBMath via PBMath's enumerated CommonPB type.

Example

PBMath vla_LPB(PBMath::VLA_L); // has L band squint built in

A PBMath can also be constructed by the complete argument list for the type of PB it holds. Since different PB types can have the same argument list (PBMath1DPoly and PBMath1DIPoly, for example), the exact type also needs to be specified via the PBMathInterface::PBClass.

The main thing you want to do with a primary beam or voltage pattern is to apply it to an image. The PBMath object forwards its low level "apply" calls to the letter class's "apply" calls.

Example

casacore::MDirection pointingDir(casacore::Quantity(135.0, "deg"), casacore::Quantity(60.0, "deg"),
casacore::Quantity parallacticAngle(26.5, "deg");
wsrtPB.applyPB(in, out, pointingDir); // multiply by primary beam
wsrtPB.applyPB(in, out, pointingDir, parallacticAngle, BeamSquint::GOFIGURE,
true, 0.02); // divide by primary beam
wsrtPB.applyVP(in, out, pointingDir); // multiply by voltage pattern

Motivation

This Envelope class allows the user to create a PBMath object which can display all the polymorphic traits of PBMath1D classes or PBMath2D classes.

Definition at line 126 of file PBMath.h.

Member Enumeration Documentation

anonymous enum
Enumerator
NumberOfCommonPB 

Definition at line 148 of file PBMath.h.

This enumeration provides a simple way to instantiate the common primary beam models.

They are each represented by one of the more fundamental PBMath1D types

New CommonPB Types must go to the end

Enumerator
UNKNOWN 
DEFAULT 
ATCA_L1 
ATCA_L2 
ATCA_L3 
ATCA_S 
ATCA_C 
ATCA_X 
GBT 
GMRT 
HATCREEK 
NRAO12M 
NRAO140FT 
OVRO 
VLA 
VLA_INVERSE 
VLA_NVSS 
VLA_2NULL 
VLA_4 
VLA_P 
VLA_L 
VLA_C 
VLA_X 
VLA_U 
VLA_K 
VLA_Q 
WSRT 
WSRT_LOW 
ALMA 
ALMASD 
ACA 
IRAMPDB 
IRAM30M 
SMA 
ATA 
ATCA_C_RI 
ATCA 
ATCA_16 
ATCA_K 
ATCA_Q 
ATCA_W 
EVLA 
NGVLA 
NONE 

Definition at line 134 of file PBMath.h.

Constructor & Destructor Documentation

casa::PBMath::PBMath ( )

Default constructor, required for casacore::Block<PBMath>

casa::PBMath::PBMath ( PBMath::CommonPB  myPBType,
casacore::Bool  useSymmetricBeam = false 
)
explicit

Make a PB of common type.

casa::PBMath::PBMath ( casacore::String telescopeName,
casacore::Bool  useSymmetricBeam = false,
casacore::Quantity  freq = casacore::Quantity(0.0,"Hz") 
)

Make a PB from a telescopename and frequency.

casa::PBMath::PBMath ( casacore::Double  dishDiam,
casacore::Bool  useSymmetricBeam,
casacore::Quantity  freq 
)

Make a PB by dish diameter.

casa::PBMath::PBMath ( const casacore::RecordInterface myrec)
explicit

Make a PB from a RecordInterface.

casa::PBMath::PBMath ( PBMathInterface::PBClass  theclass,
casacore::Quantity  halfWidth,
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 
)

Make a Gaussian Primary beam.

casa::PBMath::PBMath ( PBMathInterface::PBClass  theclass,
const casacore::Vector< casacore::Double > &  coeff,
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 
)

Make a casacore::Polynomial, Inverse casacore::Polynomial, or Numeric Primary beam (These three have identical calling signatures, they can only be distinguished by the PBClass enumeration)

casa::PBMath::PBMath ( PBMathInterface::PBClass  theclass,
const casacore::Vector< casacore::Float > &  coeff,
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 
)

Make a Numeric Primary beam (FLOAT!)

casa::PBMath::PBMath ( PBMathInterface::PBClass  theclass,
const casacore::Vector< casacore::Double > &  coeff,
const casacore::Vector< casacore::Double > &  scale,
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 
)

Make a CosPolynomial beam type.

casa::PBMath::PBMath ( PBMathInterface::PBClass  theclass,
casacore::Quantity  dishDiam,
casacore::Quantity  blockageDiam,
casacore::Quantity  maxRad,
casacore::Quantity  refFreq,
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 
)

Make an Airy beam type.

casa::PBMath::PBMath ( PBMathInterface::PBClass  theclass,
casacore::ImageInterface< casacore::Float > &  reJones 
)

Make an Image-based beam.

casa::PBMath::PBMath ( PBMathInterface::PBClass  theclass,
casacore::ImageInterface< casacore::Float > &  reJones,
casacore::ImageInterface< casacore::Float > &  imJones 
)
casa::PBMath::PBMath ( const PBMath other)

Instantiate from a Table PBMath(const casacore::Table& theTable, casacore::Int row);.

copy ctor: copies the reference counted pointer

virtual casa::PBMath::~PBMath ( )
virtual

destructor

Member Function Documentation

casacore::ImageInterface<casacore::Complex>& casa::PBMath::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 = 0.01,
casacore::Bool  forward = true 
)
protected

Gradient stuff: this needs more thought, as it is not really connected with the stuff in VPSkyJones and all.

This will return the partial derivatives of chi^2 w.r.t the beam model parameters, represented here as a vector. Not implemented yet. void parameterGradient(casacore::Vector<casacore::Float> grad);

Flush the construction parameters to disk This is a public method because this class doesn't know what Table it is to be stored in

virtual casacore::Bool flushToTable(casacore::Table& beamSubTable, casacore::Int iRow);polymorphic lower level helping apply methods

SkyComponent& casa::PBMath::apply ( 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 = 0.01,
casacore::Bool  forward = true 
)
protected
casacore::ImageInterface<casacore::Complex>& casa::PBMath::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>& casa::PBMath::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 
)
SkyComponent& casa::PBMath::applyPB ( 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 
)
casacore::ImageInterface<casacore::Float>& casa::PBMath::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 
)
SkyComponent& casa::PBMath::applyPB2 ( 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::ImageInterface<casacore::Complex>& casa::PBMath::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 
)

copy() returns a copy of the PBMath PBMath copy() const;

Apply Jones matrix to an image (and adjoint)

SkyComponent& casa::PBMath::applyVP ( 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)

static void casa::PBMath::enumerateCommonPB ( const casacore::String str,
PBMath::CommonPB ipb 
)
static

converts the PB casacore::String into an enumrated type

casacore::ImageRegion* casa::PBMath::extent ( const casacore::ImageInterface< casacore::Complex > &  im,
const casacore::MDirection pointing,
const casacore::Int  row,
const casacore::Float  fPad,
const casacore::Int  iChan,
const SkyJones::SizeType   
)

Get the BLC, TRC of the primary beam on an Image for a given pointing Note: BLC and TRC are not necesarily constrained to lie within the image region (for example, if the pointing center is near the edge of the image).

fPad: extra fractional padding above PB support (note: we do not properly treat squint yet, this will cover it for now) iChan: frequency channel to take: lowest frequency channel is safe for all

casacore::ImageRegion* casa::PBMath::extent ( const casacore::ImageInterface< casacore::Float > &  im,
const casacore::MDirection pointing,
const casacore::Int  row,
const casacore::Float  fPad,
const casacore::Int  iChan,
const SkyJones::SizeType   
)
static casacore::Bool casa::PBMath::getMDirection ( const casacore::RecordInterface rec,
const casacore::String item,
casacore::MDirection returnedMDirection 
)
staticprivate
static casacore::Bool casa::PBMath::getQuantity ( const casacore::RecordInterface rec,
const casacore::String item,
casacore::Quantity returnedQuantity 
)
staticprivate

These should probably move to casacore::RecordInterface when we are happy with their performance.

casacore::Bool casa::PBMath::getUseSymmetric ( )
inline

Get value of useSymmetric.

Definition at line 337 of file PBMath.h.

References pb_pointer_p.

void casa::PBMath::initByDiameter ( casacore::Double  diam,
casacore::Bool  useSymmetricBeam,
casacore::Double  freq 
)
private

casacore::Function to initialize the by dish diameter

void casa::PBMath::initByTelescope ( PBMath::CommonPB  myPBType,
casacore::Bool  useSymmetricBeam = false,
casacore::Double  frequency = 0.0 
)
private

casacore::Function to initialize the state of the tool

static void casa::PBMath::nameCommonPB ( const PBMath::CommonPB  iPB,
casacore::String str 
)
static

converts the enumrated type into a string

void casa::PBMath::namePBClass ( casacore::String name)
inline

gives the name of the PB Class that has been used

Definition at line 388 of file PBMath.h.

References pb_pointer_p.

casacore::Bool casa::PBMath::ok ( ) const

Is the state of the PBMath OK?

casacore::Bool casa::PBMath::operator!= ( const PBMath other) const

comparison operator: just checks that the objects are different (could have two different objects with identical data, these are treated as !=)

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

operator= returns a reference to the PBMath; reference counted pointer

casacore::Bool casa::PBMath::operator== ( const PBMath other) const

comparison operator: just checks that the objects are same (could have two different objects with identical data, these are treated as !=)

static PBMathInterface* casa::PBMath::pbMathInterfaceForCommonPB ( const PBMath::CommonPB  ipb,
bool  useSymmetricBeam 
)
static

return a PBMathInteface for a commonPB ; caller needs to delete pointer

static PBMathInterface* casa::PBMath::pbMathInterfaceFromRecord ( const casacore::RecordInterface rec)
static

return a PBMathInteface from a Vpmanager record ; caller needs to delete pointer

void casa::PBMath::setUseSymmetric ( casacore::Bool  useSym = true)
inline

Fit an azimuthally symmetric beam to the squinted or otherwise 2-D beam for casacore::Stokes I?

Definition at line 334 of file PBMath.h.

References pb_pointer_p.

void casa::PBMath::summary ( casacore::Int  nValues = 0)

Summarize the Voltage Pattern;.

virtual casacore::Int casa::PBMath::support ( const casacore::CoordinateSystem cs)
virtual
static void casa::PBMath::whichCommonPBtoUse ( casacore::String telescope,
casacore::Quantity freq,
casacore::String band,
PBMath::CommonPB whichPB,
casacore::String pbName 
)
static

given the Telescope name and the frequency, guess the most approrpiate CommonPB primary beam type and the band

PBMathInterface::PBClass casa::PBMath::whichPBClass ( )
inline

Get the type of PB this is.

Definition at line 340 of file PBMath.h.

References pb_pointer_p.

Member Data Documentation

casacore::CountedPtr<PBMathInterface> casa::PBMath::pb_pointer_p
private

Definition at line 436 of file PBMath.h.

Referenced by getUseSymmetric(), namePBClass(), setUseSymmetric(), and whichPBClass().


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