ThrottledLaserSource.h revision 10447:a465576671d4
1#ifndef __DSENT_MODEL_OPTICAL_THROTTLEDLASERSOURCE_H__ 2#define __DSENT_MODEL_OPTICAL_THROTTLEDLASERSOURCE_H__ 3 4#include "util/CommonType.h" 5#include "model/OpticalModel.h" 6 7namespace DSENT 8{ 9 class OpticalWavelength; 10 11 // A laser source that outputs some number of wavelengths. This laser 12 // full on/off power gating, thus all power are event-based energies 13 class ThrottledLaserSource : public OpticalModel 14 { 15 public: 16 ThrottledLaserSource(const String& instance_name_, const TechModel* tech_model_); 17 virtual ~ThrottledLaserSource(); 18 19 public: 20 // Set a list of properties' name needed to construct model 21 void initParameters(); 22 // Set a list of properties' name needed to construct model 23 void initProperties(); 24 25 protected: 26 // Build the model 27 void constructModel(); 28 void updateModel(); 29 void evaluateModel(); 30 void useModel(); 31 32 private: 33 // Data structure containing the wavelengths that this laser outputs 34 OpticalWavelength* m_wavelength_; 35 36 }; // class ThrottledLaserSource 37} // namespace DSENT 38 39#endif // __DSENT_MODEL_OPTICAL_THROTTLEDLASERSOURCE_H__ 40 41