WSF
WsfLADAR_Sensor.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11// ****************************************************************************
12// Updated by Infoscitex, a DCS Company.
13// ****************************************************************************
14
15#ifndef WSFLADAR_SENSOR_HPP
16#define WSFLADAR_SENSOR_HPP
17
18#include <vector>
19
20#include "UtCloneablePtr.hpp"
21#include "UtTable.hpp"
22#include "WsfEM_Antenna.hpp"
23#include "WsfEM_Rcvr.hpp"
24#include "WsfEM_Xmtr.hpp"
27#include "WsfSensor.hpp"
28#include "WsfSensorMode.hpp"
29#include "WsfSensorResult.hpp"
30
32
34{
35public:
36 WsfLADAR_Sensor(WsfScenario& aScenario);
39
40 WsfSensor* Clone() const override;
41 bool Initialize(double aSimTime) override;
42 bool ProcessInput(UtInput& aInput) override;
43 void Update(double aSimTime) override;
44
45 size_t GetEM_RcvrCount() const override;
46 WsfEM_Rcvr& GetEM_Rcvr(size_t aIndex) const override;
47 size_t GetEM_XmtrCount() const override;
48 WsfEM_Xmtr& GetEM_Xmtr(size_t aIndex) const override;
49
50 static double SpectralRadiantEmittance(double aTemperature, double aWavelength);
51
53 {
54 public:
55 void Print(ut::log::MessageStream& aMsgStream) override;
56
58 };
59
62 {
63 public:
64 LADAR_Mode();
65 LADAR_Mode(const LADAR_Mode& aSrc);
66 LADAR_Mode& operator=(const LADAR_Mode&) = delete;
67
68 WsfMode* Clone() const override;
69 bool Initialize(double aSimTime) override;
70 bool ProcessInput(UtInput& aInput) override;
71
72 bool AttemptToDetect(double aSimTime, WsfPlatform* aTargetPtr, Settings& aSettings, WsfSensorResult& aResult) override;
73
74 virtual bool AttemptToDetect(double aSimTime,
75 WsfPlatform* aTargetPtr,
76 WsfEM_Xmtr& aXmtr,
77 Settings& aSettings,
78 LADAR_Result& aResult);
79
80 void Deselect(double aSimTime) override;
81 void Select(double aSimTime) override;
82
84
85 double ComputeTargetSolarIrradiance(double aTargetArea, double aTargetReflectivity, double aRange, double aTransmittance);
86
87 void ComputeProbabilityOfDetection(const WsfEM_Xmtr& aXmtr, LADAR_Result& aResult);
88
89 double ComputeGaussianDetectionProbability(double aSignal, double aNoise, double aThreshold) const;
90
92
95
98
101
104
107
110
113
116
118 UtCloneablePtr<UtTable::Curve> mDetectionProbabilityPtr;
119 };
120
121protected:
123 std::vector<LADAR_Mode*> mLADAR_ModeList;
124};
125
126#endif
Definition WsfEM_Antenna.hpp:49
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
void Select(double aSimTime) override
Definition WsfLADAR_Sensor.cpp:586
WsfLASER_XmtrComponent * mLASER_XmtrComponentPtr
The xmtr component for laser transmission.
Definition WsfLADAR_Sensor.hpp:100
double mIntegrationGain
Integration gain for the simple detector.
Definition WsfLADAR_Sensor.hpp:112
void ComputeBackgroundRadiance()
Definition WsfLADAR_Sensor.cpp:234
WsfEM_Rcvr mRcvr
The receiver for a Mode.
Definition WsfLADAR_Sensor.hpp:97
double mBackgroundSpectralIrradiance
Background irradiance (user specified or computed from the background temperature).
Definition WsfLADAR_Sensor.hpp:109
bool AttemptToDetect(double aSimTime, WsfPlatform *aTargetPtr, Settings &aSettings, WsfSensorResult &aResult) override
Definition WsfLADAR_Sensor.cpp:427
LADAR_Mode & operator=(const LADAR_Mode &)=delete
double mBackgroundTemperature
Blackbody temperature for the background. (deg-K).
Definition WsfLADAR_Sensor.hpp:106
UtCloneablePtr< UtTable::Curve > mDetectionProbabilityPtr
Probability of detection table (Pd vs. S/N).
Definition WsfLADAR_Sensor.hpp:118
WsfMode * Clone() const override
Create an exact duplicate of this mode.
Definition WsfLADAR_Sensor.cpp:330
double mDetectionThreshold
The detection threshold for the simple detector.
Definition WsfLADAR_Sensor.hpp:115
void ComputeProbabilityOfDetection(const WsfEM_Xmtr &aXmtr, LADAR_Result &aResult)
Definition WsfLADAR_Sensor.cpp:601
double ComputeTargetSolarIrradiance(double aTargetArea, double aTargetReflectivity, double aRange, double aTransmittance)
Definition WsfLADAR_Sensor.cpp:259
WsfEM_Xmtr mXmtr
The transmitter for a Mode.
Definition WsfLADAR_Sensor.hpp:94
bool Initialize(double aSimTime) override
Definition WsfLADAR_Sensor.cpp:337
WsfEM_Antenna mAntenna
Definition WsfLADAR_Sensor.hpp:91
double ComputeGaussianDetectionProbability(double aSignal, double aNoise, double aThreshold) const
Definition WsfLADAR_Sensor.cpp:638
void Deselect(double aSimTime) override
Definition WsfLADAR_Sensor.cpp:578
LADAR_Mode()
Definition WsfLADAR_Sensor.cpp:288
bool ProcessInput(UtInput &aInput) override
Definition WsfLADAR_Sensor.cpp:376
WsfLASER_RcvrComponent * mLASER_RcvrComponentPtr
The rcvr component for laser reception.
Definition WsfLADAR_Sensor.hpp:103
Definition WsfLADAR_Sensor.hpp:53
WsfLASER_RcvrComponent::DetectionData mDetectionData
Definition WsfLADAR_Sensor.hpp:57
void Print(ut::log::MessageStream &aMsgStream) override
Print the interaction data to standard output.
Definition WsfLADAR_Sensor.cpp:138
WsfSensor * Clone() const override
Definition WsfLADAR_Sensor.cpp:66
WsfLADAR_Sensor & operator=(const WsfLADAR_Sensor &)=delete
WsfLADAR_Sensor(WsfScenario &aScenario)
Definition WsfLADAR_Sensor.cpp:43
bool ProcessInput(UtInput &aInput) override
Definition WsfLADAR_Sensor.cpp:84
bool Initialize(double aSimTime) override
Definition WsfLADAR_Sensor.cpp:73
std::vector< LADAR_Mode * > mLADAR_ModeList
The sensor-specific list of modes (not valid until Initialize is called).
Definition WsfLADAR_Sensor.hpp:123
size_t GetEM_RcvrCount() const override
Definition WsfLADAR_Sensor.cpp:104
WsfEM_Rcvr & GetEM_Rcvr(size_t aIndex) const override
Definition WsfLADAR_Sensor.cpp:112
size_t GetEM_XmtrCount() const override
Definition WsfLADAR_Sensor.cpp:119
void Update(double aSimTime) override
Definition WsfLADAR_Sensor.cpp:91
static double SpectralRadiantEmittance(double aTemperature, double aWavelength)
Definition WsfLADAR_Sensor.cpp:205
WsfEM_Xmtr & GetEM_Xmtr(size_t aIndex) const override
Definition WsfLADAR_Sensor.cpp:127
Definition WsfLASER_RcvrComponent.hpp:66
Definition WsfLASER_RcvrComponent.hpp:23
Definition WsfLASER_XmtrComponent.hpp:22
WsfMode()
Definition WsfMode.cpp:15
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfSensorMode()
Definition WsfSensorMode.cpp:47
Definition WsfSensorResult.hpp:27
WsfSensorResult()=default
Definition WsfSensor.hpp:133
WsfSensor(const WsfScenario &aScenario)
Definition WsfSensor.cpp:52
Copyrights Multiple, All Rights Reserved