casacore
Loading...
Searching...
No Matches
MSFeedIndex.h
Go to the documentation of this file.
1//# MSFeedIndex: index into a MeasurementSet FEED subtable
2//# Copyright (C) 2000,2001,2002
3//# Associated Universities, Inc. Washington DC, USA.
4//#
5//# This library is free software; you can redistribute it and/or modify it
6//# under the terms of the GNU Library General Public License as published by
7//# the Free Software Foundation; either version 2 of the License, or (at your
8//# option) any later version.
9//#
10//# This library is distributed in the hope that it will be useful, but WITHOUT
11//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13//# License for more details.
14//#
15//# You should have received a copy of the GNU Library General Public License
16//# along with this library; if not, write to the Free Software Foundation,
17//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18//#
19//# Correspondence concerning AIPS++ should be addressed as follows:
20//# Internet email: casa-feedback@nrao.edu.
21//# Postal address: AIPS++ Project Office
22//# National Radio Astronomy Observatory
23//# 520 Edgemont Road
24//# Charlottesville, VA 22903-2475 USA
25
26#ifndef MS_MSFEEDINDEX_H
27#define MS_MSFEEDINDEX_H
28
29#include <casacore/casa/aips.h>
30#include <casacore/ms/MSSel/MSTableIndex.h>
31
32#include <casacore/ms/MeasurementSets/MSFeedColumns.h>
33#include <casacore/casa/Containers/RecordField.h>
34
35namespace casacore { //# NAMESPACE CASACORE - BEGIN
36
37//# forward declarations
38class MSFeed;
39
40// <summary>
41// </summary>
42
43// <use visibility=export>
44
45// <reviewed reviewer="" date="yyyy/mm/dd" tests="" demos="">
46// </reviewed>
47
48// <prerequisite>
49// <li> MeasurementSet
50// <li> MSTableIndex
51// </prerequisite>
52//
53// <etymology>
54// </etymology>
55//
56// <synopsis>
57// </synopsis>
58//
59// <example>
60// </example>
61//
62// <motivation>
63// </motivation>
64//
65// <thrown>
66// <li>
67// <li>
68// </thrown>
69//
70
72{
73public:
74 // no index attached, use the attach function or assignment operator to change that
76
77 // construct one using the indicated FEED table
78 MSFeedIndex(const MSFeed &feed);
79
80 // construct one from another
81 MSFeedIndex(const MSFeedIndex &other);
82
83 virtual ~MSFeedIndex();
84
86
87 void attach(const MSFeed &feed);
88
89 // access to the antenna ID key, throws an exception if isNull() is False
91
92 // access to the feed ID key, throws an exception if isNull() is False
93 Int &feedId() {return *feedId_p;}
94
95 // access to the spectral window ID key, throws an exception if isNull() is False
97
98 // return feed id.'s (and associated row numbers) for a given antenna id.,
99 // polzn type and receptor angle
101 const Vector<String>& polznType,
102 const Vector<Float>& receptorAngle,
103 const Float& tol,
104 Vector<Int>& rowNumbers);
105
106 // return feed id.'s (and associated row numbers) for a given antenna id.
108
109 // return valid feed id.'s for a given list of feed id.'s.
111
112protected:
113 // the specialized compare function to pass to the
114 // <linkto class=ColumnsIndex>ColumnsIndex</linkto> object. This supports -1
115 // values for the SPECTRAL_WINDOW_ID
116 static Int compare (const Block<void*>& fieldPtrs,
117 const Block<void*>& dataPtrs,
118 const Block<Int>& dataTypes,
119 rownr_t index);
120
121private:
123
124 // Pointer to FEED columns accessor
126
127 void attachIds();
128};
129
130
131} //# NAMESPACE CASACORE - END
132
133#endif
134
simple 1-D array
Definition Block.h:198
MSFeedColumns * msFeedCols_p
Pointer to FEED columns accessor.
RecordFieldPtr< Int > antennaId_p
MSFeedIndex()
no index attached, use the attach function or assignment operator to change that
Vector< Int > matchAntennaId(const Int &antennaId, Vector< Int > &rowNumbers)
return feed id.
RecordFieldPtr< Int > spwId_p
Vector< Int > matchFeedId(const Vector< Int > &sourceId)
return valid feed id.
Int & antennaId()
access to the antenna ID key, throws an exception if isNull() is False
Definition MSFeedIndex.h:90
Int & spectralWindowId()
access to the spectral window ID key, throws an exception if isNull() is False
Definition MSFeedIndex.h:96
RecordFieldPtr< Int > feedId_p
void attach(const MSFeed &feed)
Vector< Int > matchFeedPolznAndAngle(const Int &antennaId, const Vector< String > &polznType, const Vector< Float > &receptorAngle, const Float &tol, Vector< Int > &rowNumbers)
return feed id.
MSFeedIndex(const MSFeedIndex &other)
construct one from another
static Int compare(const Block< void * > &fieldPtrs, const Block< void * > &dataPtrs, const Block< Int > &dataTypes, rownr_t index)
the specialized compare function to pass to the ColumnsIndex object.
MSFeedIndex & operator=(const MSFeedIndex &other)
Int & feedId()
access to the feed ID key, throws an exception if isNull() is False
Definition MSFeedIndex.h:93
MSFeedIndex(const MSFeed &feed)
construct one using the indicated FEED table
this file contains all the compiler specific defines
Definition mainpage.dox:28
float Float
Definition aipstype.h:52
int Int
Definition aipstype.h:48
uInt64 rownr_t
Define the type of a row number in a table.
Definition aipsxtype.h:44