1 #ifndef _rdet_AntennaType_h_
2 #define _rdet_AntennaType_h_
4 #include <utl/Validated.h>
5 #include <det/Detector.h>
7 #include <boost/tuple/tuple.hpp>
8 #include <boost/tuple/tuple_comparison.hpp>
33 std::complex<float>
Phi;
82 std::pair<std::complex<double>, std::complex<double>>
89 const int iFreq,
const int nTheta,
const int nPhi);
96 std::pair<std::complex<double>, std::complex<double>>
99 std::pair<std::complex<double>, std::complex<double>>
102 double InterpolateLinear(
const double x,
const double x_low,
const double x_up,
const double y_low,
const double y_up);
106 const std::complex<float>& y_low,
const std::complex<float>& y_up);
112 std::pair<std::complex<double>, std::complex<double>>
120 const std::string& propIndex =
"")
123 if (!requestedData.
IsValid()) {
126 if (!propIndex.empty())
127 propIndexMap[
"idfreq"] = propIndex;
130 const det::VManager& manager = det::Detector::GetInstance().GetRManagerRegister();
138 return requestedData.
Get();
const T & GetAntennaData(utl::Validated< T > &requestedData, const std::string &antennaProp, const std::string &propIndex="") const
std::pair< std::complex< double >, std::complex< double > > GetElectricFieldResponse_LinearInterpolation(const double fTheta, const double fPhi, const double fFreq)
static std::map< std::string, AntennaPattern > fgAntennaPattern
std::complex< float > Theta
std::map< ResponseKey, VectorEffectiveLength > AntennaResponse
std::pair< std::complex< double >, std::complex< double > > GetElectricFieldResponse(const double theta, const double phi, const double freq, const std::string &interpolationMode)
Get GetElectricFieldResponse returns the response of the antenna for a certain incoming direction of ...
double GetIntegratedEffectiveAntennaHeight(const double freq)
Get GetIntegratedEffectiveAntennaHeight returns the response of the antenna integrated over the full ...
Detector description interface for Channel-related data.
Interface for detector managers.
Interface to access antenna characteristics.
Wrapper class for initially unset data.
Detector description interface for RDetector-related data.
double CalculateIntegratedEffectiveAntennaHeight(const std::map< ResponseKey, VectorEffectiveLength > &antennaResponse, const int iFreq, const int nTheta, const int nPhi)
virtual Status GetData(double &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
std::pair< std::complex< double >, std::complex< double > > GetElectricFieldResponse_lookup(const double fTheta, const double fPhi, const double fFreq)
std::vector< double > meanTransfer
std::vector< double > frequencies
std::string fAntennaType
The AntennaType has to know its id string which is kept here. This is needed as the AntennaType insta...
double frequency_upper_bound
boost::tuple< int, int, int > ResponseKey
std::pair< std::complex< double >, std::complex< double > > GetComplexRepresentationOfVectorEffectiveLength(const VectorEffectiveLength &vel)
void BufferAntennaPattern()
std::complex< float > Phi
std::map< std::string, std::string > IndexMap
std::vector< double > thetaAngles
void SetValid(const bool valid=true)
double InterpolateLinear(const double x, const double x_low, const double x_up, const double y_low, const double y_up)
std::vector< double > phiAngles
double frequency_lower_bound
AntennaType & operator=(const AntennaType &)
void NotFoundAndExit(const std::string &msg) const
Status
Specifies success or (eventually) various possible failure modes.