WSF
WsfMarcumSwerling.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#ifndef WSFMARCUMSWERLING_HPP
13#define WSFMARCUMSWERLING_HPP
14
15#include "wsf_export.h"
16
17#include <string>
18
19class UtInput;
20#include "UtMath.hpp"
21#include "WsfSensorDetector.hpp"
22class WsfSensorMode;
23
24namespace wsf
25{
26
29{
30public:
37
39 ~MarcumSwerling() override = default;
40
41 MarcumSwerling* Clone() const override;
42
43 bool Initialize(double aSimTime, WsfSensorMode* aModePtr, size_t aBeamIndex = 0) override;
44 bool ProcessInput(UtInput& aInput) override;
45
46 double ComputeProbabilityOfDetection(double aSignalToNoise,
47 double aDetectionThreshold = UtMath::DB_ToLinear(3.0)) override;
48
49 void SetCase(int aCase);
50 int GetCase() const { return mCase; }
51
52 void SetDetectorLaw(DetectorLaw aDetectorLaw);
53 DetectorLaw GetDetectorLaw() const { return mDetectorLaw; }
54
55 void SetNumberOfPulsesIntegrated(int aNumberOfPulsesIntegrated);
56 int GetNumberOfPulsesIntegrated() const { return mNumberOfPulsesIntegrated; }
57
58 void SetProbabilityOfFalseAlarm(double aProbabilityOfFalseAlarm);
59 double GetProbabilityOfFalseAlarm() const { return mProbabilityOfFalseAlarm; }
60
61 static SensorDetector* ObjectFactory(const std::string& aTypeName);
62
63private:
64 void ComputeConstants();
65
66 // Input
67 int mCase;
68 int mNumberOfPulsesIntegrated;
69 double mProbabilityOfFalseAlarm;
70 DetectorLaw mDetectorLaw;
71
72 // Calculated / Flags
73 bool mComputeConstants;
74 double mBase;
75 double mExp;
76};
77
78} // namespace wsf
79
80#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfSensorMode.hpp:36
Computation of probability of detection using the Marcum-Swerling algorithm.
Definition WsfMarcumSwerling.hpp:29
int GetNumberOfPulsesIntegrated() const
Definition WsfMarcumSwerling.hpp:56
MarcumSwerling * Clone() const override
Definition WsfMarcumSwerling.cpp:39
DetectorLaw
Definition WsfMarcumSwerling.hpp:32
@ cDL_LINEAR
Definition WsfMarcumSwerling.hpp:33
@ cDL_LOG
Definition WsfMarcumSwerling.hpp:35
@ cDL_SQUARE
Definition WsfMarcumSwerling.hpp:34
int GetCase() const
Definition WsfMarcumSwerling.hpp:50
bool ProcessInput(UtInput &aInput) override
Definition WsfMarcumSwerling.cpp:132
~MarcumSwerling() override=default
bool Initialize(double aSimTime, WsfSensorMode *aModePtr, size_t aBeamIndex=0) override
Definition WsfMarcumSwerling.cpp:44
double GetProbabilityOfFalseAlarm() const
Definition WsfMarcumSwerling.hpp:59
DetectorLaw GetDetectorLaw() const
Definition WsfMarcumSwerling.hpp:53
MarcumSwerling()
Definition WsfMarcumSwerling.cpp:27
double ComputeProbabilityOfDetection(double aSignalToNoise, double aDetectionThreshold=UtMath::DB_ToLinear(3.0)) override
Definition WsfMarcumSwerling.cpp:187
void SetCase(int aCase)
Definition WsfMarcumSwerling.cpp:216
Definition WsfSensorDetector.hpp:36
SensorDetector()
Definition WsfSensorDetector.cpp:24
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved