12#ifndef WSFALARM_ANTENNAPATTERN_HPP
13#define WSFALARM_ANTENNAPATTERN_HPP
98 using PatternMap = std::map<WsfEM_Types::Polarization, PatternData>;
107 double GetGain(
double aFrequency,
double aTargetAz,
double aTargetEl,
double aEBS_Az,
double aEBS_El)
override;
136 std::vector<double>::size_type
GetIndex(
const std::vector<double>& aTable,
double aValue)
const;
143 void ConvertValue(
const std::string& aString,
double& aValue)
const;
144 void ConvertValue(
const std::string& aString,
int& aValue)
const;
146 void ParseLine(
const std::string& aLine, std::vector<std::string>& aWords)
const;
148 void ReadLine(std::istream& aIn, std::string& aLine);
157 double GetAzimuthBeamwidth(
double aFrequency,
double aEBS_Azimuth,
double aEBS_Elevation)
const override;
158 double GetElevationBeamwidth(
double aFrequency,
double aEBS_Azimuth,
double aEBS_Elevation)
const override;
159 double GetPeakGain(
double aFrequency)
const override;
Data that is shared amongst all instances of a given ALARM antenna pattern.
Definition WsfALARM_AntennaPattern.hpp:60
double mOneMinusE_2
Definition WsfALARM_AntennaPattern.hpp:124
std::vector< double >::size_type GetIndex(const std::vector< double > &aTable, double aValue) const
Definition WsfALARM_AntennaPattern.cpp:435
std::string mFileName
Definition WsfALARM_AntennaPattern.hpp:113
double GetGain(double aFrequency, double aTargetAz, double aTargetEl, double aEBS_Az, double aEBS_El) override
Definition WsfALARM_AntennaPattern.cpp:142
virtual void ReadPattern(WsfScenario &aScenario, const std::string &aFileName)
Definition WsfALARM_AntennaPattern.cpp:281
bool mInputIsDB
Definition WsfALARM_AntennaPattern.hpp:133
PatternMap mPatternMap
vector of ordered polarizations read in
Definition WsfALARM_AntennaPattern.hpp:122
double GetCircularApertureGain(double aAzLook, double aElLook)
Definition WsfALARM_AntennaPattern.cpp:465
ApertureShape mApertureShape
Definition WsfALARM_AntennaPattern.hpp:115
bool Initialize(WsfAntennaPattern &aAntennaPattern) override
Definition WsfALARM_AntennaPattern.cpp:131
double GetRectangularApertureGain(double aAzLook, double aElLook)
Definition WsfALARM_AntennaPattern.cpp:609
bool mInputIs2D
Definition WsfALARM_AntennaPattern.hpp:132
double mGainCorrection
For elliptical aperture, the value (1 -e^2).
Definition WsfALARM_AntennaPattern.hpp:126
~ALARM_Data() override=default
ALARM_Data()
Definition WsfALARM_AntennaPattern.cpp:74
std::vector< WsfEM_Types::Polarization > mPolarizations
Set polarization for this pattern set by user.
Definition WsfALARM_AntennaPattern.hpp:120
std::string mClassification
Definition WsfALARM_AntennaPattern.hpp:129
double GetEllipticalApertureGain(double aAzLook, double aElLook)
Definition WsfALARM_AntennaPattern.cpp:489
std::string mTitle
Definition WsfALARM_AntennaPattern.hpp:128
std::map< WsfEM_Types::Polarization, PatternData > PatternMap
Definition WsfALARM_AntennaPattern.hpp:98
bool ProcessInput(WsfAntennaPattern &aPattern, UtInput &aInput) override
Definition WsfALARM_AntennaPattern.cpp:90
WsfEM_Types::Polarization mSetPolarization
Definition WsfALARM_AntennaPattern.hpp:119
double mWavelength
Definition WsfALARM_AntennaPattern.hpp:130
bool InitializeBase()
Perform common initialization for derived classes.
Definition WsfALARM_AntennaPattern.cpp:210
double mMinGain
Definition WsfALARM_AntennaPattern.hpp:117
static WsfAntennaPattern * ObjectFactory(const std::string &aTypeName)
Definition WsfALARM_AntennaPattern.cpp:37
virtual const std::vector< double > & GetElAngles() const
Definition WsfALARM_AntennaPattern.hpp:177
virtual ApertureShape GetApertureShape() const
Definition WsfALARM_AntennaPattern.hpp:185
virtual const std::vector< double > & GetElGains() const
Definition WsfALARM_AntennaPattern.hpp:181
ApertureShape
Definition WsfALARM_AntennaPattern.hpp:50
@ cAS_CIRCULAR
Definition WsfALARM_AntennaPattern.hpp:52
@ cAS_UNKNOWN
Definition WsfALARM_AntennaPattern.hpp:51
@ cAS_RECTANGULAR
Definition WsfALARM_AntennaPattern.hpp:54
@ cAS_ELLIPTICAL
Definition WsfALARM_AntennaPattern.hpp:53
@ cAS_SQUARE
Definition WsfALARM_AntennaPattern.hpp:55
WsfALARM_AntennaPattern(ALARM_Data *aBaseDataPtr)
Definition WsfALARM_AntennaPattern.cpp:27
WsfAntennaPattern * Clone() const override
Definition WsfALARM_AntennaPattern.cpp:48
virtual const std::vector< double > & GetAzGains() const
Definition WsfALARM_AntennaPattern.hpp:173
std::vector< double > Table
Definition WsfALARM_AntennaPattern.hpp:161
ALARM_Data * AlarmData() const
Definition WsfALARM_AntennaPattern.hpp:200
double GetPeakGain(double aFrequency) const override
Definition WsfALARM_AntennaPattern.cpp:66
virtual double GetInputElevationBeamwidth() const
Definition WsfALARM_AntennaPattern.hpp:192
std::vector< double >::size_type TableIndex
Definition WsfALARM_AntennaPattern.hpp:162
virtual double GetInputAzimuthBeamwidth() const
Definition WsfALARM_AntennaPattern.hpp:188
double GetAzimuthBeamwidth(double aFrequency, double aEBS_Azimuth, double aEBS_Elevation) const override
Definition WsfALARM_AntennaPattern.cpp:54
virtual double GetMinGain() const
Definition WsfALARM_AntennaPattern.hpp:186
WsfALARM_AntennaPattern(const WsfALARM_AntennaPattern &aSrc)=default
virtual const std::vector< double > & GetAzAngles() const
Definition WsfALARM_AntennaPattern.hpp:169
WsfALARM_AntennaPattern operator=(const WsfALARM_AntennaPattern &aRhs) const =delete
virtual double GetGainCorrection() const
Definition WsfALARM_AntennaPattern.hpp:187
double GetElevationBeamwidth(double aFrequency, double aEBS_Azimuth, double aEBS_Elevation) const override
Definition WsfALARM_AntennaPattern.cpp:60
Definition WsfAntennaPattern.hpp:47
BaseData * mSharedDataPtr
Definition WsfAntennaPattern.hpp:123
WsfAntennaPattern()
Definition WsfAntennaPattern.cpp:25
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Polarization
Polarization of the electromagnetic wave.
Definition WsfEM_Types.hpp:21
double mAzBeamwidth
Definition WsfALARM_AntennaPattern.hpp:85
double mInputAzBeamwidth
Definition WsfALARM_AntennaPattern.hpp:83
std::vector< double > mElAngles
Definition WsfALARM_AntennaPattern.hpp:93
std::vector< double > mAzGains
Definition WsfALARM_AntennaPattern.hpp:89
PatternData()
Definition WsfALARM_AntennaPattern.hpp:64
double mAzMin
The value of mAzAngles[0].
Definition WsfALARM_AntennaPattern.hpp:90
double mInputElBeamwidth
Definition WsfALARM_AntennaPattern.hpp:84
double mElBeamwidth
Definition WsfALARM_AntennaPattern.hpp:86
double mPeakGain
Definition WsfALARM_AntennaPattern.hpp:82
double mAzMax
The value of mAzAngles[last].
Definition WsfALARM_AntennaPattern.hpp:91
std::vector< double > mAzAngles
Definition WsfALARM_AntennaPattern.hpp:88
double mElMin
The value of mElAngles[0].
Definition WsfALARM_AntennaPattern.hpp:95
double mElMax
The value of mElAngles[last].
Definition WsfALARM_AntennaPattern.hpp:96
std::vector< double > mElGains
Definition WsfALARM_AntennaPattern.hpp:94