casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VisBufferImplAsync2.h
Go to the documentation of this file.
1 /*
2  * VisibilityBufferAsync.h
3  *
4  * Created on: Nov 3, 2010
5  * Author: jjacobs
6  */
7 
8 #ifndef VISIBILITYBUFFERASYNC2_H_
9 #define VISIBILITYBUFFERASYNC2_H_
10 
12 
13 namespace casa {
14 namespace vi {
15 
16 class VisibilityIteratorAsync2;
17 class VlaDatum;
18 class VLAT;
19 
20 class MsIterInfo {
21 
22 public:
23 
24  void fill (const casacore::MSIter & msIter);
25 
28  casacore::Int arrayId () const;
30  casacore::Int fieldId () const;
31  casacore::String fieldName () const;
32  const casacore::MFrequency & frequency0 () const;
34  casacore::Bool more () const;
35  casacore::Int msId () const;
36  casacore::Bool newArray () const;
38  casacore::Bool newField () const;
39  casacore::Bool newMS () const;
41  casacore::Int numMS () const;
42  const casacore::MDirection & phaseCenter () const;
43  casacore::Int polFrame () const;
46  const casacore::String & sourceName () const;
48  const casacore::MPosition & telescopePosition () const;
49 
50 
51 private:
52 
76 
77 };
78 
80 
81  friend class Rovia_Test;
82  friend class ViImplAsync2;
84  friend class VlaDatum;
85  friend class VLAT;
86 
87 public:
88 
89  //VisBufferAsync2 (const VisBuffer& vb);
90 
92 
93  const MsIterInfo & msIterInfo () const;
94 
95 protected:
96 
97  // The constructors are not public because creation should be performed
98  // by a factory object (e.g., VisBufferAutoPtr). The use of a factory
99  // makes it possible to fine tune at run time whether a VisBuffer or a
100  // VisBufferAsync2 is created.
101 
104 
105 // void attachToVisIter(VisibilityIterator2 & iter);
106 // void checkVisIter (const char * func, const char * file, int line, const char * extra = "") const;
107 // void clear ();
108  void construct ();
109 // virtual void copyAsyncValues (const VisBufferAsync2 & other);
110 // virtual void copyCache (const VisBuffer2 & other, casacore::Bool force);
111 // template<typename T> void copyVector (const casacore::Vector<T> & from, casacore::Vector<T> & to);
112 // casacore::Vector<casacore::MDirection>& fillDirection1();
113 // casacore::Vector<casacore::MDirection>& fillDirection2();
114 // void fillFrom (const VisBufferAsync2 & other);
115 // casacore::MDirection & fillPhaseCenter();
116 // casacore::Bool getAllBeamOffsetsZero () const;
117 // const casacore::Vector <casacore::String> & getAntennaMounts () const;
118 // const casacore::Cube <casacore::RigidVector <casacore::Double, 2> > & getBeamOffsets () const;
119 // const casacore::MeasurementSet & getMs () const;
120 // casacore::Int getNSpw () const;
121 // casacore::MDirection getPhaseCenter () const;
122 // const casacore::Cube <casacore::Double> & getReceptorAngles () const;
123 // void setAngleInfo (casacore::Bool allBeamOffsetsZero,
124 // const casacore::Vector<casacore::String> antennaMounts,
125 // casacore::Cube<casacore::RigidVector<casacore::Double, 2> > beamOffsets,
126 // const casacore::Cube<casacore::Double> & receptorAngles);
127 // void initializeScalars ();
128 // /////void setDataDescriptionId (casacore::Int id);
129 // void setFilling (casacore::Bool isFilling);
130 // void setLsrInfo (const casacore::Block <casacore::Int> & channelGroupNumber,
131 // const casacore::Block <casacore::Int> & channelIncrement,
132 // const casacore::Block <casacore::Int> & channelStart,
133 // const casacore::Block <casacore::Int> & channelWidth,
134 // const casacore::MPosition & observatoryPosition,
135 // const casacore::MDirection & phaseCenter,
136 // casacore::Bool velocitySelection);
137 // void setMeasurementSet (const casacore::MeasurementSet & ms);
138 // void setMeasurementSetId (casacore::Int id, bool isNew);
139 // void setMEpoch (const casacore::MEpoch & mEpoch);
140 // void setMSD (const casacore::MSDerivedValues & msd);
141 // void setNAntennas (casacore::Int);
142 // void setNCoh (casacore::Int);
143 // void setNSpw (casacore::Int);
144 // void setNewEntityFlags (bool newArrayId, bool newFieldId, bool newSpectralWindow);
145 // void setPolarizationId (casacore::Int);
146 // void setNRowChunk (casacore::Int);
147 // void setReceptor0Angle (const casacore::Vector<casacore::Float> & receptor0Angle);
148 // void setRowIds (const casacore::Vector<casacore::uInt> & rowIds);
149 // void setSelectedNVisibilityChannels (const casacore::Vector<casacore::Int> & nVisibilityChannels);
150 // void setSelectedSpectralWindows (const casacore::Vector<casacore::Int> & spectralWindows);
151 // void setTopoFreqs (const casacore::Vector<casacore::Double> & lsrFreq, const casacore::Vector<casacore::Double> & selFreq_p);
152 // void setVisibilityShape (const casacore::IPosition & pvisibilityShape);
153 // void updateCoordInfo (const VisBuffer2 *, const casacore::Bool dirDependent=true);
154 //
155 // static casacore::MDirection unsharedCopyDirection (const casacore::MDirection & direction);
156 // static void unsharedCopyDirectionVector (casacore::Vector<casacore::MDirection> & direction);
157 // static casacore::MEpoch unsharedCopyEpoch (const casacore::MEpoch & mEpoch);
158 // static casacore::MPosition unsharedCopyPosition (const casacore::MPosition & position);
159 
160 private:
161 
162 // casacore::Bool fillAllBeamOffsetsZero ();
163 // casacore::Vector <casacore::String> fillAntennaMounts ();
164 // casacore::Cube <casacore::RigidVector <casacore::Double, 2> > fillBeamOffsets ();
165 // casacore::Cube <casacore::Double> fillReceptorAngles ();
166 
169  mutable casacore::Vector<casacore::MDirection> azelCached_p; // mutable because it is a cached value
170  mutable casacore::Double azelCachedTime_p; // mutable because it is a cached value
176  //casacore::Int dataDescriptionId_p;
177  mutable casacore::Vector<casacore::Float> feedpaCached_p; // mutable because it is a cached value
178  mutable casacore::Double feedpaCachedTime_p; // mutable because it is a cached value
180  casacore::Vector<casacore::Double> lsrFrequency_p; // calculated by getTopoFreqs if velSelection_p
183  mutable casacore::ROMSColumns * msColumns_p; // [own]
192  //const casacore::ScalarColumn<casacore::Int> * obsMFreqTypes_p; // [use]
194  mutable casacore::Vector<casacore::Float> parangCached_p; // mutable because it is a cached value
195  mutable casacore::Double parangCachedTime_p; // mutable because it is a cached value
204 
205 
206 
207 };
208 
209 
210 //template<typename T>
211 //void VisBufferAsync2::copyVector (const casacore::Vector<T> & from, casacore::Vector<T> & to)
212 //{
213 // // Make an independent copy of the vector.
214 // // N.B.: the independence is only at the top casacore::Vector level
215 // // so any deep dependence is not undone
216 //
217 // casacore::Vector<T> tmp = from;
218 // to = tmp.copy();
219 //}
220 
221 
222 } // end namespace vi
223 
224 } // end namespace casa
225 
226 
227 #endif /* VISIBILITYBUFFERASYNC_H_ */
A Vector of integers, for indexing into Array&lt;T&gt; objects.
Definition: IPosition.h:119
casacore::Bool allBeamOffsetsZero_p
casacore::ROMSColumns * msColumns_p
A Measure: astronomical direction.
Definition: MDirection.h:174
A Measure: position on Earth.
Definition: MPosition.h:79
int Int
Definition: aipstype.h:50
casacore::Matrix< casacore::Double > receptorAngle_p
MSDerivedValues calculates values derived from a MS.
const MsIterInfo & msIterInfo() const
casacore::Vector< casacore::Double > lsrFrequency_p
const casacore::String & sourceName() const
VisibilityIterator2 iterates through one or more readonly MeasurementSets.
casacore::Int spectralWindowId_p
casacore::Vector< casacore::String > & antennaMounts() const
casacore::Bool newSpectralWindow_p
~VisBufferImplAsync2()
VisBufferAsync2 (const VisBuffer&amp; vb);.
casacore::Vector< casacore::MDirection > azelCached_p
void construct()
void attachToVisIter(VisibilityIterator2 &amp; iter); void checkVisIter (const char * func...
casacore::Block< casacore::Int > channelWidth_p
A 3-D Specialization of the Array class.
virtual casacore::Bool isWritable() const
casacore::IPosition visibilityShape_p
void fill(const casacore::MSIter &msIter)
casacore::MFrequency frequency0_p
VisBufferImplAsync2()
The constructors are not public because creation should be performed by a factory object (e...
casacore::Vector< casacore::Int > selectedSpectralWindows_p
casacore::MDirection phaseCenter_p
casacore::MPosition telescopePosition_p
A Measure: instant in time.
Definition: MEpoch.h:104
casacore::Vector< casacore::Int > selectedNVisibilityChannels_p
casacore::Cube< casacore::Double > receptorAngles_p
casacore::Int newDataDescriptionId_p
A Measure: wave characteristics.
Definition: MFrequency.h:161
casacore::Vector< casacore::Float > parangCached_p
casacore::Int numMS() const
casacore::Vector< casacore::Float > receptor0Angle_p
casacore::Int spectralWindowId() const
casacore::Int msId() const
casacore::Block< casacore::Int > channelStart_p
casacore::Bool newMS() const
const casacore::MeasurementSet * measurementSet_p
casacore::Vector< casacore::Float > feedpaCached_p
casacore::Int dataDescriptionId_p;
casacore::Bool more() const
casacore::Bool allBeamOffsetsZero_p
virtual void copyAsyncValues (const VisBufferAsync2 &amp; other); virtual void copyCache (const VisBuffe...
double Double
Definition: aipstype.h:55
A class to provide easy read-only access to MeasurementSet columns.
Definition: MSColumns.h:111
const casacore::MDirection & phaseCenter() const
casacore::Cube< casacore::RigidVector< casacore::Double, 2 > > beamOffsets_p
const casacore::Vector< casacore::Double > & getBeamOffsets() const
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
casacore::String sourceName_p
const casacore::Matrix< casacore::Double > & receptorAngle() const
casacore::Int dataDescriptionId_p
casacore::Int polFrame() const
casacore::Vector< casacore::String > antennaMounts_p
casacore::Vector< casacore::Double > getBeamOffsets_p
casacore::Int arrayId() const
casacore::String fieldName_p
casacore::MSDerivedValues * msd_p
casacore::Vector< casacore::String > antennaMounts_p
A Table intended to hold astronomical data (a set of Measurements).
casacore::Bool newField() const
casacore::Int fieldId() const
casacore::Block< casacore::Int > channelIncrement_p
An iterator class for MeasurementSets.
Definition: MSIter.h:163
casacore::Block< casacore::Int > channelGroupNumber_p
String: the storage and methods of handling collections of characters.
Definition: String.h:223
casacore::String fieldName() const
casacore::Vector< casacore::Double > selFreq_p
casacore::Int polarizationId_p
const casacore::MPosition & telescopePosition() const
casacore::Bool allBeamOffsetsZero() const
const casacore::MFrequency & frequency0() const
casacore::Int newDataDescriptionId() const
casacore::Int polarizationId() const
VisBufferImpls encapsulate one chunk of visibility data for processing.
casacore::MPosition observatoryPosition_p
const casacore::ScalarColumn&lt;casacore::Int&gt; * obsMFreqTypes_p; // [use]
casacore::Int dataDescriptionId() const
casacore::Bool newSpectralWindow() const
VlaDatum is a single elemement in the VlaDatum buffer ring used to support the VisibilityIterator2Asy...
casacore::Bool newArray() const