everybeam::pointresponse

namespace pointresponse
class AartfaacPoint : public PhasedArrayPoint
#include <aartfaacpoint.h>

Class for computing the AARTFAAC response for given (ra, dec) coordinate. Class exploits the fact that the station response is identical for all stations within an AARTFAAC observation.

Public Functions

inline AartfaacPoint(const telescope::Telescope *telescope_ptr, double time)
Parameters:
  • telescope_ptr – Pointer to telescope::LOFAR object

  • time – Time, modified Julian date, UTC, in seconds (MJD(UTC), s)

inline virtual void ResponseAllStations(BeamMode beam_mode, std::complex<float> *buffer, double ra, double dec, double freq, size_t field_id) override

Same as Response, but now iterate over all stations in measurement set.

Parameters:
  • beam_mode – Selects beam mode (element, array factor or full)

  • response_matrices – Buffer with a size of 4 * nr_stations complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • field_id – Field index as used in the measurement set

class AiryPoint : public PointResponse
#include <airypoint.h>

Class for computing the directional response of telescopes with an Airy Disc response, e.g. ALMA.

Public Functions

inline AiryPoint(const telescope::Telescope *telescope_ptr, double time, std::vector<common::AiryParameters> airy_parameters, std::vector<std::pair<double, double>> directions, bool is_homogeneous)
virtual void Response(BeamMode beam_mode, std::complex<float> *buffer, double ra, double dec, double freq, size_t station_idx, size_t field_id) override

Get beam response for a given station at a prescribed ra, dec position.

Parameters:
  • beam_mode – Selects beam mode (BeamMode::kElement, BeamMode::kArrayFactor or BeamMode::kFull)

  • response_matrix – Buffer with a size of 4 complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • station_id – Station index, corresponding to measurement set antenna index.

  • field_id – Field index as used in the measurement set

virtual void ResponseAllStations(BeamMode beam_mode, std::complex<float> *buffer, double ra, double dec, double freq, size_t field_id) override

Same as Response, but now iterate over all stations in measurement set.

Parameters:
  • beam_mode – Selects beam mode (element, array factor or full)

  • response_matrices – Buffer with a size of 4 * nr_stations complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • field_id – Field index as used in the measurement set

class DishPoint : public PointResponse
#include <dishpoint.h>

Class for computing the directional response of dish telescopes, e.g. VLA, ATCA.

Public Functions

DishPoint(const telescope::Dish &dish, double time)
virtual void Response(BeamMode beam_mode, std::complex<float> *buffer, double ra, double dec, double freq, size_t station_idx, size_t field_id) override

Get beam response for a given station at a prescribed ra, dec position.

Parameters:
  • beam_mode – Selects beam mode (BeamMode::kElement, BeamMode::kArrayFactor or BeamMode::kFull)

  • response_matrix – Buffer with a size of 4 complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • station_id – Station index, corresponding to measurement set antenna index.

  • field_id – Field index as used in the measurement set

virtual aocommon::MC2x2 Response(BeamMode beam_mode, size_t station_idx, double freq, const vector3r_t &direction, std::mutex *mutex = nullptr) override

Get the beam response for a station, given a pointing direction in ITRF coordinates.

Parameters:
  • station_idx – Station index

  • freq – Frequency (Hz)

  • direction – Direction in ITRF

  • mutex – Optional mutex. When provided, the caller keeps control over thread-safety. If not provided, the internal mutex will be used and the caller is assumed to be thread-safe.

Returns:

aocommon::MC2x2

virtual void ResponseAllStations(BeamMode beam_mode, std::complex<float> *buffer, double ra, double dec, double freq, size_t field_id) final override

Same as Response, but now iterate over all stations in measurement set.

Parameters:
  • beam_mode – Selects beam mode (element, array factor or full)

  • response_matrices – Buffer with a size of 4 * nr_stations complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • field_id – Field index as used in the measurement set

class MWAPoint : public PointResponse
#include <mwapoint.h>

Public Functions

inline MWAPoint(const telescope::Telescope *telescope_ptr, double time)
virtual void Response(BeamMode beam_mode, std::complex<float> *buffer, double ra, double dec, double freq, size_t station_idx, size_t field_id) override

Get beam response for a given station at a prescribed ra, dec position. NOTE: function complies with the standard threading rules, but does not guarantee thread-safety itself for efficiency reasons. The caller is responsible to ensure this.

Parameters:
  • buffer – Buffer with a size of 4 complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • station_idx – Station index

  • field_id

virtual void ResponseAllStations(BeamMode beam_mode, std::complex<float> *buffer, double ra, double dec, double freq, size_t field_id) override

Same as Response, but now iterate over all stations in measurement set.

Parameters:
  • beam_mode – Selects beam mode (element, array factor or full)

  • response_matrices – Buffer with a size of 4 * nr_stations complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • field_id – Field index as used in the measurement set

class PhasedArrayPoint : public PointResponse, protected PhasedArrayResponse
#include <phasedarraypoint.h>

Subclassed by AartfaacPoint

Public Functions

PhasedArrayPoint(const telescope::Telescope *telescope_ptr, double time)
virtual void Response(BeamMode beam_mode, aocommon::MC2x2F *response_matrices, double ra, double dec, const std::span<const double> &freqs, size_t station_idx, size_t field_id) final override

Get beam response for a given station at a prescribed ra, dec position. NOTE: the.

param dec input values are only used if values are different from the cached values. Direction values in cache along with the ITRF directions can be precomputed with UpdateITRFVectors for efficiency. NOTE: CalculateStation complies with the standard threading rules, but does not guarantee thread-safety itself for efficiency reasons. The caller is responsible to ensure this.

Parameters:
  • ra

  • response_matrices – Buffer with a size of freqs.size() to receive the beam responses.

virtual void Response(BeamMode beam_mode, std::complex<float> *response_matrix, double ra, double dec, double freq, size_t station_idx, size_t field_id) final override

Get beam response for a given station at a prescribed ra, dec position. NOTE: the.

param dec input values are only used if values are different from the cached values. Direction values in cache along with the ITRF directions can be precomputed with UpdateITRFVectors for efficiency. NOTE: CalculateStation complies with the standard threading rules, but does not guarantee thread-safety itself for efficiency reasons. The caller is responsible to ensure this.

Parameters:
  • ra

  • response_matrix – Buffer with a size of 4 complex floats to receive the beam response

virtual void Response(aocommon::MC2x2 *result, BeamMode beam_mode, size_t station_idx, const std::span<const double> &freqs, const vector3r_t &direction, std::mutex *mutex) final override

Compute beam response. Optional beam normalisation is done in this function.

Parameters:
  • beam_mode – BeamMode, can be any of kNone, kFull, kArrayFactor or kElement

  • station_idx – Station index for which to compute the beam response.

  • freqs – Freq [Hz]

  • direction – Direction in ITRF

  • mutex – mutex. When provided, the caller keeps control over thread-safety. If not provided, the internal mutex will be used and the caller is assumed to be thread-safe.

Returns:

aocommon::MC2x2

inline virtual aocommon::MC2x2 Response(BeamMode beam_mode, size_t station_idx, double freqs, const vector3r_t &direction, std::mutex *mutex) final override

Get the beam response for a station, given a pointing direction in ITRF coordinates.

Parameters:
  • station_idx – Station index

  • freq – Frequency (Hz)

  • direction – Direction in ITRF

  • mutex – Optional mutex. When provided, the caller keeps control over thread-safety. If not provided, the internal mutex will be used and the caller is assumed to be thread-safe.

Returns:

aocommon::MC2x2

void UnnormalisedResponse(aocommon::MC2x2 *result, BeamMode beam_mode, size_t station_idx, const std::span<const double> &freqs, const vector3r_t &direction, const vector3r_t &station0, const vector3r_t &tile0) const

Compute the unnormalised response.

aocommon::MC2x2 UnnormalisedResponse(BeamMode beam_mode, size_t station_idx, double frequency, const vector3r_t &direction, const vector3r_t &station0, const vector3r_t &tile0) const
void ElementResponse(aocommon::MC2x2 *result, size_t station_idx, const std::span<const double> &freqs, const vector3r_t &direction, size_t element_idx) const

Convenience method for computing the element response, for a prescribed element index.

Parameters:
  • station_idx – Station index

  • freq – Frequency (Hz)

  • direction – Direction in ITRF

  • element_idx – Element index

Returns:

aocommon::MC2x2

inline aocommon::MC2x2 ElementResponse(size_t station_idx, double frequency, const vector3r_t &direction, size_t element_idx) const
void UpdateITRFVectors(double ra, double dec)

Method for computing the ITRF-vectors, given ra, dec position in radians and using the cached.

Parameters:

time – ((MJD(UTC), s))

inline void SetUseLocalCoordinateSystem(bool is_local)

Use local east-north-up system (true) or global coordinate system (false).

inline bool GetUseLocalCoordinateSystem() const
inline void SetParalacticRotation(bool rotate)

Apply paralactic rotation when computing the full response or the element response?

inline bool GetParalacticRotation() const
class PointResponse
#include <pointresponse.h>

Virtual base class to compute the point response.

Subclassed by AiryPoint, DishPoint, MWAPoint, PhasedArrayPoint, SkaMidPoint

Public Functions

virtual ~PointResponse() = default
inline void UpdateTime(double time)

Update the (cached) time.

Parameters:

time – Time, modified Julian date, UTC, in seconds (MJD(UTC), s).

inline void SetUpdateInterval(double update_interval)

Set interval for updating the time. Can be used for caching ITRF direction vectors.

Parameters:

update_interval – Update interval (s)

inline bool HasTimeUpdate() const
Returns:

Whether cached time settings have changed.

inline virtual void Response(BeamMode beam_mode, aocommon::MC2x2F *response_matrix, double ra, double dec, const std::span<const double> &freqs, size_t station_id, size_t field_id)

Get beam response for a given station at a prescribed ra, dec position.

Parameters:
  • beam_mode – Selects beam mode (BeamMode::kElement, BeamMode::kArrayFactor or BeamMode::kFull)

  • response_matrix – Buffer with a size of 4 complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • station_id – Station index, corresponding to measurement set antenna index.

  • field_id – Field index as used in the measurement set

virtual void Response(BeamMode beam_mode, std::complex<float> *response_matrix, double ra, double dec, double freq, size_t station_id, size_t field_id) = 0

Get beam response for a given station at a prescribed ra, dec position.

Parameters:
  • beam_mode – Selects beam mode (BeamMode::kElement, BeamMode::kArrayFactor or BeamMode::kFull)

  • response_matrix – Buffer with a size of 4 complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • station_id – Station index, corresponding to measurement set antenna index.

  • field_id – Field index as used in the measurement set

inline virtual void ResponseAllStations(BeamMode beam_mode, aocommon::MC2x2F *response_matrices, double ra, double dec, const std::span<const double> &freqs, size_t field_id)

Same as Response, but now iterate over all stations in measurement set.

Parameters:
  • beam_mode – Selects beam mode (element, array factor or full)

  • response_matrices – Buffer with a size of 4 * nr_stations complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • field_id – Field index as used in the measurement set

inline virtual void ResponseAllStations(BeamMode beam_mode, std::complex<float> *response_matrices, double ra, double dec, double freq, size_t field_id)

Same as Response, but now iterate over all stations in measurement set.

Parameters:
  • beam_mode – Selects beam mode (element, array factor or full)

  • response_matrices – Buffer with a size of 4 * nr_stations complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • field_id – Field index as used in the measurement set

inline virtual void Response(aocommon::MC2x2 *result, BeamMode beam_mode, size_t station_idx, const std::span<const double> &freqs, const vector3r_t &direction, std::mutex *mutex = nullptr)

Get the beam response for a station, given a pointing direction in ITRF coordinates.

Parameters:
  • station_idx – Station index

  • freqs – Frequencies (Hz)

  • direction – Direction in ITRF

  • mutex – Optional mutex. When provided, the caller keeps control over thread-safety. If not provided, the internal mutex will be used and the caller is assumed to be thread-safe.

Returns:

aocommon::MC2x2

inline virtual aocommon::MC2x2 Response(BeamMode beam_mode, size_t station_idx, double freq, const vector3r_t &direction, std::mutex *mutex = nullptr)

Get the beam response for a station, given a pointing direction in ITRF coordinates.

Parameters:
  • station_idx – Station index

  • freq – Frequency (Hz)

  • direction – Direction in ITRF

  • mutex – Optional mutex. When provided, the caller keeps control over thread-safety. If not provided, the internal mutex will be used and the caller is assumed to be thread-safe.

Returns:

aocommon::MC2x2

inline std::size_t GetAllStationsBufferSize() const
class SkaMidPoint : public PointResponse
#include <skamidpoint.h>

Public Functions

SkaMidPoint(const telescope::Telescope *telescope_ptr, double time, ElementResponseModel element_response_model)
virtual void Response(BeamMode beam_mode, std::complex<float> *buffer, double ra, double dec, double freq, size_t station_idx, size_t field_id) override

Get beam response for a given station at a prescribed ra, dec position.

Parameters:
  • beam_mode – Selects beam mode (BeamMode::kElement, BeamMode::kArrayFactor or BeamMode::kFull)

  • response_matrix – Buffer with a size of 4 complex floats to receive the beam response

  • ra – Right ascension (rad)

  • dec – Declination (rad)

  • freq – Frequency (Hz)

  • station_id – Station index, corresponding to measurement set antenna index.

  • field_id – Field index as used in the measurement set