27 #ifndef MSVIS_VISBUFFERIMPL_H
28 #define MSVIS_VISBUFFERIMPL_H
32 #warning "Remove next line later"
47 class VbDirtyComponents;
48 class ROVisibilityIterator2;
49 class VisibilityIterator2;
81 #if 0 // Can't avoid the definition in VisBuffer for now
83 class VbDirtyComponents {
87 typedef std::set<VisBufferComponents::EnumType> Set;
90 VbDirtyComponents
operator+ (
const VbDirtyComponents & other)
const;
96 static VbDirtyComponents
all ();
98 static VbDirtyComponents none ();
108 static const VbDirtyComponents all_p;
110 static VbDirtyComponents initializeAll ();
114 #endif // commenting out
117 class VbCacheItemBase;
118 class VisBufferCache;
119 class VisBufferState;
121 using vi::VbCacheItemBase;
122 using vi::VisBufferCache;
123 using vi::VisBufferState;
205 virtual const ROVisibilityIterator2 *
getVi ()
const;
511 virtual void checkVisIter (
const char * func,
const char *
file,
int line,
const char * extra =
"")
const;
515 virtual ROVisibilityIterator2 *
getViP ()
const;
521 template <
typename Coord>
527 void checkVisIterBase (
const char * func,
const char *
file,
int line,
const char * extra =
"")
const;
virtual void fillFeedPa2(casacore::Vector< casacore::Float > &feedPa) const
virtual casacore::Bool isNewFieldId() const
virtual const casacore::Vector< casacore::Int > & antenna2() const
virtual const casacore::Vector< casacore::Int > & feed2() const
A Measure: astronomical direction.
virtual void fillSpectralWindow(casacore::Int &value) const
virtual void fillNCorr(casacore::Int &value) const
virtual void fillDirection2(casacore::Vector< casacore::MDirection > &value) const
Elements::const_iterator const_iterator
virtual void fillDirection1(casacore::Vector< casacore::MDirection > &value) const
virtual casacore::Double hourang(casacore::Double time) const
Hour angle for specified time.
virtual void cacheCopy(const VisBufferImpl &other, casacore::Bool markAsCached)
virtual void fillPolFrame(casacore::Int &value) const
StatsData< AccumType > copy(const StatsData< AccumType > &stats)
virtual void dirtyComponentsSet(const VbDirtyComponents &dirtyComponents)
std::complex< Float > Complex
friend class VisBufferImplAsync
void adjustWeightFactorsAndFlags(casacore::Matrix< casacore::Float > &rowWeightFactors, casacore::Bool useWeightSpectrum, casacore::Int nRows, casacore::Int nCorrelations, casacore::Int nChannelsOut)
virtual void fillObservationId(casacore::Vector< casacore::Int > &value) const
virtual const casacore::Vector< casacore::Double > & time() const
virtual void stateCopy(const VisBufferImpl &other)
virtual void fillDirectionAux(casacore::Vector< casacore::MDirection > &value, const casacore::Vector< casacore::Int > &antenna, const casacore::Vector< casacore::Int > &feed, const casacore::Vector< casacore::Float > &feedPa) const
virtual ROVisibilityIterator2 * getViP() const
virtual casacore::Int arrayId() const
virtual void fillTimeInterval(casacore::Vector< casacore::Double > &value) const
casacore::Data accessors and one or more set methods are provided *virtual casacore::Vector< casacore::Int > antenna1() const
virtual const casacore::Vector< casacore::Float > & sigma() const
virtual void unSortCorr()
virtual void azelMat(casacore::Double time, casacore::Matrix< casacore::Double > &azelMat) const
VLAT is the Visibility LookAhead Thread. This thread advances a visibility iterator and fills the dat...
virtual void fillVisibilityModel(casacore::Matrix< CStokesVector > &value) const
virtual const casacore::Vector< casacore::RigidVector< casacore::Double, 3 > > & uvw() const
virtual void fillFrequency(casacore::Vector< casacore::Double > &value) const
virtual const casacore::Matrix< CStokesVector > & modelVisibility() const
virtual const casacore::Matrix< casacore::Bool > & flag() const
virtual void setVisCube(const casacore::Complex &c)
virtual void fillStateId(casacore::Vector< casacore::Int > &value) const
virtual void fillTimeCentroid(casacore::Vector< casacore::Double > &value) const
virtual void fillWeightMat(casacore::Matrix< casacore::Float > &value) const
virtual void fillFlag(casacore::Matrix< casacore::Bool > &value) const
virtual const casacore::Vector< casacore::Float > & feed2_pa() const
virtual const casacore::Matrix< casacore::Float > & sigmaMat() const
virtual void assign(const VisBufferImpl &vb, casacore::Bool copy=true)
Assignment, optionally without copying the data across; with copy=true this is identical to normal as...
virtual VisBufferImpl & operator=(const VisBufferImpl &vb)
Assignment, loses synchronization with iterator: only use buffer for current iteration (or reattach) ...
virtual void setFlagRow(const casacore::Vector< casacore::Bool > &)
void updateCoord(Coord &item, const Coord &otherItem)
virtual void fillSigma(casacore::Vector< casacore::Float > &value) const
virtual void resetWeightsUsingSigma()
Fill weightMat according to sigma column.
virtual const casacore::Cube< casacore::Complex > & modelVisCube() const
bool contains(const typename Container::value_type &e, const Container &c)
virtual void fillVisibilityCorrected(casacore::Matrix< CStokesVector > &value) const
virtual VisBufferImpl * clone() const
virtual void invalidate()
virtual const casacore::Vector< casacore::Double > & timeCentroid() const
virtual const casacore::Vector< casacore::Int > & channel() const
virtual casacore::Bool isNewSpectralWindow() const
virtual const casacore::MDirection & phaseCenter() const
virtual const casacore::Vector< casacore::MDirection > & direction1() const
virtual void fillCubeModel(casacore::Cube< casacore::Complex > &value) const
virtual void fillCorrType(casacore::Vector< casacore::Int > &value) const
virtual void fillFlagCategory(casacore::Array< casacore::Bool > &value) const
virtual const casacore::Vector< casacore::Int > & scan() const
virtual casacore::Int fieldId() const
const_iterator end() const
virtual void checkVisIter(const char *func, const char *file, int line, const char *extra="") const
virtual const casacore::Matrix< casacore::Float > & weightMat() const
virtual casacore::Int spectralWindow() const
virtual const casacore::Vector< casacore::uInt > & rowIds() const
virtual ~VisBufferImpl()
Destructor (detaches from VisIter)
virtual const casacore::Cube< casacore::Bool > & flagCube() const
virtual const casacore::Vector< casacore::Int > & processorId() const
virtual void fillFieldId(casacore::Int &value) const
virtual casacore::Int nChannel() const
virtual const casacore::Cube< casacore::Complex > & correctedVisCube() const
virtual void cacheClear(casacore::Bool markAsCached=false)
virtual const casacore::Cube< casacore::Float > & weightSpectrum() const
virtual void setFloatDataCube(const casacore::Cube< casacore::Float > &)
virtual void fillFeed1(casacore::Vector< casacore::Int > &value) const
virtual void fillUvw(casacore::Vector< casacore::RigidVector< casacore::Double, 3 > > &value) const
virtual casacore::MDirection azel0(casacore::Double time) const
virtual void fillFlagCube(casacore::Cube< casacore::Bool > &value) const
Fast Vector classes with fixed (templated) length.
virtual casacore::Bool areCorrelationsInCanonicalOrder() const
void adjustWeightAndSigmaMatrices(casacore::Int nChannelsAveraged, casacore::Int nChannelsOut, casacore::Int nRows, casacore::Int nCorrelations, casacore::Int nChannelsSelected, const casacore::Matrix< casacore::Float > &rowWeightFactors)
void computeRowWeightFactors(casacore::Matrix< casacore::Float > &rowWeightFactors, casacore::Bool useWeightSpectrum)
virtual casacore::Vector< casacore::Float > feed_pa(casacore::Double time) const
–> This needs to be removed: virtual casacore::Bool fetch(const asyncio::PrefetchColumns *pfc); ...
virtual void fillScan(casacore::Vector< casacore::Int > &value) const
friend class VisBufferImplAsyncWrapper
void averageChannels(const casacore::Matrix< casacore::Int > &chanavebounds)
Average channel axis according to chanavebounds, for whichever of DATA, MODEL_DATA, CORRECTED_DATA, FLOAT_DATA, FLAG, and WEIGHT_SPECTRUM are present.
virtual casacore::Bool isNewArrayId() const
–> Not called: virtual void setCorrectedVisCube(const casacore::Cube<casacore::Complex>& vis); Like t...
virtual void setModelVisibility(casacore::Matrix< CStokesVector > &)
virtual const casacore::Vector< casacore::Double > & timeInterval() const
const_iterator begin() const
virtual void azel0Vec(casacore::Double time, casacore::Vector< casacore::Double > &azelVec) const
virtual void setWeightSpectrum(const casacore::Cube< casacore::Float > &)
Fast Square Matrix class with fixed (templated) size.
casacore::Int averageChannelFrequencies(casacore::Int nChannelsOut, const casacore::Vector< casacore::Int > &channels, const casacore::Matrix< casacore::Int > &averagingBounds)
virtual casacore::Vector< casacore::MDirection > azel(casacore::Double time) const
virtual const casacore::Vector< casacore::Bool > & flagRow() const
virtual const casacore::Vector< casacore::Int > & feed1() const
virtual const casacore::Matrix< casacore::Float > & imagingWeight() const
virtual void fillNRow(casacore::Int &value) const
virtual void fillUvwMat(casacore::Matrix< casacore::Double > &value) const
virtual const casacore::Vector< casacore::Int > & stateId() const
virtual void fillFeed2(casacore::Vector< casacore::Int > &value) const
virtual void fillImagingWeight(casacore::Matrix< casacore::Float > &value) const
virtual casacore::Int nCorr() const
void averageFlagInfoChannels(const casacore::Matrix< casacore::Int > &averagingBounds, casacore::Int nChannelsOut, casacore::Bool useWeightSpectrum)
virtual void detachFromVisibilityIterator2()
virtual void setModelVisCube(const casacore::Complex &c)
virtual void sortCorrelationsAux(casacore::Bool makeSorted)
virtual void fillExposure(casacore::Vector< casacore::Double > &value) const
VisBufferImpl()
Create empty VisBufferImpl you can assign to or attach.
virtual void updateCoordInfo(const VisBufferImpl *vb=NULL, const casacore::Bool dirDependent=true)
Rotate visibility phase for given vector (dim = nrow of vb) of phases (metres)
virtual casacore::Int msId() const
virtual const casacore::Matrix< CStokesVector > & correctedVisibility() const
virtual void fillCubeCorrected(casacore::Cube< casacore::Complex > &value) const
virtual void setWeight(const casacore::Vector< casacore::Float > &)
bool Bool
Define the standard types used by Casacore.
virtual void sortCorr()
Form casacore::Stokes parameters from correlations (these are preliminary versions) –> Not called: v...
virtual void fillNChannel(casacore::Int &value) const
*virtual void dirtyComponentsAdd(const VbDirtyComponents &additionalDirtyComponents)
–> provided by VI: virtual casacore::Int nRowChunk() const;
virtual const casacore::Cube< casacore::Complex > & visCube() const
virtual casacore::Int polFrame() const
void checkVisIterBase(const char *func, const char *file, int line, const char *extra="") const
virtual void fillFeedPa1(casacore::Vector< casacore::Float > &feedPa) const
virtual void fillTime(casacore::Vector< casacore::Double > &value) const
void copyCoordInfo(const VisBufferImpl &other, casacore::Bool force=false)
virtual const casacore::Matrix< CStokesVector > & visibility() const
virtual const casacore::Vector< casacore::SquareMatrix< casacore::Complex, 2 > > & cjones() const
virtual const casacore::Vector< casacore::Float > & weight() const
virtual casacore::String msName(casacore::Bool stripPath=false) const
virtual void attachToVisibilityIterator2(ROVisibilityIterator2 &iter)
Attach to a VisIter.
void averageVisCubeChannels(T &dataCache, casacore::Int nChanOut, const casacore::Matrix< casacore::Int > &averagingbounds)
virtual void fillFlagRow(casacore::Vector< casacore::Bool > &value) const
virtual VbDirtyComponents dirtyComponentsGet() const
virtual void fillChannel(casacore::Vector< casacore::Int > &value) const
void registerCacheItem(VbCacheItemBase *)
virtual void fillDataDescriptionId(casacore::Int &value) const
virtual void setCorrectedVisCube(const casacore::Cube< casacore::Complex > &)
virtual casacore::Int nRow() const
virtual casacore::Bool isWritable() const
virtual const casacore::Array< casacore::Bool > & flagCategory() const
VisBufferImpls encapsulate one chunk of visibility data for processing.
virtual void fillProcessorId(casacore::Vector< casacore::Int > &value) const
virtual const casacore::Vector< casacore::Float > & feed1_pa() const
LatticeExprNode operator+(const LatticeExprNode &expr)
Global functions operating on a LatticeExprNode.
virtual void fillWeightSpectrum(casacore::Cube< casacore::Float > &value) const
virtual void setWeightMat(const casacore::Matrix< casacore::Float > &)
virtual casacore::Float parang0(casacore::Double time) const
direction1() and direction2() return arrays of directions where the first and the second antenna/feed...
VbDirtyComponents allows marking portions of a VisBuffer as modified (aka dirty). This feature is nee...
virtual void dirtyComponentsClear()
virtual casacore::Int dataDescriptionId() const
virtual void fillPhaseCenter(casacore::MDirection &value) const
virtual const ROVisibilityIterator2 * getVi() const
const Double c
Fundamental physical constants (SI units):
virtual void fillFloatData(casacore::Cube< casacore::Float > &value) const
virtual void fillWeight(casacore::Vector< casacore::Float > &value) const
virtual void normalize(const casacore::Bool &phaseOnly=false)
Normalize the visCube by the modelVisCube (and optionally also divide visCube_p by its normalized amp...
virtual void fillVisibilityObserved(casacore::Matrix< CStokesVector > &value) const
virtual const casacore::Vector< casacore::Int > & observationId() const
virtual void setCorrectedVisibility(const casacore::Matrix< CStokesVector > &)
void setIterationInfo(casacore::Int msId, const casacore::String &msName, casacore::Bool isNewMs, casacore::Bool isNewArrayId, casacore::Bool isNewFieldId, casacore::Bool isNewSpectralWindow)
String: the storage and methods of handling collections of characters.
virtual casacore::Bool isNewMs() const
virtual void setFlag(const casacore::Matrix< casacore::Bool > &)
virtual void fillFeedPaAux(casacore::Vector< casacore::Float > &feedPa, const casacore::Vector< casacore::Int > &antenna, const casacore::Vector< casacore::Int > &feed) const
virtual void fillArrayId(casacore::Int &value) const
virtual void setFlagCube(const casacore::Cube< casacore::Bool > &)
void freqAveCubes()
virtual const casacore::Vector<casacore::Double>& lsrFrequency() const; virtual void setLsrFrequency ...
virtual const casacore::Cube< casacore::Float > & floatDataCube() const
virtual void fillCubeObserved(casacore::Cube< casacore::Complex > &value) const
virtual void fillSigmaMat(casacore::Matrix< casacore::Float > &value) const
LatticeExprNode all(const LatticeExprNode &expr)
virtual const casacore::Vector< casacore::Int > & corrType() const
virtual void setFlagCategory(const casacore::Array< casacore::Bool > &)
virtual void setVisibility(casacore::Matrix< CStokesVector > &)
virtual casacore::Vector< casacore::Float > parang(casacore::Double time) const
LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.
virtual const casacore::Vector< casacore::Double > & exposure() const
virtual void fillJonesC(casacore::Vector< casacore::SquareMatrix< casacore::Complex, 2 > > &value) const
virtual const casacore::Matrix< casacore::Double > & uvwMat() const
virtual const casacore::Vector< casacore::Double > & frequency() const
Defines nreal time structures used by the VLA table filler.
virtual const casacore::Vector< casacore::MDirection > & direction2() const
#define casacore
<X11/Intrinsic.h> #defines true, false, casacore::Bool, and String.