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"]
}

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.

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.

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)

Public Members

std::span<const double> frequencies
std::span<const int> station_indexes
Directions directions
std::span<const double> time