diff --git a/cpp/circularsymmetric/vlabeam.cc b/cpp/circularsymmetric/vlabeam.cc index e5d9145b958caa420ed987fe32ffe905e58100f1..d8bd3d3cec846d2fe189f157087b11ad7a006504 100644 --- a/cpp/circularsymmetric/vlabeam.cc +++ b/cpp/circularsymmetric/vlabeam.cc @@ -22,56 +22,51 @@ std::array<double, 5> VLABeam::GetCoefficients(const std::string& bandName, const std::array<double, 5>* coeff; double freqMHz = freq * 1e-6; - double freqUsed = freq * 1e-6; std::map<int, std::array<double, 5>>::iterator low, prev; low = coeffmap.lower_bound(freqMHz); if (low == coeffmap.end()) { --low; coeff = &low->second; - freqUsed = low->first; } else if (low == coeffmap.begin()) { coeff = &low->second; - freqUsed = low->first; } else { prev = low; --prev; if (std::fabs(freqMHz - prev->first) < std::fabs(low->first - freqMHz)) { coeff = &prev->second; - freqUsed = prev->first; } else { coeff = &low->second; - freqUsed = low->first; } } return *coeff; } -char VLABeam::DetermineFeed(double freq, double freqCenter) { - if ((freqCenter > 224e6 && freqCenter < 480e6) || +char VLABeam::DetermineFeed(double freq, double freq_center) { + if ((freq_center > 224e6 && freq_center < 480e6) || (freq > 224e6 && freq < 480e6)) return 'P'; - if ((freqCenter > 900e6 && freqCenter < 2003.0e6) || + if ((freq_center > 900e6 && freq_center < 2003.0e6) || (freq > 900e6 && freq < 2003e6)) return 'L'; - if ((freqCenter > 1990e6 && freqCenter < 4001.0e6) || + if ((freq_center > 1990e6 && freq_center < 4001.0e6) || (freq > 1990e6 && freq < 4001e6)) return 'S'; - if ((freqCenter > 3990e6 && freqCenter < 8001.0e6) || + if ((freq_center > 3990e6 && freq_center < 8001.0e6) || (freq > 3990e6 && freq < 8001e6)) return 'C'; - if ((freqCenter > 7990e6 && freqCenter < 12001.0e6) || + if ((freq_center > 7990e6 && freq_center < 12001.0e6) || (freq > 7990e6 && freq < 12001e6)) return 'X'; - if ((freqCenter > 12000e6 && freqCenter < 18000.0e6) || + if ((freq_center > 12000e6 && freq_center < 18000.0e6) || (freq > 12000e6 && freq < 18000e6)) return 'U'; - if ((freqCenter > 19000e6 && freqCenter < 26000.0e6) || + if ((freq_center > 19000e6 && freq_center < 26000.0e6) || (freq > 19000e6 && freq < 26000e6)) return 'K'; - if ((freqCenter > 28000e6 && freqCenter < 38000.0e6) || + if ((freq_center > 28000e6 && freq_center < 38000.0e6) || (freq > 28000e6 && freq < 38000e6)) return 'A'; - if ((freqCenter > 41000e6 && freqCenter < 50000.0e6) || + if ((freq_center > 41000e6 && freq_center < 50000.0e6) || (freq > 41000e6 && freq < 50000e6)) return 'Q'; diff --git a/cpp/circularsymmetric/vlabeam.h b/cpp/circularsymmetric/vlabeam.h index 734c6484344a6fd062566c4a9b18cf78abc94b99..33477d180dc52919bfa19c3bb57cef225418a4e7 100644 --- a/cpp/circularsymmetric/vlabeam.h +++ b/cpp/circularsymmetric/vlabeam.h @@ -15,7 +15,7 @@ class VLABeam { private: static std::map<int, std::array<double, 5>> GetCoefficients(); static std::map<char, double> GetFeedConf(); - static char DetermineFeed(double freq, double freqCenter = 0.0); + static char DetermineFeed(double freq, double freq_center = 0.0); static void LimitFreqForBand(char band, double& freq); }; } // namespace circularsymmetric diff --git a/cpp/circularsymmetric/voltagepattern.cc b/cpp/circularsymmetric/voltagepattern.cc index 5d461f702a84a7a00ab5130e08499d9bd6112905..bb7874cd36b97848633a2afb6e22a958bdbc2ad6 100644 --- a/cpp/circularsymmetric/voltagepattern.cc +++ b/cpp/circularsymmetric/voltagepattern.cc @@ -89,61 +89,6 @@ double VoltagePattern::LmMaxSquared(double frequency_hz) const { return rmax * rmax; } -// void VoltagePattern::Render(PrimaryBeamImageSet& beamImages, double -// pixel_scale_x, -// double pixel_scale_y, double phase_centre_ra, -// double phase_centre_dec, double pointing_ra, -// double pointing_dec, double phase_centre_dl, -// double phase_centre_dm, double frequency_hz) -// const { -// size_t width = beamImages.Width(), height = beamImages.Height(); -// double lmMaxSq = LmMaxSquared(frequency_hz); - -// UVector<double> interpolated_values; -// const double* vp = InterpolateValues(frequency_hz, interpolated_values); - -// double factor = -// (180.0 / M_PI) * 60.0 * frequency_hz * 1.0e-9; // arcminutes * GHz -// double l0, m0; -// ImageCoordinates::RaDecToLM(pointing_ra, pointing_dec, phase_centre_ra, -// phase_centre_dec, l0, m0); -// l0 += phase_centre_dl; -// m0 += phase_centre_dm; -// size_t imgIndex = 0; -// // Logger::Debug << "Interpolating 1D voltage pattern to output -// image...\n"; -// for (size_t iy = 0; iy != height; ++iy) { -// for (size_t ix = 0; ix != width; ++ix) { -// double l, m, ra, dec; -// ImageCoordinates::XYToLM(ix, iy, pixel_scale_x, pixel_scale_y, width, -// height, -// l, m); -// l += phase_centre_dl; -// m += m0; -// ImageCoordinates::LMToRaDec(l, m, phase_centre_ra, phase_centre_dec, -// ra, dec); ImageCoordinates::RaDecToLM(ra, dec, pointing_ra, -// pointing_dec, l, m); l -= l0; m -= m0; double r2 = l * l + m * m; -// double out; if (r2 > lmMaxSq) { -// out = 0.0; -// } else { -// double r = std::sqrt(r2) * factor; -// int indx = int(r * inverse_increment_radius_); -// out = vp[indx]; -// } - -// beamImages[0][imgIndex] = out; -// beamImages[1][imgIndex] = 0.0; -// beamImages[2][imgIndex] = 0.0; -// beamImages[3][imgIndex] = 0.0; -// beamImages[4][imgIndex] = 0.0; -// beamImages[5][imgIndex] = 0.0; -// beamImages[6][imgIndex] = out; -// beamImages[7][imgIndex] = 0.0; -// ++imgIndex; -// } -// } -// } - void VoltagePattern::Render(std::complex<float>* aterm, size_t width, size_t height, double pixel_scale_x, double pixel_scale_y, double phase_centre_ra, diff --git a/cpp/circularsymmetric/voltagepattern.h b/cpp/circularsymmetric/voltagepattern.h index 756f98a3c1e59f5e4808799c3375fa5d60237559..5044ff54d3032b280918681ed5c8161286e7897f 100644 --- a/cpp/circularsymmetric/voltagepattern.h +++ b/cpp/circularsymmetric/voltagepattern.h @@ -24,12 +24,6 @@ class VoltagePattern { void EvaluatePolynomial(const aocommon::UVector<double>& coefficients, bool invert); - // void Render(class PrimaryBeamImageSet& beamImages, double pixel_scale_x, - // double pixel_scale_y, double phase_centre_ra, double - // phase_centre_dec, double pointing_ra, double pointing_dec, - // double phase_centre_dl, double phase_centre_dm, double - // frequency_hz) const; - void Render(std::complex<float>* aterm, size_t width, size_t height, double pixel_scale_x, double pixel_scale_y, double phase_centre_ra, double phase_centre_dec, diff --git a/cpp/griddedresponse/griddedresponse.h b/cpp/griddedresponse/griddedresponse.h index 0f97cd3766a1cbd87ae2a1075388da57f4ea5abe..ca158f6078e7ac94691aa7fa6ad2975fdbe7cb42 100644 --- a/cpp/griddedresponse/griddedresponse.h +++ b/cpp/griddedresponse/griddedresponse.h @@ -60,7 +60,7 @@ class GriddedResponse { */ virtual void CalculateStation(std::complex<float>* buffer, double time, double freq, const size_t station_idx, - const size_t field_id = 0) = 0; + const size_t field_id) = 0; /** * @brief Compute the Beam response for all stations in a Telescope @@ -72,7 +72,7 @@ class GriddedResponse { */ virtual void CalculateAllStations(std::complex<float>* buffer, double time, double frequency, - const size_t field_id = 0) = 0; + const size_t field_id) = 0; std::size_t GetBufferSize(std::size_t nstations) { return std::size_t(nstations * width_ * height_ * 2 * 2); diff --git a/cpp/griddedresponse/lofargrid.h b/cpp/griddedresponse/lofargrid.h index e8d8f94c6d419a8986668a9e6d23c4c5c9ec19b8..50f9a515b3ba1e65bfe973f9bb623ff352f49cd7 100644 --- a/cpp/griddedresponse/lofargrid.h +++ b/cpp/griddedresponse/lofargrid.h @@ -62,7 +62,7 @@ class LOFARGrid final : public GriddedResponse { */ void CalculateStation(std::complex<float>* buffer, double time, double frequency, const size_t station_idx, - const size_t) override; + const size_t field_id) override; /** * @brief Compute the Beam response for all stations in a Telescope @@ -73,7 +73,7 @@ class LOFARGrid final : public GriddedResponse { * @param freq Frequency (Hz) */ void CalculateAllStations(std::complex<float>* buffer, double time, - double frequency, const size_t) override; + double frequency, const size_t field_id) override; private: casacore::MDirection delay_dir_, tile_beam_dir_, preapplied_beam_dir_; diff --git a/cpp/test/tload_lofar.cc b/cpp/test/tload_lofar.cc index 4958df8defcfaa453879ed2fe3f47356104fb7ab..3c3b573ffc74ffad1526b22e6ef77d5d46399767 100644 --- a/cpp/test/tload_lofar.cc +++ b/cpp/test/tload_lofar.cc @@ -58,7 +58,7 @@ BOOST_AUTO_TEST_CASE(load_lofar) { std::vector<std::complex<float>> antenna_buffer_single( grid_response->GetBufferSize(1)); grid_response->CalculateStation(antenna_buffer_single.data(), time, frequency, - 23); + 23, 0); BOOST_CHECK_EQUAL(antenna_buffer_single.size(), std::size_t(width * height * 2 * 2)); @@ -91,7 +91,7 @@ BOOST_AUTO_TEST_CASE(load_lofar) { std::vector<std::complex<float>> antenna_buffer_all( grid_response->GetBufferSize(telescope->GetNrStations())); grid_response->CalculateAllStations(antenna_buffer_all.data(), time, - frequency); + frequency, 0); BOOST_CHECK_EQUAL( antenna_buffer_all.size(), std::size_t(telescope->GetNrStations() * width * height * 2 * 2)); @@ -110,7 +110,7 @@ BOOST_AUTO_TEST_CASE(load_lofar) { std::vector<std::complex<float>> antenna_buffer_diff_beam( grid_response_diff_beam->GetBufferSize(1)); grid_response_diff_beam->CalculateStation(antenna_buffer_diff_beam.data(), - time, frequency, 15); + time, frequency, 15, 0); double norm_jones_mat = 0.; for (std::size_t i = 0; i < 4; ++i) { diff --git a/cpp/test/tvla.cc b/cpp/test/tvla.cc index 4a4da0bc8de7e778ee8d7598099f6916c0e7be9d..8711a8473093d411224eadac33bbd87908aff743 100644 --- a/cpp/test/tvla.cc +++ b/cpp/test/tvla.cc @@ -45,7 +45,8 @@ BOOST_AUTO_TEST_CASE(load_vla) { std::vector<std::complex<float>> antenna_buffer( grid_response->GetBufferSize(telescope->GetNrStations())); - grid_response->CalculateAllStations(antenna_buffer.data(), time, frequency); + grid_response->CalculateAllStations(antenna_buffer.data(), time, frequency, + 0); // Check that XX/YY are equal // Loop over pixels to check that off-diagonals are 0