|
WSF
|
#include <WsfLASER_RcvrComponent.hpp>


Classes | |
| class | DetectionData |
Public Member Functions | |
| WsfLASER_RcvrComponent () | |
| WsfLASER_RcvrComponent (const WsfLASER_RcvrComponent &aSrc)=default | |
| WsfLASER_RcvrComponent & | operator= (const WsfLASER_RcvrComponent &)=delete |
| double | GetAntennaGain (double aXmtr_Wavelength) const |
| double | GetInstantaneousFieldOfView () const |
| Return the instantaneous field-of-view of this receiver. | |
| double | GetApertureDiameter () const |
| Return the diameter of the receiver (detector) aperture. | |
| double | GetApertureSolidAngle () const |
| Return the solid angle subtended by the aperture at the detector. | |
| double | GetApertureArea () const |
| Return the aperture area. | |
| double | GetOpticsTransmissionFactor () const |
| Return the fraction of the transmitted laser light that passes through the receiver optics. | |
| double | GetResponsivity () const |
| Return the responsivity of the detector (amps of current produced per watt of incident radiation [wavelength dependent]). | |
| virtual DetectionData | ComputeDetectionData (double aSignalRadiance, double aSignalIrradiance, double aBackgroundRadiance, double aBackgroundIrradiance, double aIntegrationTime) |
| virtual | |
| virtual void | AddInteractor (WsfEM_Xmtr *aXmtrPtr) |
| virtual void | RemoveInteractor (WsfEM_Xmtr *aXmtrPtr) |
| Public Member Functions inherited from WsfComponentT< WsfEM_Rcvr > | |
| WsfComponentT () | |
| WsfComponentT & | operator= (const WsfComponentT &) noexcept |
| ~WsfComponentT () override=default | |
| virtual void | ComponentParentChanged (ParentType *aParentPtr) |
| ParentType * | GetComponentParent () const |
| void | SetComponentParent (ParentType *aParentPtr) |
| Public Member Functions inherited from WsfComponent | |
| virtual | ~WsfComponent ()=default |
| virtual int | GetComponentInitializationOrder () const |
| template<typename T> | |
| bool | QueryInterfaceT (T *&aRolePtr) |
| bool | ComponentHasRole (int aRole) |
| Returns true if the component has the specified role. | |
| virtual bool | PreInitialize (double aSimTime) |
| virtual bool | Initialize2 (double aSimTime) |
| virtual void | PreInput () |
Protected Attributes | |
| double | mApertureDiameter |
| Defines the diameter of the receiver (detector) aperture. | |
| double | mApertureSolidAngle |
| The solid angle subtended by the aperture at the detector. | |
| double | mApertureArea |
| The area of the aperture (assumed circular). | |
| double | mOpticsTransmissionFactor |
| double | mFocalLength |
| Optionally used to compute the aperture solid angle. | |
| double | mDetectorSize |
| The length or width of the physical detector. | |
| double | mPhotonEnergy |
| The photon energy at the center wavelength of the detector. | |
| double | mIFOV |
| The instantaneous field of view (FOV of one detector element not always applicable). | |
| double | mQuantumEfficiency |
| The fraction of electrons that are produced for each incident photon. | |
| double | mResponsivity |
| Computed from quantum efficiency, this is the number of amps produced per incident watt of power. | |
| double | mDetectorGain |
| Gain of the photodetector. | |
| double | mCircuitTemperature |
| The temperature of the integrating circuit; used to compute thermal noise. | |
| double | mCircuitCapacitance |
| Circuit capacitance of the detector integrating circuit, sometimes provided in APD spec sheets. | |
| double | mCircuitResistance |
| Circuit resistance of the detector integrating circuit. | |
| double | mThermalNoiseCountSq |
| If computed from circuit capacitance, this is the square of the thermal noise count. | |
| double | mBulkDarkCountRate |
| The "bulk" or amplified dark count rate. | |
| double | mBandPass |
| Assuming an optical filter, this defines the range of wavelengths about the center that are detected. | |
| double | mSurfaceDarkCountRate |
| The un-amplified dark count rate. | |
| double | mExcessNoiseFactor |
| Used with APD, this is the additional gain observed when measuring noise in an APD. | |
| double | mNoiseEquivalentPower |
| The incident power that would be needed to produce a S/N of one. | |
| double | mNoiseEquivalentCountRate |
| The equivalent count rate with the noise equivalent power. | |
| double | mPointingTransmissionFactor |
| Applicable only when spot size is nearly diffraction-limited. | |
WsfComponent required methods. | |
| WsfStringId | GetComponentName () const override |
| WsfComponent * | CloneComponent () const override |
| const int * | GetComponentRoles () const override |
| void * | QueryInterface (int aRole) override |
Framework methods. | |
| bool | Initialize (double aSimTime) override |
| bool | ProcessInput (UtInput &aInput) override |
Additional Inherited Members | |
| Public Types inherited from WsfComponentT< WsfEM_Rcvr > | |
| typedef WsfEM_Rcvr | ParentType |
| This is needed to support the WsfComponentList template. | |
A LASER receiver component. This component provides LASER or narrowband optical receiver attributes to be used with a WsfEM_Rcvr. It also computes detection data useful in S/N calculations for LADAR and LASER comm.
| WsfLASER_RcvrComponent::WsfLASER_RcvrComponent | ( | ) |
References mApertureArea, mApertureDiameter, mApertureSolidAngle, mBandPass, mBulkDarkCountRate, mCircuitCapacitance, mCircuitResistance, mCircuitTemperature, mDetectorGain, mDetectorSize, mExcessNoiseFactor, mFocalLength, mIFOV, mNoiseEquivalentCountRate, mNoiseEquivalentPower, mOpticsTransmissionFactor, mPhotonEnergy, mPointingTransmissionFactor, mQuantumEfficiency, mResponsivity, mSurfaceDarkCountRate, and mThermalNoiseCountSq.
Referenced by CloneComponent(), operator=(), and WsfLASER_RcvrComponent().
|
default |
References WsfLASER_RcvrComponent().
|
overridevirtual |
Clones a component. May return null if component does not support clone.
Implements WsfComponent.
References WsfLASER_RcvrComponent().
|
virtual |
virtual
Given an incident signal and noise radiance and irradiance values, compute receiver detection data consistent with conversion of incident photons to electrons (current) by a standard (PIN), or avalanche, photodiode.
| aSignalRadiance | The incident signal radiance (laser energy). |
| aSignalIrradiance | The incident signal irradiance (laser energy). |
| aBackgroundRadiance | The incident background radiance. |
| aBackgroundIrradiance | The incident background irradiance. |
| aIntegrationTime | The integration time over which the signal and background are accumulated in the detector. |
References mApertureArea, mApertureSolidAngle, mBandPass, mBulkDarkCountRate, mCircuitResistance, mCircuitTemperature, WsfLASER_RcvrComponent::DetectionData::mDarkNoiseCount, WsfLASER_RcvrComponent::DetectionData::mDarkNoiseRate, mDetectorGain, WsfLASER_RcvrComponent::DetectionData::mEnergy, WsfLASER_RcvrComponent::DetectionData::mEnvironmentalNoiseCount, WsfLASER_RcvrComponent::DetectionData::mEnvironmentalNoiseRate, mExcessNoiseFactor, WsfLASER_RcvrComponent::DetectionData::mNoiseCount, mNoiseEquivalentCountRate, mOpticsTransmissionFactor, mPhotonEnergy, WsfLASER_RcvrComponent::DetectionData::mPower, mQuantumEfficiency, WsfLASER_RcvrComponent::DetectionData::mSignalCount, WsfLASER_RcvrComponent::DetectionData::mSignalShotNoiseCount, mSurfaceDarkCountRate, WsfLASER_RcvrComponent::DetectionData::mThermalNoiseCount, and mThermalNoiseCountSq.
| double WsfLASER_RcvrComponent::GetAntennaGain | ( | double | aXmtr_Wavelength | ) | const |
Compute the "antenna gain" of the transmitter (see documentation or (1) eq. 3.80).
| aXmtr_Wavelength | The wavelength of the transmitter's laser. |
References mApertureDiameter.
|
inline |
Return the aperture area.
References mApertureArea.
|
inline |
Return the diameter of the receiver (detector) aperture.
References mApertureDiameter.
|
inline |
Return the solid angle subtended by the aperture at the detector.
References mApertureSolidAngle.
|
overridevirtual |
Returns the component's name. Each component in a component list has a unique name. Names are usually defined by the user, but they may also be generated by code and prefixed with a '#' to guarantee no collisions with user-defined names.
Implements WsfComponent.
|
overridevirtual |
Returns a zero-terminated array of component roles. Note that the array should be in decreasing order of specificity and should generally the inheritance hierarchy. The first entry should be the components 'primary' role. For example a sensor would do the following:
Implements WsfComponent.
References cWSF_COMPONENT_LASER_RCVR.
|
inline |
Return the instantaneous field-of-view of this receiver.
References mIFOV.
|
inline |
Return the fraction of the transmitted laser light that passes through the receiver optics.
References mOpticsTransmissionFactor.
|
inline |
Return the responsivity of the detector (amps of current produced per watt of incident radiation [wavelength dependent]).
References mResponsivity.
|
overridevirtual |
Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).
The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.
| aSimTime | The current simulation time. |
If the focal length and detector size of the receiver are specified, compute the instantaneous field- of-view (IFOV; the FOV of the smallest discrenable feature)
Reimplemented from WsfComponent.
References WsfEM_XmtrRcvr::GetAntenna(), WsfEM_Antenna::GetAzimuthFieldOfView(), WsfComponentT< WsfEM_Rcvr >::GetComponentParent(), WsfEM_Antenna::GetElevationFieldOfView(), WsfEM_XmtrRcvr::GetWavelength(), WsfComponent::Initialize(), mApertureArea, mApertureDiameter, mApertureSolidAngle, mBandPass, mCircuitCapacitance, mCircuitTemperature, mDetectorSize, mFocalLength, mIFOV, mNoiseEquivalentCountRate, mNoiseEquivalentPower, mPhotonEnergy, mQuantumEfficiency, mResponsivity, mThermalNoiseCountSq, ok, and WsfEM_Rcvr::SetBandwidth().
|
delete |
References WsfLASER_RcvrComponent().
|
overridevirtual |
Evaluate the current input command and determine if it is one processed by the component. The component should get the current command from the input stream and determine if it is one that it recognizes. If it does not recognize the command then it should leave the command in the input stream and return false. If it does recognize the command then it should process the command and return true. If invalid arguments are encountered then it should throw an exception.
| aInput | The input stream. |
| UtInput::ExceptionBase | if an invalid input was encountered. |
Reimplemented from WsfComponent.
References mApertureDiameter, mBandPass, mBulkDarkCountRate, mCircuitCapacitance, mCircuitTemperature, mDetectorGain, mDetectorSize, mExcessNoiseFactor, mFocalLength, mNoiseEquivalentPower, mOpticsTransmissionFactor, mPointingTransmissionFactor, mQuantumEfficiency, mResponsivity, mSurfaceDarkCountRate, and WsfComponent::ProcessInput().
|
overridevirtual |
Requests a component's role interface. A component can support one or more roles.
| aRole | The role whose interface is to be returned. |
Implements WsfComponent.
References cWSF_COMPONENT_LASER_RCVR.
|
protected |
The area of the aperture (assumed circular).
Referenced by ComputeDetectionData(), GetApertureArea(), Initialize(), and WsfLASER_RcvrComponent().
|
protected |
Defines the diameter of the receiver (detector) aperture.
Referenced by GetAntennaGain(), GetApertureDiameter(), Initialize(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
The solid angle subtended by the aperture at the detector.
Referenced by ComputeDetectionData(), GetApertureSolidAngle(), Initialize(), and WsfLASER_RcvrComponent().
|
protected |
Assuming an optical filter, this defines the range of wavelengths about the center that are detected.
Referenced by ComputeDetectionData(), Initialize(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
The "bulk" or amplified dark count rate.
Referenced by ComputeDetectionData(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
Circuit capacitance of the detector integrating circuit, sometimes provided in APD spec sheets.
Referenced by Initialize(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
Circuit resistance of the detector integrating circuit.
Referenced by ComputeDetectionData(), and WsfLASER_RcvrComponent().
|
protected |
The temperature of the integrating circuit; used to compute thermal noise.
Referenced by ComputeDetectionData(), Initialize(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
Gain of the photodetector.
Referenced by ComputeDetectionData(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
The length or width of the physical detector.
Referenced by Initialize(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
Used with APD, this is the additional gain observed when measuring noise in an APD.
Referenced by ComputeDetectionData(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
Optionally used to compute the aperture solid angle.
Referenced by Initialize(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
The instantaneous field of view (FOV of one detector element not always applicable).
Referenced by GetInstantaneousFieldOfView(), Initialize(), and WsfLASER_RcvrComponent().
|
protected |
The equivalent count rate with the noise equivalent power.
Referenced by ComputeDetectionData(), Initialize(), and WsfLASER_RcvrComponent().
|
protected |
The incident power that would be needed to produce a S/N of one.
Referenced by Initialize(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
Defines the fraction of the received laser laser light that passes through the receiver optics.
Referenced by ComputeDetectionData(), GetOpticsTransmissionFactor(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
The photon energy at the center wavelength of the detector.
Referenced by ComputeDetectionData(), Initialize(), and WsfLASER_RcvrComponent().
|
protected |
Applicable only when spot size is nearly diffraction-limited.
Referenced by ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
The fraction of electrons that are produced for each incident photon.
Referenced by ComputeDetectionData(), Initialize(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
Computed from quantum efficiency, this is the number of amps produced per incident watt of power.
Referenced by GetResponsivity(), Initialize(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
The un-amplified dark count rate.
Referenced by ComputeDetectionData(), ProcessInput(), and WsfLASER_RcvrComponent().
|
protected |
If computed from circuit capacitance, this is the square of the thermal noise count.
Referenced by ComputeDetectionData(), Initialize(), and WsfLASER_RcvrComponent().