OpticalDetector.cc revision 10447:a465576671d4
18981Sandreas.hansson@arm.com
28981Sandreas.hansson@arm.com#include "model/optical_graph/OpticalDetector.h"
38981Sandreas.hansson@arm.com#include "model/optical_graph/OpticalReceiver.h"
48981Sandreas.hansson@arm.com
58981Sandreas.hansson@arm.comnamespace DSENT
68981Sandreas.hansson@arm.com{
78981Sandreas.hansson@arm.com    OpticalDetector::OpticalDetector(const String& instance_name_, OpticalModel* model_, const WavelengthGroup& wavelengths_, OpticalReceiver* receiver_)
88981Sandreas.hansson@arm.com        : OpticalNode(OpticalNode::DETECTOR, instance_name_, model_, wavelengths_), m_receiver_(receiver_), m_responsivity_(0)
98981Sandreas.hansson@arm.com    {
108981Sandreas.hansson@arm.com        m_sensitivity_ = 0.0;
118981Sandreas.hansson@arm.com    }
128981Sandreas.hansson@arm.com
138981Sandreas.hansson@arm.com    OpticalDetector::~OpticalDetector()
148981Sandreas.hansson@arm.com    {
158981Sandreas.hansson@arm.com
168981Sandreas.hansson@arm.com    }
178981Sandreas.hansson@arm.com
188981Sandreas.hansson@arm.com    void OpticalDetector::setResponsivity(double responsivity_)
198981Sandreas.hansson@arm.com    {
208981Sandreas.hansson@arm.com        m_responsivity_ = responsivity_;
218981Sandreas.hansson@arm.com        return;
228981Sandreas.hansson@arm.com    }
238981Sandreas.hansson@arm.com
248981Sandreas.hansson@arm.com    double OpticalDetector::getSensitivity(double ER_dB_) const
258981Sandreas.hansson@arm.com    {
268981Sandreas.hansson@arm.com        // Get responsivity (in Amps) of the receiver, divide by responsivity to get sensitivity in Watts
278981Sandreas.hansson@arm.com        return m_receiver_->getSensitivity(ER_dB_) / m_responsivity_;
288981Sandreas.hansson@arm.com    }
298981Sandreas.hansson@arm.com
308981Sandreas.hansson@arm.com} // namespace DSENT
318981Sandreas.hansson@arm.com
328981Sandreas.hansson@arm.com
338981Sandreas.hansson@arm.com