GatedLaserSource.h revision 10447
110447Snilay@cs.wisc.edu#ifndef __DSENT_MODEL_OPTICAL_GATEDLASERSOURCE_H__ 210447Snilay@cs.wisc.edu#define __DSENT_MODEL_OPTICAL_GATEDLASERSOURCE_H__ 310447Snilay@cs.wisc.edu 410447Snilay@cs.wisc.edu#include "util/CommonType.h" 510447Snilay@cs.wisc.edu#include "model/OpticalModel.h" 610447Snilay@cs.wisc.edu 710447Snilay@cs.wisc.edunamespace DSENT 810447Snilay@cs.wisc.edu{ 910447Snilay@cs.wisc.edu // A laser source that outputs some number of wavelengths. This laser 1010447Snilay@cs.wisc.edu // full on/off power gating, thus all power are event-based energies 1110447Snilay@cs.wisc.edu class GatedLaserSource : public OpticalModel 1210447Snilay@cs.wisc.edu { 1310447Snilay@cs.wisc.edu public: 1410447Snilay@cs.wisc.edu GatedLaserSource(const String& instance_name_, const TechModel* tech_model_); 1510447Snilay@cs.wisc.edu virtual ~GatedLaserSource(); 1610447Snilay@cs.wisc.edu 1710447Snilay@cs.wisc.edu public: 1810447Snilay@cs.wisc.edu // Set a list of properties' name needed to construct model 1910447Snilay@cs.wisc.edu void initParameters(); 2010447Snilay@cs.wisc.edu // Set a list of properties' name needed to construct model 2110447Snilay@cs.wisc.edu void initProperties(); 2210447Snilay@cs.wisc.edu 2310447Snilay@cs.wisc.edu protected: 2410447Snilay@cs.wisc.edu // Build the model 2510447Snilay@cs.wisc.edu void constructModel(); 2610447Snilay@cs.wisc.edu void updateModel(); 2710447Snilay@cs.wisc.edu void evaluateModel(); 2810447Snilay@cs.wisc.edu 2910447Snilay@cs.wisc.edu }; // class GatedLaserSource 3010447Snilay@cs.wisc.edu} // namespace DSENT 3110447Snilay@cs.wisc.edu 3210447Snilay@cs.wisc.edu#endif // __DSENT_MODEL_OPTICAL_GATEDLASERSOURCE_H__ 3310447Snilay@cs.wisc.edu 34