everybeam::response
-
namespace response
The everybeam::response namespace contains all the required to calculate the final responses. In order to do that, it makes use of the mount, element model and array factor calculations. Not all telescopes make use of the same calculations(dish based telescopes don’t require the array factor to be calculated). Therefore multiple response strategies are defined.
-
class ResponseStrategy
Inheritance diagram for everybeam::response::ResponseStrategy:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="ResponseStrategy" tooltip="ResponseStrategy" fillcolor="#BFBFBF"]
"2" [label="DishResponseStrategy" tooltip="DishResponseStrategy"]
"3" [label="PhasedArrayResponseStrategy" tooltip="PhasedArrayResponseStrategy"]
"2" -> "1" [dir=forward tooltip="public-inheritance"]
"3" -> "1" [dir=forward tooltip="public-inheritance"]
}](../../../_images/graphviz-0290f94b50fc46b4e91a57b306124c863ad4e556.png)
Provides an abstract interface for response strategies.
Subclassed by DishResponseStrategy, PhasedArrayResponseStrategy
Public Functions
-
virtual xt::xtensor<aocommon::MC2x2, 3> Response(facade::Telescope &telescope, ResponseParameters &response_parameters) = 0
Returns a 3 dimensional xtensor of responses given a telescope and response parameters.
-
virtual xt::xtensor<aocommon::MC2x2, 3> Response(facade::Telescope &telescope, ResponseParameters &response_parameters) = 0
-
class ResponseContext
Provides a context for executing the requested response strategy.
Public Functions
-
explicit ResponseContext(facade::ResponseStrategy response_strategy)
-
xt::xtensor<aocommon::MC2x2, 3> Response(facade::Telescope &telescope, ResponseParameters &response_parameters)
Executes the requested response strategy.
-
explicit ResponseContext(facade::ResponseStrategy response_strategy)
-
struct ResponseParameters
Contains all the required parameters to calculate a batch of responses. Passing a struct instead of different spans improves readability and maintainability. It also provides a nice location for checking the consistency between directions and time.
Public Functions
-
inline ResponseParameters(const std::span<const int> station_indexes, const std::span<const double> frequencies, const std::span<const std::pair<double, double>> directions, const std::span<const double> time)
-
inline ResponseParameters(const std::span<const int> station_indexes, const std::span<const double> frequencies, const std::span<const vector3r_t> directions, const std::span<const double> time)
-
inline ResponseParameters(const std::span<const int> station_indexes, const std::span<const double> frequencies, const std::span<const std::pair<double, double>> directions, const std::span<const double> time)