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
-
inline AartfaacPoint(const telescope::Telescope *telescope_ptr, double time)
-
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
-
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)
-
class DishPoint : public PointResponse
- #include <dishpoint.h>
Class for computing the directional response of dish telescopes, e.g. VLA, ATCA.
Public Functions
-
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
-
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
-
class MWAPoint : public PointResponse
- #include <mwapoint.h>
Public Functions
-
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
-
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
-
class PhasedArrayPoint : public PointResponse, protected PhasedArrayResponse
- #include <phasedarraypoint.h>
Subclassed by AartfaacPoint
Public Functions
-
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
-
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
-
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
-
virtual ~PointResponse() = default
-
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
-
SkaMidPoint(const telescope::Telescope *telescope_ptr, double time, ElementResponseModel element_response_model)
-
class AartfaacPoint : public PhasedArrayPoint