3 #ifndef CARMA_UI_RTD_ANTENNAMAPPER_H
4 #define CARMA_UI_RTD_ANTENNAMAPPER_H
16 #include "carma/monitor/SignalPathSubsystem.h"
18 #include "carma/szautil/Angle.h"
19 #include "carma/szautil/Frequency.h"
20 #include "carma/szautil/Length.h"
51 sza::util::Frequency frequency_;
52 sza::util::Length diameter_;
54 std::vector<Antenna*>* antennasBySubarray_;
55 std::vector<Antenna*>* antennasByType_;
57 Antenna(
unsigned carmaAntNo) {
59 carmaAntNo_ = carmaAntNo;
64 typeAntNo_ = carmaAntNo_;
65 diameter_.setMeters(10.4);
66 }
else if(carmaAntNo_ < 16) {
68 typeAntNo_ = carmaAntNo_ - 6;
69 diameter_.setMeters(6.1);
72 typeAntNo_ = carmaAntNo_ - 15;
73 diameter_.setMeters(3.5);
79 sza::util::Angle beamFwhm(sza::util::Frequency freq) {
80 sza::util::Angle fwhm;
81 fwhm.setRadians(1.2 * freq.centimeters() / diameter_.centimeters());
95 virtual ~AntennaMapper();
97 void rebuildSubarrayMaps();
98 void initializeTypeMaps();
99 bool mapsNeedRebuilding();
100 void printSubarrayMaps();
102 Antenna* getAntenna(
AntennaType type,
unsigned iAnt);
104 friend std::ostream& operator<<(std::ostream& os,
AntennaType& type);
108 carma::monitor::SignalPathSubsystem::Mapping* mappingMs_;
111 std::vector<Antenna*> antennas_;
112 static const unsigned nAntenna_;
113 static const unsigned nOvro_;
114 static const unsigned nBima_;
115 static const unsigned nSza_;
117 std::vector<Antenna*> subarray0Map_;
118 std::vector<Antenna*> subarray1Map_;
119 std::vector<Antenna*> subarray2Map_;
120 std::vector<Antenna*> subarray3Map_;
121 std::vector<Antenna*> subarray4Map_;
122 std::vector<Antenna*> subarray5Map_;
124 std::vector<Antenna*> szaMap_;
125 std::vector<Antenna*> bimaMap_;
126 std::vector<Antenna*> ovroMap_;
128 std::map<unsigned, std::vector<Antenna*>* > antennaMapsBySubarray_;
129 std::map<AntennaType, std::vector<Antenna*>* > antennaMapsByType_;
141 #endif // End #ifndef CARMA_UI_RTD_ANTENNAMAPPER_H
The monitor system base class.
AntennaType
Enumeration of possible types for antennas.