• Main Page
  • Related Pages
  • Classes
  • Files
  • File List
  • File Members

PostDispComp.hh

Go to the documentation of this file.
00001 // $Id: 
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 _POST_DISP_COMP_SUBSYSTEM_HH_
00015 #define _POST_DISP_COMP_SUBSYSTEM_HH_
00016 
00017 
00018 #include "ocsOptSignal.hh"
00019 #include "ocsOptAmplifier.hh"
00020 #include "ocsOptFilter.hh"
00021 #include "ocsLumpedLoss.hh"
00022 #include "ocsOptFiberLocalError.hh"
00023 #include "ocsRanNumGen.hh"
00024 #include "ocsOptSpectrumAnalyzer.hh"
00025 #include "ocsOptDataWriter.hh"
00026 #include "NoiseCovariance.hh"
00027 
00028 class PostDispCompSubSystem
00029 {
00030 
00031   // ########### Methods ###################
00032 
00033 public:
00034 
00036 
00037    PostDispCompSubSystem(void);
00038 
00039    void InitApril2003(string InFileName,OptSignal * Signal2,RanNumGen * RNG2,
00040                  OptSpectrumAnalyzer * PowerMeter2,string Job2);
00041 
00042    void InitApril2003(string InFileName,OptSignal * Signal2,
00043                       NoiseCovariance * NoiseCov,RanNumGen * RNG2,
00044                       OptSpectrumAnalyzer * PowerMeter2,string Job2);
00045 
00046   PostDispCompSubSystem(string InFileName,OptSignal * SCSignal2,
00047                         RanNumGen * RNG2,
00048                         string InDir2,string Job2,
00049                         int DemuxChannArrayIndex2,OptDataWriter * DataWriter2);
00050 
00051   PostDispCompSubSystem(string InFileName,OptSignal * SCSignal2,
00052                         RanNumGen * RNG2,
00053                         string InDir2,string Job2,
00054                         int DemuxChannArrayIndex2,OptDataWriter * DataWriter2,
00055                         OptSpectrumAnalyzer * PowerMeter2);
00056 
00057 
00058   void SetRecMapNum(int Value) {RecMapNum = Value;};
00059 
00060   void ApplyPostDispComp(void);
00061   void ApplyPostDispCompNoiseCov(void);
00062 
00063 private:
00064 
00065   void ApplyPostDispCompUMBCCienaLoopApr2001(void);
00066 
00067   void AllocateMemoryUMBCCienaLoopJuly2001(void);
00068   void SetAmountPostDispCompJuly2001(void);
00069   void ApplyPostDispCompUMBCCienaLoopJuly2001(void);
00070   void ApplyPostDispCompUMBCCienaLoopJuly2001NoiseCov(void);
00071 
00072 
00073   void AdditionalDemuxFiltering(void);
00074 
00075   // ########## Data #####################
00076 
00077 private:
00078 
00079   string InDir;
00080   string Job;
00081   RanNumGen * RNG;
00082 
00083   int PostDispCompMethod;
00084   int AmountPostDispComp;  // In ps/nm; an int so can use a switch
00085   int DemuxChannArrayIndex;
00086   double FreqFWHM_OptFilter;
00087   int ApplyDemuxFilterFlag;
00088 
00089   OptSignal * SCSignal;
00090   OptDataWriter * DataWriter;
00091 
00092   // Variables for the July method
00093 
00094   int TypePostAmps;
00095   int TypePostAmpsNoise;
00096   int GammaZeroFlag;
00097   int FiberLossZeroFlag;
00098   double RelativeErrorGoal;
00099   int PreAmt;
00100   int RecMapNum;
00101   int DispType;
00102  
00103 
00104   double PostExtraLength;
00105   double PostExtraLength7,PostExtraLength10,PostExtraLength13;
00106   double PostExtraLength16,PostExtraLength19;
00107 
00108   NoiseCovariance * NoiseCov; 
00109 
00110   OptSpectrumAnalyzer * PowerMeter;
00111   OptAmplifier * PostAmpDCF;
00112 
00113   OptAmplifier * PostAmpSMF;
00114   OptAmplifier * PostAmpFinal;
00115 
00116 
00117   OptAmplifier * AmpPtr[3];
00118 
00119   OptFiberLocalError * PostLTS1;
00120   OptFiberLocalError * PostLTS2;
00121   OptFiberLocalError * PostLTS3;
00122   OptFiberLocalError * PostLTS4;
00123   OptFiberLocalError * PostLTS5;
00124 
00125   OptFiberLocalError * PostLycom1;
00126   OptFiberLocalError * PostLycom2;
00127   OptFiberLocalError * PostLycom3;
00128   OptFiberLocalError * PostLycom4;
00129   OptFiberLocalError * PostLycom5;
00130 
00131   OptFiberLocalError * PostSMF5807;
00132   OptFiberLocalError * PostSMF5809;
00133   OptFiberLocalError * PostSMF5810;
00134 
00135   OptFiberLocalError * PostDCF4_20;
00136   OptFiberLocalError * PostDCF3_10;
00137   OptFiberLocalError * PostSMF3_25;
00138   OptFiberLocalError * PostSMF186;
00139   OptFiberLocalError * PostSMFs3;
00140   OptFiberLocalError * PostSMFs4;
00141   OptFiberLocalError * PostSMF1500;
00142 
00143   OptFiberLocalError * PostExtraSMF;
00144   OptFiberLocalError * PostExtraDCF;
00145 
00146   int NumFibers;
00147 
00148   OptFiberLocalError * FiberPtr[22];
00149 
00150 };
00151 
00152 #endif // _POST_DISP_COMP_SUBSYSTEM_HH_
00153 
00154 
00155 
00156 
00157 
00158 
00159 
00160 
00161 
00162 
00163 

Generated on Fri Jul 2 2010 12:57:48 for OCS by  doxygen 1.7.1