00001 // $Id: ocsLumpedLoss.hh,v 1.2 2006/05/11 23:44:58 zweck Exp $ 00002 00003 //################################################################### 00004 // 00005 // Optical Communication Systems Simulator 00006 // 00007 // Copyright (2001): 00008 // Optical Fiber Communications Laboratory (OFCL) 00009 // Computer Science & Electrical Engineering Department (CSEE) 00010 // University of Maryland Baltimore County (UMBC) 00011 // 00012 //################################################################### 00013 00014 #ifndef _OCS_LUMPED_LOSS_HH_ 00015 #define _OCS_LUMPED_LOSS_HH_ 00016 00017 00018 #include "ocsOptSignal.hh" 00019 #include "ocsReduLumpedLoss.hh" 00020 00021 // Written by John Zweck Jan 5, 2001. 00022 00023 // Sometimes the only thing you want to model about an optical device 00024 // is its loss. 00025 // This class is used to model the loss of such optical devices 00026 00027 // It could be easily extended to model the loss of electrical devices 00028 // by adding another constructor which is passed a Photodetector 00029 // rather than an OptSignal. 00030 00031 00032 00033 class LumpedLoss 00034 { 00035 public: 00036 00037 LumpedLoss(double LossdB2, OptSignal *oOptSignal2); 00038 LumpedLoss(string InFileName, OptSignal *oOptSignal2); 00039 00040 void InitLumpedLoss(double LossdB2, OptSignal *oOptSignal2); 00041 00042 void SwitchOptSignalData(OptSignal *oOptSignal2); 00043 void ApplyLumpedLoss(); 00044 void SetLossdB(double LossdB2); 00045 double GetLossdB(void) {return LossdB;}; 00046 double GetLossLinear(void) {return LossLinear;}; 00047 00048 private: 00049 00050 typeSimulation TypeSimulation; 00051 double LossdB; 00052 double LossLinear; 00053 double LossLinearSqrt; 00054 OptSignal * oOptSignal; 00055 fftMatrices sfftM; 00056 ReduLumpedLoss * oReduLumpedLoss; 00057 }; 00058 00059 00060 00061 #endif /* _OCS_LUMPED_LOSS_HH_ */