PBMath1DCosPoly.h
Classes
- PBMath1DCosPoly -- PBMath1DCosPoly is a 1-D Polynomial Cosine Expansion for a Primary Beam (full description)
Interface
- Public Members
- PBMath1DCosPoly()
- PBMath1DCosPoly(const Vector<Double>& coeff, const Vector<Double>& cosScale, Quantity maxRad, Quantity refFreq, Bool isThisVP=False, BeamSquint squint=BeamSquint(MDirection(Quantity(0.0, "deg"), Quantity(0.0, "deg"), MDirection::Ref(MDirection::AZEL)), Quantity(1.0, "GHz")), Bool useSymmetricBeam=False)
- PBMath1DCosPoly& operator=(const PBMath1DCosPoly& other)
- ~PBMath1DCosPoly()
- PBMathInterface::PBClass whichPBClass()
- void summary(Int nValues=0)
- Protected Members
- void fillPBArray()
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
Vector<Double> cosCoef(4);
Vector<Double> cosScale(4);
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,
Quantity(1.0, "deg"),
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
- constructor from a MS beam subtable
- flush to MS beam subtable
Member Description
PBMath1DCosPoly(const Vector<Double>& coeff, const Vector<Double>& cosScale, Quantity maxRad, Quantity refFreq, Bool isThisVP=False, BeamSquint squint=BeamSquint(MDirection(Quantity(0.0, "deg"), Quantity(0.0, "deg"), MDirection::Ref(MDirection::AZEL)), Quantity(1.0, "GHz")), Bool useSymmetricBeam=False)
Instantiation from arguments; default = no squint
squint is the offset from pointing center if the Stokes R beam
useSymmetricBeam forces a fit to the squinted beam
PBMath1DCosPoly& operator=(const PBMath1DCosPoly& other)
Instantiation from a row in the Beam subTable
PBMath1DCosPoly(const Table& BeamSubTable, Int row,
Bool useSymmetricBeam=False);
Copy constructor
PBMath1DCosPoly(const PBMath1DCosPoly& other);
Assignment operator, by reference
Clone the object
CountedPtr clone();
destructor
PBMathInterface::PBClass whichPBClass()
Get the type of PB this is
void summary(Int nValues=0)
Flush the construction parameters to disk
Bool flushToTable(Table& beamSubTable, Int iRow);
Summarize the construction data for this primary beam
Fill in vp_p array from construction parameters