PBMath1DCosPoly.h

Classes

PBMath1DCosPoly -- PBMath1DCosPoly is a 1-D Polynomial Cosine Expansion for a Primary Beam (full description)

class PBMath1DCosPoly : public PBMath1D

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()

Description

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

Member Description

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)

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

~PBMath1DCosPoly()

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

void fillPBArray()

Fill in vp_p array from construction parameters