OpticalDetector.h revision 10447
110447Snilay@cs.wisc.edu#ifndef __DSENT_MODEL_OPTICALGRAPH_OPTICALDETECTOR_H__ 210447Snilay@cs.wisc.edu#define __DSENT_MODEL_OPTICALGRAPH_OPTICALDETECTOR_H__ 310447Snilay@cs.wisc.edu 410447Snilay@cs.wisc.edu#include "model/optical_graph/OpticalNode.h" 510447Snilay@cs.wisc.edu#include "util/CommonType.h" 610447Snilay@cs.wisc.edu 710447Snilay@cs.wisc.edunamespace DSENT 810447Snilay@cs.wisc.edu{ 910447Snilay@cs.wisc.edu class OpticalReceiver; 1010447Snilay@cs.wisc.edu 1110447Snilay@cs.wisc.edu class OpticalDetector : public OpticalNode 1210447Snilay@cs.wisc.edu { 1310447Snilay@cs.wisc.edu public: 1410447Snilay@cs.wisc.edu OpticalDetector(const String& instance_name_, OpticalModel* model_, const WavelengthGroup& wavelengths_, OpticalReceiver* receiver_); 1510447Snilay@cs.wisc.edu ~OpticalDetector(); 1610447Snilay@cs.wisc.edu 1710447Snilay@cs.wisc.edu public: 1810447Snilay@cs.wisc.edu // Set the responsitivity of the photodetector 1910447Snilay@cs.wisc.edu void setResponsivity(double responsivity_); 2010447Snilay@cs.wisc.edu 2110447Snilay@cs.wisc.edu // Get the detector sensitivity given an extinction ratio (in Watts) 2210447Snilay@cs.wisc.edu double getSensitivity(double ER_dB_) const; 2310447Snilay@cs.wisc.edu 2410447Snilay@cs.wisc.edu // Ask the receiver for its power (ONLY use for power optimization, as this 2510447Snilay@cs.wisc.edu // assumes an activity of 1.0) 2610447Snilay@cs.wisc.edu double getPower() const; 2710447Snilay@cs.wisc.edu 2810447Snilay@cs.wisc.edu private: 2910447Snilay@cs.wisc.edu // Disable copy constructor 3010447Snilay@cs.wisc.edu OpticalDetector(const OpticalDetector& node_); 3110447Snilay@cs.wisc.edu 3210447Snilay@cs.wisc.edu private: 3310447Snilay@cs.wisc.edu // The required laser power 3410447Snilay@cs.wisc.edu double m_sensitivity_; 3510447Snilay@cs.wisc.edu // The receiver connected to this detector 3610447Snilay@cs.wisc.edu OpticalReceiver* m_receiver_; 3710447Snilay@cs.wisc.edu // Responsivity of the photodetector 3810447Snilay@cs.wisc.edu double m_responsivity_; 3910447Snilay@cs.wisc.edu 4010447Snilay@cs.wisc.edu }; 4110447Snilay@cs.wisc.edu 4210447Snilay@cs.wisc.edu} // namespace DSENT 4310447Snilay@cs.wisc.edu 4410447Snilay@cs.wisc.edu#endif // __DSENT_MODEL_OPTICALGRAPH_OPTICALDETECTOR_H__ 4510447Snilay@cs.wisc.edu 46