12#ifndef WSFRADARSENSOR_HPP
13#define WSFRADARSENSOR_HPP
15#include "wsf_export.h"
20#include "TblLookup.hpp"
44 void Update(
double aSimTime)
override;
83 void SetIntegrationGain(
double aIntegrationGain)
override { mIntegrationGain = aIntegrationGain; }
90 std::shared_ptr<wsf::DetectionProbabilityTable>&
GetProbabilityTable() {
return mProbabilityTablePtr; }
97 unsigned int aBeamIndex,
102 bool aShowCalibrationData,
136 void Calibrate(
bool aPrint);
138 double ComputeIntegratedPulseCount(
RadarMode& aMode);
140 bool InitializeDetector(
RadarMode& aMode);
149 double mDopplerResolution;
152 double mOneM2DetectRange;
155 double mLookDownFactor;
161 double mPostLockonDetectionThresholdAdjustment;
164 double mPostLockonAdjustmentDelayTime;
170 double mAdjustmentFactor;
173 double mIntegrationGain;
177 int mNumberOfPulsesIntegrated;
188 std::shared_ptr<wsf::DetectionProbabilityTable> mProbabilityTablePtr;
194 double mClutterAttenuationFactor;
220 void ScheduleAltFreqChange(
double aSimTime,
int aAltFreqId = -1)
override;
225 void Deselect(
double aSimTime)
override;
226 void Select(
double aSimTime)
override;
245 std::vector<RadarMode*> mRadarModeList;
248 std::vector<WsfEM_Xmtr*> mXmtrList;
251 std::vector<WsfEM_Rcvr*> mRcvrList;
254 bool mAnyModeCanTransmit;
257 bool mAnyModeCanReceive;
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
An abstract class for computing clutter power.
Definition WsfEM_Clutter.hpp:25
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
Definition WsfMode.hpp:32
Definition WsfRadarSensor.hpp:68
std::unique_ptr< WsfEM_Xmtr > mXmtrPtr
The transmitter for a radar beam.
Definition WsfRadarSensor.hpp:112
WsfEM_Xmtr * GetEM_Xmtr() override
Definition WsfRadarSensor.hpp:77
double GetClutterAttenuationFactor() const
Definition WsfRadarSensor.hpp:94
bool UsingDetector() const
Definition WsfRadarSensor.hpp:85
WsfEM_Clutter * mClutterPtr
Definition WsfRadarSensor.hpp:119
wsf::MarcumSwerling & GetDetector()
Definition WsfRadarSensor.hpp:86
double GetIntegrationGain() const override
Definition WsfRadarSensor.hpp:82
void SetIntegrationGain(double aIntegrationGain) override
Definition WsfRadarSensor.hpp:83
double GetDopplerResolution() const
Definition WsfRadarSensor.hpp:92
std::unique_ptr< WsfEM_Antenna > mAntennaPtr
Definition WsfRadarSensor.hpp:109
double mErrorModelElBeamwidth
Definition WsfRadarSensor.hpp:123
double GetAdjustmentFactor() const
Definition WsfRadarSensor.hpp:81
WsfStringId GetClutterType() const
Definition WsfRadarSensor.hpp:107
WsfEM_Clutter * GetClutter() const override
Definition WsfRadarSensor.hpp:93
std::shared_ptr< wsf::DetectionProbabilityTable > & GetProbabilityTable()
Definition WsfRadarSensor.hpp:90
double mErrorModelPulseWidth
Definition WsfRadarSensor.hpp:124
double mErrorModelDopplerResolution
Definition WsfRadarSensor.hpp:125
double mErrorModelAzBeamwidth
Additional parameters associated with measurement errors.
Definition WsfRadarSensor.hpp:122
int GetNumberOfPulsesIntegrated() const override
Definition WsfRadarSensor.hpp:84
WsfEM_Rcvr * GetEM_Rcvr() override
Definition WsfRadarSensor.hpp:76
RadarBeam()
Definition WsfRadarSensor.cpp:434
std::unique_ptr< WsfEM_Rcvr > mRcvrPtr
The receiver for a radar beam.
Definition WsfRadarSensor.hpp:115
A 'mode' of the sensor.
Definition WsfRadarSensor.hpp:202
bool mExplicitBeamUsed
Definition WsfRadarSensor.hpp:231
void SelectAlternateFrequency(double aSimTime, int aAltFreqId=-1) override
Definition WsfRadarSensor.cpp:1720
bool mAltFreqChangeScheduled
Definition WsfRadarSensor.hpp:238
double GetLastAltFreqSelectTime() const override
Definition WsfRadarSensor.hpp:222
WsfSensorBeam * GetBeamEntry(size_t aIndex) override
Definition WsfRadarSensor.hpp:211
bool mImplicitBeamUsed
Definition WsfRadarSensor.hpp:230
double mLastAltFreqSelectTime
Definition WsfRadarSensor.hpp:239
RadarMode()
Definition WsfRadarSensor.cpp:1348
std::vector< RadarBeam * > mBeamList
Definition WsfRadarSensor.hpp:232
bool IsFrequencyAgile() const override
Definition WsfRadarSensor.hpp:223
size_t GetBeamCount() const override
Definition WsfRadarSensor.hpp:210
bool IsAltFreqChangeScheduled() const override
Definition WsfRadarSensor.hpp:221
double GetAltFreqSelectDelay() const override
Definition WsfRadarSensor.hpp:219
bool mIsFrequencyAgile
Definition WsfRadarSensor.hpp:240
bool mCanReceive
Definition WsfRadarSensor.hpp:229
double mAltFreqSelectDelay
Definition WsfRadarSensor.hpp:237
bool mCanTransmit
Definition WsfRadarSensor.hpp:228
void UpdateXmtrRcvrLists()
Definition WsfRadarSensor.cpp:225
WsfRadarSensor(WsfScenario &aScenario)
Definition WsfRadarSensor.cpp:54
WsfRadarSensor & operator=(const WsfRadarSensor &)=delete
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfSensorBeam.hpp:58
WsfSensorBeam()
Definition WsfSensorBeam.cpp:20
WsfSensorMode()
Definition WsfSensorMode.cpp:47
Definition WsfSensorResult.hpp:27
Definition WsfSensor.hpp:133
bool ProcessInput(UtInput &aInput) override
Definition WsfSensor.cpp:380
void Update(double aSimTime) override
Definition WsfSensor.cpp:497
virtual WsfEM_Rcvr & GetEM_Rcvr(size_t aIndex) const
Definition WsfSensor.cpp:660
WsfSensor(const WsfScenario &aScenario)
Definition WsfSensor.cpp:52
virtual size_t GetEM_RcvrCount() const
Definition WsfSensor.cpp:646
WsfSensor * Clone() const override=0
virtual WsfEM_Xmtr & GetEM_Xmtr(size_t aIndex) const
Definition WsfSensor.cpp:714
bool Initialize(double aSimTime) override
Definition WsfSensor.cpp:255
virtual size_t GetEM_XmtrCount() const
Definition WsfSensor.cpp:700
WsfSensor & operator=(const WsfSensor &aSrc)=delete
virtual void PerformScheduledDetections(double aSimTime)
Definition WsfSensor.cpp:1415
virtual bool AttemptToDetect(double aSimTime, WsfPlatform *aTargetPtr, Settings &aSettings, WsfSensorResult &aResult)
Definition WsfSensor.cpp:224
void PlatformAdded(double aSimTime, WsfPlatform *aPlatformPtr) override
Definition WsfSensor.cpp:334
Computation of probability of detection using the Marcum-Swerling algorithm.
Definition WsfMarcumSwerling.hpp:29