casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
casa::MSIter Class Reference

An iterator class for MeasurementSets. More...

#include <MSIter.h>

List of all members.

Public Types

enum  PolFrame {
  Circular,
  Linear
}

Public Member Functions

 MSIter ()
 Default constructor - useful only to assign another iterator later.
 MSIter (const MeasurementSet &ms, const Block< Int > &sortColumns, Double timeInterval=0, Bool addDefaultSortColumns=True)
 Construct from MS and a Block of MS column enums specifying the iteration order, if none are specified, ARRAY_ID, FIELD_ID, DATA_DESC_ID, and TIME iteration is implicit (unless addDefaultSortColumns=False) These columns will be added first if they are not specified.
 MSIter (const Block< MeasurementSet > &mss, const Block< Int > &sortColumns, Double timeInterval=0, Bool addDefaultSortColumns=True)
 Same as above with multiple MSs as input.
 MSIter (const MSIter &other)
 Copy construct.
virtual ~MSIter ()
 Destructor.
MSIteroperator= (const MSIter &other)
 Assigment.
void setInterval (Double timeInterval)
 Set or reset the time interval to use for iteration.
void origin ()
 Reset iterator to start of data.
Bool more () const
 Return False if there is no more data.
MSIteroperator++ (int)
 Advance iterator through data.
MSIteroperator++ ()
Table table () const
 Return the current Table iteration.
const MSms () const
 Return reference to the current MS.
const ROMSColumnsmsColumns () const
 Return reference to the current ROMSColumns.
Int msId () const
 Return the current MS Id (according to the order in which they appeared in the constructor)
Bool newMS () const
 Return true if msId has changed since last iteration.
Int arrayId () const
 Return the current ArrayId.
Bool newArray () const
 Return True if ArrayId has changed since last iteration.
Int fieldId () const
 Return the current FieldId.
const StringfieldName () const
 Return the current Field Name.
const StringsourceName () const
 Return the current Source Name.
Bool newField () const
 Return True if FieldId/Source has changed since last iteration.
Int spectralWindowId () const
 Return current SpectralWindow.
Bool newSpectralWindow () const
 Return True if SpectralWindow has changed since last iteration.
Int dataDescriptionId () const
 Return current DataDescriptionId.
Bool newDataDescriptionId () const
 Return True if DataDescriptionId has changed since last iteration.
Int polarizationId () const
 Return current PolarizationId.
Bool newPolarizationId () const
 Return True if polarization has changed since last iteration.
const MDirectionphaseCenter () const
 Return the current phase center as MDirection.
Int polFrame () const
 Return frame for polarization (returns PolFrame enum)
const Vector< Double > & frequency () const
 Return the frequencies corresponding to the DATA matrix.
const MFrequencyfrequency0 () const
 Return frequency of first channel with reference frame as a Measure.
const MFrequencyrestFrequency (Int line=0) const
 Return the rest frequency of the specified line as a Measure.
const MPositiontelescopePosition () const
 Return the telescope position (if a known telescope) or the position of the first antenna (if unknown)
const Vector< SquareMatrix
< Complex, 2 > > & 
CJones () const
 Return the feed configuration/leakage matrix for feed 0 on each antenna TODO: CJonesAll can be used instead of this method in all instances.
const Matrix< SquareMatrix
< Complex, 2 > > & 
CJonesAll () const
 Return the feed configuration/leakage matrix for all feeds and antennae First axis is antennaId, 2nd axis is feedId.
const Matrix< Double > & receptorAngle () const
 Return the receptor angle for feed 0 on each antenna.
const Cube< Double > & receptorAngles () const
 Return the receptor angles for all feeds and antennae First axis is a receptor number, 2nd axis is antennaId, 3rd axis is feedId.
Int startChan () const
 Return the channel number of the first channel in the DATA.
const Vector< String > & antennaMounts () const
 Return a string mount identifier for each antenna.
const Cube< RigidVector
< Double, 2 > > & 
getBeamOffsets () const
 Return a cube containing pairs of coordinate offset for each receptor of each feed (values are in radians, coordinate system is fixed with antenna and is the same as used to define the BEAM_OFFSET parameter in the feed table).
Bool allBeamOffsetsZero () const
 True if all elements of the cube returned by getBeamOffsets are zero.
void getSpwInFreqRange (Block< Vector< Int > > &spw, Block< Vector< Int > > &start, Block< Vector< Int > > &nchan, Double freqStart, Double freqEnd, Double freqStep)
 Get the spw, start and nchan for all the ms's is this msiter that match the frequecy "freqstart-freqStep" and "freqEnd+freqStep" range.
Int numMS () const
 Get the number of actual ms's associated wth this iterator.
const MSms (const uInt n) const
 Get a reference to the nth ms in the list of ms associated with this iterator.

Protected Member Functions

void construct (const Block< Int > &sortColumns, Bool addDefaultSortColumns)
 handle the construction details
void advance ()
 advance the iteration
void setState ()
 set the iteration state
void setMSInfo ()
void setArrayInfo ()
void setFeedInfo ()
void setDataDescInfo ()
void setFieldInfo ()
Bool isSubSet (const Vector< uInt > &r1, const Vector< uInt > &r2)
 Determine if the numbers in r1 are a sorted subset of those in r2.

Protected Attributes

MSIterThis
Block< MeasurementSetbms_p
PtrBlock< TableIterator * > tabIter_p
Block< BooltabIterAtStart_p
Int nMS_p
ROMSColumnsmsc_p
Table curTable_p
Int curMS_p
Int lastMS_p
Int curArray_p
Int lastArray_p
Int curSource_p
String curFieldName_p
String curSourceName_p
Int curField_p
Int lastField_p
Int curSpectralWindow_p
Int lastSpectralWindow_p
Int curPolarizationId_p
Int lastPolarizationId_p
Int curDataDescId_p
Int lastDataDescId_p
Bool more_p
Bool newMS_p
Bool newArray_p
Bool newField_p
Bool newSpectralWindow_p
Bool newPolarizationId_p
Bool newDataDescId_p
Bool preselected_p
Bool timeDepFeed_p
Bool spwDepFeed_p
Bool checkFeed_p
Int startChan_p
Double interval_p
 time selection
Block< IntpreselectedChanStart_p
 channel selection
Block< IntpreselectednChan_p
ROScalarColumn< IntcolArray_p
 columns
ROScalarColumn< IntcolDataDesc_p
ROScalarColumn< IntcolField_p
MDirection phaseCenter_p
 cache for access functions
Matrix< DoublereceptorAnglesFeed0_p
Cube< DoublereceptorAngles_p
 temporary retained for compatibility contain actually a reference to the first plane of receptorAngles_p
Vector< SquareMatrix< Complex, 2 > > CJonesFeed0_p
Matrix< SquareMatrix< Complex, 2 > > CJones_p
 similar to receptorAngle_p
Vector< StringantennaMounts_p
Cube< RigidVector< Double, 2 > > beamOffsets_p
 antenna (e.g.
Bool allBeamOffsetsZero_p
 each element of the cube in radians) in the antenna coordinate system.
PolFrame polFrame_p
 are zero (to speed things up in a single beam case)
Bool freqCacheOK_p
Vector< Doublefrequency_p
MFrequency frequency0_p
MFrequency restFrequency_p
MPosition telescopePosition_p
MSIntervaltimeComp_p

Detailed Description

An iterator class for MeasurementSets.

Intended use:

Public interface

Prerequisite

Etymology

MSIter stands for the MeasurementSet Iterator class.

Synopsis

An MSIter is a class to traverse a MeasurementSet in various orders. It automatically adds four predefined sort columns to your selection of sort columns (see constructor) so that it can keep track of changes in frequency or polarization setup, field position and sub-array. Note that this can cause iterations to occur in a different way from what you would expect, see examples below. MSIter implements iteration by time interval for the use of e.g., calibration tasks that want to calculate solutions over some interval of time. You can iterate over multiple MeasurementSets with this class.

Example

    // The following code iterates by by ARRAY_ID, FIELD_ID, DATA_DESC_ID and
    // TIME (all implicitly added columns) and then by baseline (antenna pair),
    // in 3000s intervals.
    MeasurementSet ms("3C273XC1.ms"); 
    Block<int> sort(2);
           sort[0] = MS::ANTENNA1;
           sort[1] = MS::ANTENNA2;
    Double timeInterval = 3000;
    MSIter msIter(ms,sort,timeInteval);
    for (msIter.origin(); msIter.more(); msIter++) {
    // print out some of the iteration state
       cout << msIter.fieldId() << endl;
       cout << msIter.fieldName() << endl;
       cout << msIter.dataDescriptionId() << endl;
       cout << msIter.frequency0() << endl;
       cout << msIter.table().nrow() << endl;
       process(msIter.table()); // process the data in the current iteration
    }
    // Output shows only 1 row at a time because the table is sorted on TIME
    // first and ANTENNA1, ANTENNA2 next and each baseline occurs only once per 
    // TIME stamp. The interval has no effect in this case.

Example

    // The following code iterates by baseline (antenna pair), TIME, and,
    // implicitly, by ARRAY_ID, FIELD_ID and DATA_DESC_ID in 3000s
    // intervals.
    MeasurementSet ms("3C273XC1.ms"); 
    Block<int> sort(3);
           sort[0] = MS::ANTENNA1;
           sort[1] = MS::ANTENNA2;
           sort[2] = MS::TIME;
    Double timeInterval = 3000;
    MSIter msIter(ms,sort,timeInteval);
    for (msIter.origin(); msIter.more(); msIter++) {
    // print out some of the iteration state
       cout << msIter.fieldId() << endl;
       cout << msIter.fieldName() << endl;
       cout << msIter.dataDescriptionId() << endl;
       cout << msIter.frequency0() << endl;
       cout << msIter.table().nrow() << endl;
       process(msIter.table()); // process the data in the current iteration
    // Now the output shows 7 rows at a time, all with identical ANTENNA1
    // and ANTENNA2 values and TIME values within a 3000s interval.
    }

Motivation

This class was originally part of the VisibilityIterator class, but that class was getting too large and complicated. By splitting out the toplevel iteration into this class the code is much easier to understand. It is now also available through the ms tool.

Definition at line 161 of file MSIter.h.


Member Enumeration Documentation

Enumerator:
Circular 

Circular polarization.

Linear 

Linear polarization.

Definition at line 164 of file MSIter.h.


Constructor & Destructor Documentation

Default constructor - useful only to assign another iterator later.

Use of other member functions on this object is likely to dump core.

casa::MSIter::MSIter ( const MeasurementSet ms,
const Block< Int > &  sortColumns,
Double  timeInterval = 0,
Bool  addDefaultSortColumns = True 
)

Construct from MS and a Block of MS column enums specifying the iteration order, if none are specified, ARRAY_ID, FIELD_ID, DATA_DESC_ID, and TIME iteration is implicit (unless addDefaultSortColumns=False) These columns will be added first if they are not specified.

An optional timeInterval can be given to iterate through chunks of time. The default interval of 0 groups all times together. Every 'chunk' of data contains all data within a certain time interval and with identical values of the other iteration columns (e.g. DATA_DESCRIPTION_ID and FIELD_ID). See the examples above for the effect of different sort orders.

casa::MSIter::MSIter ( const Block< MeasurementSet > &  mss,
const Block< Int > &  sortColumns,
Double  timeInterval = 0,
Bool  addDefaultSortColumns = True 
)

Same as above with multiple MSs as input.

casa::MSIter::MSIter ( const MSIter other)

Copy construct.

This calls the assigment operator.

virtual casa::MSIter::~MSIter ( ) [virtual]

Destructor.


Member Function Documentation

void casa::MSIter::advance ( ) [protected]

advance the iteration

True if all elements of the cube returned by getBeamOffsets are zero.

Definition at line 456 of file MSIter.h.

References allBeamOffsetsZero_p.

Referenced by casa::VisibilityIteratorReadImpl::allBeamOffsetsZero().

const Vector< String > & casa::MSIter::antennaMounts ( ) const [inline]

Return a string mount identifier for each antenna.

Definition at line 451 of file MSIter.h.

References antennaMounts_p.

Referenced by casa::VisibilityIteratorReadImpl::antennaMounts().

Int casa::MSIter::arrayId ( ) const [inline]

Return the current ArrayId.

Definition at line 428 of file MSIter.h.

References curArray_p.

Referenced by casa::VisibilityIteratorReadImpl::arrayId().

const Vector< SquareMatrix< Complex, 2 > > & casa::MSIter::CJones ( ) const [inline]

Return the feed configuration/leakage matrix for feed 0 on each antenna TODO: CJonesAll can be used instead of this method in all instances.

Definition at line 443 of file MSIter.h.

References CJonesFeed0_p.

Referenced by casa::VisibilityIteratorReadImpl::CJones().

const Matrix< SquareMatrix< Complex, 2 > > & casa::MSIter::CJonesAll ( ) const [inline]

Return the feed configuration/leakage matrix for all feeds and antennae First axis is antennaId, 2nd axis is feedId.

Result of CJones() is a reference to the first column of the matrix returned by this method

Definition at line 445 of file MSIter.h.

References CJones_p.

void casa::MSIter::construct ( const Block< Int > &  sortColumns,
Bool  addDefaultSortColumns 
) [protected]

handle the construction details

Return current DataDescriptionId.

Definition at line 435 of file MSIter.h.

References curDataDescId_p.

Referenced by casa::VisibilityIteratorReadImpl::dataDescriptionId().

Int casa::MSIter::fieldId ( ) const [inline]

Return the current FieldId.

Definition at line 429 of file MSIter.h.

References curField_p.

Referenced by casa::VisibilityIteratorReadImpl::fieldId().

const String & casa::MSIter::fieldName ( ) const [inline]

Return the current Field Name.

Definition at line 430 of file MSIter.h.

References curFieldName_p.

Referenced by casa::VisibilityIteratorReadImpl::fieldName().

Return the frequencies corresponding to the DATA matrix.

Return frequency of first channel with reference frame as a Measure.

The reference frame Epoch is that of the first row, reset it as needed for each row. The reference frame Position is the average of the antenna positions.

const Cube< RigidVector< Double, 2 > > & casa::MSIter::getBeamOffsets ( ) const [inline]

Return a cube containing pairs of coordinate offset for each receptor of each feed (values are in radians, coordinate system is fixed with antenna and is the same as used to define the BEAM_OFFSET parameter in the feed table).

The cube axes are receptor, antenna, feed.

Definition at line 453 of file MSIter.h.

References beamOffsets_p.

Referenced by casa::VisibilityIteratorReadImpl::getBeamOffsets().

void casa::MSIter::getSpwInFreqRange ( Block< Vector< Int > > &  spw,
Block< Vector< Int > > &  start,
Block< Vector< Int > > &  nchan,
Double  freqStart,
Double  freqEnd,
Double  freqStep 
)

Get the spw, start and nchan for all the ms's is this msiter that match the frequecy "freqstart-freqStep" and "freqEnd+freqStep" range.

Bool casa::MSIter::isSubSet ( const Vector< uInt > &  r1,
const Vector< uInt > &  r2 
) [protected]

Determine if the numbers in r1 are a sorted subset of those in r2.

Bool casa::MSIter::more ( ) const [inline]

Return False if there is no more data.

Definition at line 417 of file MSIter.h.

References more_p.

Referenced by casa::VisibilityIteratorReadImpl::moreChunks(), and casa::ViReadImplAsync::newMS().

const MS & casa::MSIter::ms ( ) const [inline]

Return reference to the current MS.

Definition at line 419 of file MSIter.h.

References bms_p, and curMS_p.

Referenced by casa::VisibilityIteratorReadImpl::ms().

const MS& casa::MSIter::ms ( const uInt  n) const

Get a reference to the nth ms in the list of ms associated with this iterator.

If larger than the list of ms's current ms is returned So better check wth numMS() before making the call

const ROMSColumns & casa::MSIter::msColumns ( ) const [inline]

Return reference to the current ROMSColumns.

Definition at line 420 of file MSIter.h.

References msc_p.

Referenced by casa::VisibilityIteratorReadImpl::msColumns().

Int casa::MSIter::msId ( ) const [inline]

Return the current MS Id (according to the order in which they appeared in the constructor)

Definition at line 426 of file MSIter.h.

References curMS_p.

Referenced by casa::VisibilityIteratorReadImpl::msId().

Bool casa::MSIter::newArray ( ) const [inline]

Return True if ArrayId has changed since last iteration.

Definition at line 422 of file MSIter.h.

References newArray_p.

Referenced by casa::VisibilityIteratorReadImpl::newArrayId().

Return True if DataDescriptionId has changed since last iteration.

Definition at line 437 of file MSIter.h.

References newDataDescId_p.

Bool casa::MSIter::newField ( ) const [inline]

Return True if FieldId/Source has changed since last iteration.

Definition at line 423 of file MSIter.h.

References newField_p.

Referenced by casa::VisibilityIteratorReadImpl::newFieldId().

Bool casa::MSIter::newMS ( ) const [inline]

Return true if msId has changed since last iteration.

Definition at line 421 of file MSIter.h.

References newMS_p.

Referenced by casa::VisibilityIteratorReadImpl::newMS().

Return True if polarization has changed since last iteration.

Definition at line 436 of file MSIter.h.

References newPolarizationId_p.

Return True if SpectralWindow has changed since last iteration.

Definition at line 424 of file MSIter.h.

References newSpectralWindow_p.

Referenced by casa::VisibilityIteratorReadImpl::newSpectralWindow().

Int casa::MSIter::numMS ( ) const [inline]

Get the number of actual ms's associated wth this iterator.

Definition at line 427 of file MSIter.h.

References nMS_p.

MSIter& casa::MSIter::operator++ ( int  )

Advance iterator through data.

MSIter& casa::MSIter::operator++ ( )
MSIter& casa::MSIter::operator= ( const MSIter other)

Assigment.

This will reset the iterator to the origin.

Reset iterator to start of data.

const MDirection & casa::MSIter::phaseCenter ( ) const [inline]

Return the current phase center as MDirection.

Definition at line 439 of file MSIter.h.

References phaseCenter_p.

Referenced by casa::VisibilityIteratorReadImpl::phaseCenter().

Int casa::MSIter::polarizationId ( ) const [inline]

Return current PolarizationId.

Definition at line 434 of file MSIter.h.

References curPolarizationId_p.

Referenced by casa::VisibilityIteratorReadImpl::polarizationId().

Int casa::MSIter::polFrame ( ) const [inline]

Return frame for polarization (returns PolFrame enum)

Definition at line 438 of file MSIter.h.

References polFrame_p.

Referenced by casa::VisibilityIteratorReadImpl::polFrame().

const Matrix< Double > & casa::MSIter::receptorAngle ( ) const [inline]

Return the receptor angle for feed 0 on each antenna.

First axis is receptor number, 2nd axis is antennaId. TODO: receptorAngles() can be used instead of this method

Definition at line 447 of file MSIter.h.

References receptorAnglesFeed0_p.

const Cube< Double > & casa::MSIter::receptorAngles ( ) const [inline]

Return the receptor angles for all feeds and antennae First axis is a receptor number, 2nd axis is antennaId, 3rd axis is feedId.

Result of receptorAngle() is just a reference to the first plane of the cube returned by this method

Definition at line 449 of file MSIter.h.

References receptorAngles_p.

Referenced by casa::VisibilityIteratorReadImpl::receptorAngles().

const MFrequency& casa::MSIter::restFrequency ( Int  line = 0) const

Return the rest frequency of the specified line as a Measure.

void casa::MSIter::setArrayInfo ( ) [protected]
void casa::MSIter::setDataDescInfo ( ) [protected]
void casa::MSIter::setFeedInfo ( ) [protected]
void casa::MSIter::setFieldInfo ( ) [protected]
void casa::MSIter::setInterval ( Double  timeInterval)

Set or reset the time interval to use for iteration.

You should call origin() to reset the iteration after calling this.

Referenced by casa::VisibilityIteratorReadImpl::setInterval().

void casa::MSIter::setMSInfo ( ) [protected]
void casa::MSIter::setState ( ) [protected]

set the iteration state

const String & casa::MSIter::sourceName ( ) const [inline]

Return the current Source Name.

Definition at line 431 of file MSIter.h.

References curSourceName_p.

Referenced by casa::VisibilityIteratorReadImpl::sourceName().

Int casa::MSIter::spectralWindowId ( ) const [inline]
Int casa::MSIter::startChan ( ) const [inline]

Return the channel number of the first channel in the DATA.

(non-zero for reference MS created by VisSet with channel selection)

Definition at line 455 of file MSIter.h.

References startChan_p.

Table casa::MSIter::table ( ) const [inline]

Return the current Table iteration.

Definition at line 418 of file MSIter.h.

References curTable_p.

Referenced by casa::VisibilityIteratorReadImpl::nRowChunk().

const MPosition & casa::MSIter::telescopePosition ( ) const [inline]

Return the telescope position (if a known telescope) or the position of the first antenna (if unknown)

Definition at line 441 of file MSIter.h.

References telescopePosition_p.


Member Data Documentation

each element of the cube in radians) in the antenna coordinate system.

Cube axes are: receptor, antenna, feed.

Definition at line 403 of file MSIter.h.

Referenced by allBeamOffsetsZero().

Definition at line 397 of file MSIter.h.

Referenced by antennaMounts().

antenna (e.g.

EQUATORIAL, ALT-AZ,...)

Definition at line 399 of file MSIter.h.

Referenced by getBeamOffsets().

Definition at line 362 of file MSIter.h.

Referenced by ms().

Definition at line 374 of file MSIter.h.

Matrix<SquareMatrix<Complex,2> > casa::MSIter::CJones_p [protected]

similar to receptorAngle_p

Definition at line 396 of file MSIter.h.

Referenced by CJonesAll().

Definition at line 394 of file MSIter.h.

Referenced by CJones().

columns

Definition at line 385 of file MSIter.h.

Definition at line 385 of file MSIter.h.

Definition at line 385 of file MSIter.h.

Definition at line 369 of file MSIter.h.

Referenced by arrayId().

Definition at line 373 of file MSIter.h.

Referenced by dataDescriptionId().

Definition at line 371 of file MSIter.h.

Referenced by fieldId().

Definition at line 370 of file MSIter.h.

Referenced by fieldName().

Definition at line 369 of file MSIter.h.

Referenced by ms(), and msId().

Definition at line 372 of file MSIter.h.

Referenced by polarizationId().

Definition at line 369 of file MSIter.h.

Definition at line 370 of file MSIter.h.

Referenced by sourceName().

Definition at line 371 of file MSIter.h.

Referenced by spectralWindowId().

Definition at line 368 of file MSIter.h.

Referenced by table().

Definition at line 407 of file MSIter.h.

Definition at line 409 of file MSIter.h.

Definition at line 408 of file MSIter.h.

time selection

Definition at line 380 of file MSIter.h.

Definition at line 369 of file MSIter.h.

Definition at line 373 of file MSIter.h.

Definition at line 371 of file MSIter.h.

Definition at line 369 of file MSIter.h.

Definition at line 372 of file MSIter.h.

Definition at line 371 of file MSIter.h.

Definition at line 374 of file MSIter.h.

Referenced by more().

Definition at line 367 of file MSIter.h.

Referenced by msColumns().

Definition at line 374 of file MSIter.h.

Referenced by newArray().

Definition at line 374 of file MSIter.h.

Referenced by newDataDescriptionId().

Definition at line 374 of file MSIter.h.

Referenced by newField().

Definition at line 374 of file MSIter.h.

Referenced by newMS().

Definition at line 374 of file MSIter.h.

Referenced by newPolarizationId().

Definition at line 374 of file MSIter.h.

Referenced by newSpectralWindow().

Int casa::MSIter::nMS_p [protected]

Definition at line 366 of file MSIter.h.

Referenced by numMS().

cache for access functions

Definition at line 388 of file MSIter.h.

Referenced by phaseCenter().

are zero (to speed things up in a single beam case)

Definition at line 406 of file MSIter.h.

Referenced by polFrame().

Definition at line 374 of file MSIter.h.

channel selection

Definition at line 382 of file MSIter.h.

Definition at line 382 of file MSIter.h.

temporary retained for compatibility contain actually a reference to the first plane of receptorAngles_p

Definition at line 393 of file MSIter.h.

Referenced by receptorAngles().

Definition at line 389 of file MSIter.h.

Referenced by receptorAngle().

Definition at line 410 of file MSIter.h.

Definition at line 374 of file MSIter.h.

Definition at line 377 of file MSIter.h.

Referenced by startChan().

Definition at line 363 of file MSIter.h.

Definition at line 364 of file MSIter.h.

Definition at line 411 of file MSIter.h.

Referenced by telescopePosition().

MSIter* casa::MSIter::This [protected]

Definition at line 361 of file MSIter.h.

Definition at line 413 of file MSIter.h.

Definition at line 374 of file MSIter.h.


The documentation for this class was generated from the following file: