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
-
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
-
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 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
-
aocommon::MC2x2 Response(BeamMode beam_mode, size_t station_idx, double freq, const vector3r_t &direction, std::mutex *mutex = nullptr) override
-
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, 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.
- Parameters:
ra –
-
aocommon::MC2x2 Response(BeamMode beam_mode, size_t station_idx, double freq, 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.
freq – 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
-
aocommon::MC2x2 UnnormalisedResponse(BeamMode beam_mode, size_t station_idx, double freq, const vector3r_t &direction, const vector3r_t &station0, const vector3r_t &tile0) const
Compute the unnormalised response.
-
aocommon::MC2x2 ElementResponse(size_t station_idx, double freq, 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
-
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, std::complex<float> *response_matrix, double ra, double dec, double freq, 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.
-
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, 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 aocommon::MC2x2 Response([[maybe_unused]] BeamMode beam_mode, [[maybe_unused]] size_t station_idx, [[maybe_unused]] double freq, [[maybe_unused]] const vector3r_t &direction, [[maybe_unused]] 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