OpticalDetector.cc revision 10447
110447Snilay@cs.wisc.edu
210447Snilay@cs.wisc.edu#include "model/optical_graph/OpticalDetector.h"
310447Snilay@cs.wisc.edu#include "model/optical_graph/OpticalReceiver.h"
410447Snilay@cs.wisc.edu
510447Snilay@cs.wisc.edunamespace DSENT
610447Snilay@cs.wisc.edu{
710447Snilay@cs.wisc.edu    OpticalDetector::OpticalDetector(const String& instance_name_, OpticalModel* model_, const WavelengthGroup& wavelengths_, OpticalReceiver* receiver_)
810447Snilay@cs.wisc.edu        : OpticalNode(OpticalNode::DETECTOR, instance_name_, model_, wavelengths_), m_receiver_(receiver_), m_responsivity_(0)
910447Snilay@cs.wisc.edu    {
1010447Snilay@cs.wisc.edu        m_sensitivity_ = 0.0;
1110447Snilay@cs.wisc.edu    }
1210447Snilay@cs.wisc.edu
1310447Snilay@cs.wisc.edu    OpticalDetector::~OpticalDetector()
1410447Snilay@cs.wisc.edu    {
1510447Snilay@cs.wisc.edu
1610447Snilay@cs.wisc.edu    }
1710447Snilay@cs.wisc.edu
1810447Snilay@cs.wisc.edu    void OpticalDetector::setResponsivity(double responsivity_)
1910447Snilay@cs.wisc.edu    {
2010447Snilay@cs.wisc.edu        m_responsivity_ = responsivity_;
2110447Snilay@cs.wisc.edu        return;
2210447Snilay@cs.wisc.edu    }
2310447Snilay@cs.wisc.edu
2410447Snilay@cs.wisc.edu    double OpticalDetector::getSensitivity(double ER_dB_) const
2510447Snilay@cs.wisc.edu    {
2610447Snilay@cs.wisc.edu        // Get responsivity (in Amps) of the receiver, divide by responsivity to get sensitivity in Watts
2710447Snilay@cs.wisc.edu        return m_receiver_->getSensitivity(ER_dB_) / m_responsivity_;
2810447Snilay@cs.wisc.edu    }
2910447Snilay@cs.wisc.edu
3010447Snilay@cs.wisc.edu} // namespace DSENT
3110447Snilay@cs.wisc.edu
3210447Snilay@cs.wisc.edu
33