12#ifndef WSFEW_RPJ_EFFECT_HPP
13#define WSFEW_RPJ_EFFECT_HPP
15#include "wsf_mil_export.h"
50 const ut::optional<WsfEM_Interaction>& aTgtToJammerInteraction,
64 double GetRPJ_Gain(
WsfStringId aRadarTypeId,
double aJammerToNoise,
double aPulseDensity);
86 void Reset()
override;
88 double GetRPJ_Gain(
double aJammerToNoise,
double aPulseDensity)
const;
107 double GetMinJNR_Threshold(
WsfStringId aSystemTypeId)
const;
108 int GetSamplesPerDetection(
WsfStringId aSystemTypeId)
const;
109 JNR_PD_GainMapMap GetJNR_PD_GainMapMap(
WsfStringId aSystemTypeId)
const;
114 std::map<WsfStringId, RPJ_Data*>;
116 double GetRPJ_Gain(JNR_PD_GainMapMap& aJNR_PD_GainMapMap,
double aJammerToNoise,
double aPulseDensity);
118 double mCoherentRatio;
119 RPJ_DataMap mRPJ_DataMap;
121 int mPulsesInSamples;
122 double mPulseDensity;
123 double mJammerToNoise;
124 PulseRangeVec mPulseRangesVec;
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfEM_Interaction.hpp:68
Base effect data used to derive from in inheriting effect classes.
Definition WsfEW_Effect.hpp:317
Definition WsfEW_Effect.hpp:45
Definition WsfEW_Effects.hpp:41
void ApplyUnmitigatedEffect(WsfEW_Effects &aEW_Effects) const override
Definition WsfEW_PowerEffect.cpp:72
void ApplyMitigatedEffect(WsfEW_Effect *aEW_EffectPtr, WsfEW_Effects &aEW_Effects) const override
Definition WsfEW_PowerEffect.cpp:233
Definition WsfEW_PulseEffect.hpp:75
EffectData * PropagateEffectDataPtr(WsfStringId aSystemTypeId) override
Definition WsfEW_PulseEffect.cpp:104
WsfEW_Effect * Clone() const override
Definition WsfEW_PulseEffect.cpp:42
WsfEW_PulseEffect()
Definition WsfEW_PulseEffect.cpp:24
bool Initialize(WsfSimulation &aSimulation) override
Definition WsfEW_PulseEffect.cpp:48
void UpdateEffects(double aSimTime, const WsfEM_Interaction &aTargetInteraction, const WsfEM_Interaction &aJammerToTgtInteraction, const ut::optional< WsfEM_Interaction > &aTgtToJammerInteraction, WsfEW_Effects &aEW_Effects, WsfEW_Effect *aEW_EffectPtr=nullptr) override
Definition WsfEW_PulseEffect.cpp:67
bool ProcessInput(UtInput &aInput) override
Definition WsfEW_PulseEffect.cpp:61
Definition WsfEW_RPJ_Effect.hpp:75
~RPJ_Data() override=default
RPJ_Data & operator=(const RPJ_Data &)=delete
int mSamplesPerDetection
Number of samples taken per detection (e.g. FFT sample size).
Definition WsfEW_RPJ_Effect.hpp:90
double GetRPJ_Gain(double aJammerToNoise, double aPulseDensity) const
Definition WsfEW_RPJ_Effect.cpp:479
RPJ_Data(const RPJ_Data &aSrc)=default
JNR_PD_GainMapMap mJNR_PD_GainMapMap
Definition WsfEW_RPJ_Effect.hpp:94
RPJ_Data()
Definition WsfEW_RPJ_Effect.cpp:377
double mMinJNR_Threshold
Minimum JNR that is required to activate this effect.
Definition WsfEW_RPJ_Effect.hpp:91
void Reset() override
Definition WsfEW_RPJ_Effect.cpp:465
WsfEW_RPJ_Effect()
Definition WsfEW_RPJ_Effect.cpp:32
void GetPulseRanges(PulseRangeVec &aPulseRanges)
Get the calculated pulse ranges for the last call to UpdateEffects(..).
Definition WsfEW_RPJ_Effect.hpp:61
~WsfEW_RPJ_Effect() override=default
std::vector< double > PulseRangeVec
Definition WsfEW_RPJ_Effect.hpp:33
double GetRPJ_Gain()
Get the calculated gain for the last call to UpdateEffects(..).
Definition WsfEW_RPJ_Effect.hpp:67
std::map< double, double > PD_GainMap
Definition WsfEW_RPJ_Effect.hpp:30
double GetJammerToNoise()
Get the calculated JNR for the last call to UpdateEffects(..).
Definition WsfEW_RPJ_Effect.hpp:58
std::map< double, PD_GainMap > JNR_PD_GainMapMap
Definition WsfEW_RPJ_Effect.hpp:31
WsfEW_RPJ_Effect & operator=(const WsfEW_RPJ_Effect &)=delete
double GetPulseDensity()
Get the calculated pulses in the sample for the last call to UpdateEffects(..).
Definition WsfEW_RPJ_Effect.hpp:70
EffectData * NewEffectData() override
Definition WsfEW_RPJ_Effect.hpp:104
The main controller for a simulation.
Definition WsfSimulation.hpp:109