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
MSTableIndex()
no index attached, use the attach function or assignment operator to change that
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