29 #ifndef SYNTHESIS_TRANSFORM2_BEAMSKYJONES_H
30 #define SYNTHESIS_TRANSFORM2_BEAMSKYJONES_H
46 template <
typename T>
class Vector;
148 virtual void reset();
virtual void assure(const vi::VisBuffer2 &vb, casacore::Int row)
if (changed) {update()}
A Measure: astronomical direction.
virtual void summary(casacore::Int n=0)
summarize the PBMaths contained here.
virtual casa::SkyJones::Type type()
Return the type of this Jones matrix (actual type of derived class).
std::vector< double > Vector
virtual ~BeamSkyJones()=0
this operator due to position offset
virtual void addGradients(const vi::VisBuffer2 &vb, casacore::Int row, const casacore::Float sumwt, const casacore::Float chisq, const casacore::Matrix< casacore::Complex > &c, const casacore::Matrix< casacore::Float > &f)
Add to Gradient Chisq.
casacore::Int lastUpdateIndex1_p
correct row in the VisBuffer
Quantum< Double > Quantity
casacore::Block< casacore::Int > myAntennaIDs_p
Antenna IDs (parallel with PBMaths)
casacore::ImageRegion * extent(const casacore::ImageInterface< casacore::Complex > &im, const vi::VisBuffer2 &vb, const casacore::Int irow=-1, const casacore::Float fPad=1.2, const casacore::Int iChan=0, const casa::SkyJones::SizeType sizeType=casa::SkyJones::COMPOSITE)
Get the casacore::ImageRegion of the primary beam on an Image for a given pointing Note: casacore::Im...
casacore::ImageInterface< casacore::Complex > & apply(const casacore::ImageInterface< casacore::Complex > &in, casacore::ImageInterface< casacore::Complex > &out, const vi::VisBuffer2 &vb, casacore::Int row, casacore::Bool forward=true)
Apply Jones matrix to an image (and adjoint) No "applyInverse" is available from the SkyJones classes...
casacore::CountedPtr< VisBufferUtil > vbutil_p
Primary beam envelope class, derived from PBMathInterface.
SquintType
Allowed Squints: NONE = no squint: PB is centered on the pointing center RR = PB is shifted from poin...
ostream-like interface to creating log messages.
casacore::ImageInterface< casacore::Float > & applySquare(const casacore::ImageInterface< casacore::Float > &in, casacore::ImageInterface< casacore::Float > &out, const vi::VisBuffer2 &vb, casacore::Int row)
virtual casacore::Bool changedBuffer(const vi::VisBuffer2 &vb, casacore::Int row1, casacore::Int &row2)
Does this operator changed in this VisBuffer, starting with row1? If yes, we return in row2...
void setPBMath(const casacore::String &telescope, PBMath &myPBmath, const casacore::Int &antennaID=-1, const casacore::Int &feedID=-1)
Solve virtual casacore::Bool solve (SkyEquation& se);
Types
Types of known MDirections Warning: The order defines the order in the translation matrix FromTo in ...
casacore::String telescope()
return the telescope it is on at this state
Referenced counted pointer for constant data.
casacore::Double parallacticAngleIncrement_p
casacore::Bool getPBMath(casacore::uInt whichAnt, PBMath &myPBMath) const
get the PBMath object; returns false if that one doesn't exist, true if it does exist and is OK which...
casacore::Double lastTime_p
casacore::String telescope_p
casacore::Bool hasBeenApplied
casacore::Block< casacore::String > myTelescopes_p
Names of telescopes (parralel with PBMaths.
beam-like sky-plane effects for the SkyEquation
casacore::Int lastArrayId_p
void update(const vi::VisBuffer2 &vb, casacore::Int row)
Update the FieldID, Telescope, pointingDirection, Parallactic angle info.
BeamSkyJones(const casacore::Quantity ¶llacticAngleIncrement=casacore::Quantity(720.0,"deg"), BeamSquint::SquintType doSquint=BeamSquint::NONE, const casacore::Quantity &skyPositionThreshold=casacore::Quantity(180,"deg"))
Eventually, the casacore::MS will have all the beam information in its Beam Subtable.
virtual void showState(casacore::LogIO &os)
Print out information concerning the state of this object.
bool Bool
Define the standard types used by Casacore.
casacore::Int lastUpdateIndex2_p
virtual void initializeGradients()
Initialize for gradient search.
casacore::Block< casacore::Int > myFeedIDs_p
Feed IDs (parallel with PBMaths)
virtual void reset()
Understand if things have changed since last PB application.
Sky Jones: Model sky-plane instrumental effects for the SkyEquation.
virtual casacore::ImageInterface< casacore::Complex > & applyGradient(casacore::ImageInterface< casacore::Complex > &result, const vi::VisBuffer2 &vb, casacore::Int row)
Apply gradient.
Class to hold a region of interest in an image.
casacore::Block< casacore::Double > lastParallacticAngles_p
which the operator is considered to be changed (in radians)
casacore::Int lastFieldId_p
casacore::Bool isHomogeneous() const
Return true if all antennas share a common VP.
VisBuffer2s encapsulate one chunk of visibility data for processing.
virtual casacore::Bool isSolveable()
Is this solveable?
Base class for all Casacore library errors.
void updatePBMathIndices(const vi::VisBuffer2 &vb, casacore::Int row) const
update the indices cache.
virtual casacore::Int support(const vi::VisBuffer2 &vb, const casacore::CoordinateSystem &cs)
Get an idea of the support of the PB in number of pixels.
const Double c
Fundamental physical constants (SI units):
A component of a model of the sky.
virtual void finalizeGradients()
Finalize for gradient search.
virtual casacore::Bool change(const vi::VisBuffer2 &vb)
Does the operator change in this visbuffer or since the last call? May not be useful – check it out: ...
String: the storage and methods of handling collections of characters.
casacore::Int indexTelescope(const casacore::String &compareTelescope, const casacore::Int &compareAntenna=-1, const casacore::Int &compareFeed=-1) const
return index of compareTelescope, compareAntenna and compareFeed in myTelescopes_p, myAntennaIDs and myFeedIDs; -1 if not found if compareAntenna or compareTelescope is -1, this means that the PBMath class is the same for all antennae/feeds.
casacore::Quantity getSkyPositionThreshold()
casacore::MDirection convertDir(const vi::VisBuffer2 &vb, const casacore::MDirection &inDir, const casacore::MDirection::Types outType)
casacore::CountedPtr< vi::VisBuffer2 > lastUpdateVisBuffer_p
cache of the indices to the PBMaths container for antenna/feed 1 and 2
casacore::Double skyPositionThreshold_p
beyond which the operator is considered to be changed (in radians)
virtual casacore::Bool changed(const vi::VisBuffer2 &vb, casacore::Int row)
Has this operator changed since the last Application? (or more properly, since the last update()) ...
casacore::Block< PBMath > myPBMaths_p
used when the operator was applied last time.
Interconvert pixel and world coordinates.
casacore::Bool directionsCloseEnough(const casacore::MDirection &dir1, const casacore::MDirection &dir2) const
return true if two directions are close enough to consider the operator unchanged, false otherwise
casacore::Quantity getPAIncrement()
casacore::Block< casacore::MDirection > lastDirections_p
used when the operator was applied last time.
Type
Allowed types of VisJones matrices.
casacore::Int lastUpdateRow_p
is filled for the correct VisBuffer.
#define casacore
<X11/Intrinsic.h> #defines true, false, casacore::Bool, and String.
BeamSquint::SquintType doSquint_p