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