List of all members | Private Member Functions | Private Attributes | Static Private Attributes | Friends
rdet::AntennaType Class Reference

Interface to access antenna characteristics. More...

#include <rdet/AntennaType.h>

Private Member Functions

 AntennaType (const AntennaType &)
 
 AntennaType (const std::string &fAntennaType_)
 
 AntennaType ()
 
void BufferAntennaPattern ()
 
double CalculateIntegratedEffectiveAntennaHeight (const std::map< ResponseKey, VectorEffectiveLength > &antennaResponse, const int iFreq, const int nTheta, const int nPhi)
 
template<typename T >
const T & GetAntennaData (utl::Validated< T > &requestedData, const std::string &antennaProp, const std::string &propIndex="") const
 
std::pair< std::complex
< double >, std::complex
< double > > 
GetComplexRepresentationOfVectorEffectiveLength (const VectorEffectiveLength &vel)
 
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 the wave (theta, phi) at a certain frequency f. The result is return as pair of two complex number representing the vector: (H_theta, H_phi). More...
 
std::pair< std::complex
< double >, std::complex
< double > > 
GetElectricFieldResponse_LinearInterpolation (const double fTheta, const double fPhi, const double fFreq)
 
std::pair< std::complex
< double >, std::complex
< double > > 
GetElectricFieldResponse_lookup (const double fTheta, const double fPhi, const double fFreq)
 
double GetIntegratedEffectiveAntennaHeight (const double freq)
 Get GetIntegratedEffectiveAntennaHeight returns the response of the antenna integrated over the full sky for a certain frequency f. The result is a double (no phase associated) used to convert an electric field to a voltage in the 50 Ohm system. More...
 
double InterpolateLinear (const double x, const double x_low, const double x_up, const double y_low, const double y_up)
 
std::complex< float > InterpolateLinear (const float x, const float x_low, const float x_up, const std::complex< float > &y_low, const std::complex< float > &y_up)
 
VectorEffectiveLength InterpolateLinear (const double x, const double x_low, const double x_up, const VectorEffectiveLength &VEL_low, const VectorEffectiveLength &VEL_up)
 
void NotFoundAndExit (const std::string &msg) const
 
AntennaTypeoperator= (const AntennaType &)
 
 ~AntennaType ()
 

Private Attributes

std::string fAntennaType
 The AntennaType has to know its id string which is kept here. This is needed as the AntennaType instances access the xml files according to their type. fAntennaType is initialized by the constructor of the AntennaType class. More...
 

Static Private Attributes

static std::map< std::string,
AntennaPattern
fgAntennaPattern
 

Friends

class Channel
 
class RDetector
 
class utl::Validated< AntennaType >
 

Detailed Description

Interface to access antenna characteristics.

Author
S. Fliescher
Date
2009-03-27

Definition at line 65 of file AntennaType.h.

Constructor & Destructor Documentation

rdet::AntennaType::AntennaType ( const AntennaType )
private
rdet::AntennaType::AntennaType ( const std::string &  fAntennaType_)
private

Definition at line 19 of file AntennaType.cc.

rdet::AntennaType::AntennaType ( )
inlineprivate

Definition at line 71 of file AntennaType.h.

rdet::AntennaType::~AntennaType ( )
inlineprivate

Definition at line 72 of file AntennaType.h.

Member Function Documentation

void rdet::AntennaType::BufferAntennaPattern ( )
private
double rdet::AntennaType::CalculateIntegratedEffectiveAntennaHeight ( const std::map< ResponseKey, VectorEffectiveLength > &  antennaResponse,
const int  iFreq,
const int  nTheta,
const int  nPhi 
)
private
template<typename T >
const T& rdet::AntennaType::GetAntennaData ( utl::Validated< T > &  requestedData,
const std::string &  antennaProp,
const std::string &  propIndex = "" 
) const
inlineprivate
std::pair< std::complex< double >, std::complex< double > > rdet::AntennaType::GetComplexRepresentationOfVectorEffectiveLength ( const VectorEffectiveLength vel)
private
std::pair< std::complex< double >, std::complex< double > > rdet::AntennaType::GetElectricFieldResponse ( const double  theta,
const double  phi,
const double  freq,
const std::string &  interpolationMode 
)
private

Get GetElectricFieldResponse returns the response of the antenna for a certain incoming direction of the wave (theta, phi) at a certain frequency f. The result is return as pair of two complex number representing the vector: (H_theta, H_phi).

Definition at line 190 of file AntennaType.cc.

References degree.

Referenced by rdet::Channel::GetElectricFieldResponse().

std::pair< std::complex< double >, std::complex< double > > rdet::AntennaType::GetElectricFieldResponse_LinearInterpolation ( const double  fTheta,
const double  fPhi,
const double  fFreq 
)
private

Definition at line 305 of file AntennaType.cc.

References utl::degree, utl::MHz, and WARNING.

std::pair< std::complex< double >, std::complex< double > > rdet::AntennaType::GetElectricFieldResponse_lookup ( const double  fTheta,
const double  fPhi,
const double  fFreq 
)
private

Definition at line 277 of file AntennaType.cc.

double rdet::AntennaType::GetIntegratedEffectiveAntennaHeight ( const double  freq)
private

Get GetIntegratedEffectiveAntennaHeight returns the response of the antenna integrated over the full sky for a certain frequency f. The result is a double (no phase associated) used to convert an electric field to a voltage in the 50 Ohm system.

Definition at line 406 of file AntennaType.cc.

Referenced by rdet::Channel::GetIntegratedEffectiveAntennaHeight().

double rdet::AntennaType::InterpolateLinear ( const double  x,
const double  x_low,
const double  x_up,
const double  y_low,
const double  y_up 
)
private

Definition at line 219 of file AntennaType.cc.

References result.

std::complex< float > rdet::AntennaType::InterpolateLinear ( const float  x,
const float  x_low,
const float  x_up,
const std::complex< float > &  y_low,
const std::complex< float > &  y_up 
)
private

Definition at line 242 of file AntennaType.cc.

References utl::abs(), and result.

VectorEffectiveLength rdet::AntennaType::InterpolateLinear ( const double  x,
const double  x_low,
const double  x_up,
const VectorEffectiveLength VEL_low,
const VectorEffectiveLength VEL_up 
)
private
void rdet::AntennaType::NotFoundAndExit ( const std::string &  msg) const
private

Definition at line 457 of file AntennaType.cc.

References ERROR, and exit.

Referenced by GetAntennaData().

AntennaType& rdet::AntennaType::operator= ( const AntennaType )
private

Friends And Related Function Documentation

friend class Channel
friend

Definition at line 75 of file AntennaType.h.

friend class RDetector
friend

Definition at line 74 of file AntennaType.h.

friend class utl::Validated< AntennaType >
friend

Definition at line 76 of file AntennaType.h.

Member Data Documentation

std::string rdet::AntennaType::fAntennaType
mutableprivate

The AntennaType has to know its id string which is kept here. This is needed as the AntennaType instances access the xml files according to their type. fAntennaType is initialized by the constructor of the AntennaType class.

Definition at line 79 of file AntennaType.h.

Referenced by GetAntennaData().

std::map< std::string, AntennaPattern > rdet::AntennaType::fgAntennaPattern
staticprivate

Definition at line 92 of file AntennaType.h.


The documentation for this class was generated from the following files:

, generated on Tue Sep 26 2023.