Main Page   Namespace List   Compound List   File List   Compound Members   File Members  

copy-ocsOptDataWriter.hh

Go to the documentation of this file.
00001 // $Id: ocsOptDataWriter.hh,v 1.7 2002/06/21 21:20:36 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_OPT_DATA_WRITER_HH_
00015 #define _OCS_OPT_DATA_WRITER_HH_
00016 
00017 #include "ocsOptSignal.hh"
00018 #include "ocsOptSpectrumAnalyzer.hh"
00019 #include "PulseEvolutionAnalyzer.hh"
00020 
00021 // ##### Class OptDataWriter ############
00022 
00023 /* This class was written on May 2nd by John Zweck to control the output
00024    of optical data. The flags and methods declared below should give you
00025    a good idea of the different sorts of optical data which are handled
00026    by this class. Note that OSA output and SNR data are not handled by this
00027    class. Neither is any electrically related output, which is already
00028    nicely handled by the ReceiverSubsystem class. (JZ)
00029    The methods assume that the first Monte Carlo experiment is numbered 0.
00030 */
00031 
00032 
00033 class OptDataWriter
00034 {
00035   
00036   // ####### Public Methods ########
00037   
00038 public:
00039   
00040   OptDataWriter(string InFileName,string InDir2,
00041                 string Job2, OptSignal * Signal2);
00042   
00043   void WriteInitialData(void);
00044   void WriteWithinMap(int expt_num, int map_number, double PropagatedLength);
00045   void WriteEndMap(int expt_num, int map_number, double PropagatedLength);
00046   void WriteEndTransmission(int expt_num, int map_number, 
00047                             double PropagatedLength);
00048   void TurnOffWriteFlags(int expt_num);    
00049   
00050   int GetWritePulseWidthInFiberFlag() {return WritePulseWidthInFiberFlag;};
00051   int GetOutputStepSizesFlag() {return OutputStepSizesFlag;};
00052   
00053   bool GetComputeMeanZerosStdDevOnes() {return ComputeMeanZerosStdDevOnes;};
00054   int GetComputeEnergyInBitSlot() {return ComputeEnergyInBitSlot;};
00055   
00056   //#### Public Data ########
00057   
00058   
00059   PulseEvolutionAnalyzer * PEA;
00060   
00061   // ########## Private Data ##########
00062   
00063 private:
00064   
00065 OptSignal * Signal;
00066 string Job;
00067   
00068 OptSpectrumAnalyzer * PowerMeter;
00069 
00070 
00071 bool WriteComplexFieldsFlag;
00072 bool WritePowerChannelFlag;
00073 int  ChannelArrayIndexForPower;
00074 bool WritePowerFlag; 
00075 
00076 bool WriteDistanceTimePowerFlag;
00077 bool WriteDistanceTimePowerWithinMapFlag;
00078 bool WriteDistanceTimePowerPhaseFlag;
00079 bool WriteDistanceTimePowerPhaseWithinMapFlag;
00080  
00081 bool WritePowerMapFlag;
00082 bool WriteAccDispFlag;
00083 
00084 bool WritePulseWidthFlag;
00085 bool WriteAverageChirpFlag;
00086 
00087 bool WriteLocalFreqFlag;
00088 
00089 bool WriteInitialOptDataFlag;
00090 bool WriteFinalOptDataFlag;  
00091        // To write optical data at end of first Monte Carlo experiment
00092 
00093 int NumSlicesZ; // Required for DistanceTime and DistanceTimePhase output
00094 int TimeIndexIncrement;
00095 
00096 bool OmitDCFlag; // For writing out frequency data
00097 
00098   bool ComputeTimeFreqShifts;
00099   bool ComputeTimingJitter;
00100   bool ComputeMeanZerosStdDevOnes;
00101   int ComputeEnergyInBitSlot;
00102 
00103 int OutputStepSizesFlag;
00104 int  WritePulseWidthInFiberFlag;
00105 
00106 bool WriteDOPFlag;
00107 double RelMinFreqDOP,RelMaxFreqDOP;
00108   
00109 
00110 
00111 };
00112 
00113 #endif /* _OCS_OPT_DATA_WRITER_HH_ */
00114 
00115 
00116 
00117 
00118 
00119 
00120 
00121 
00122 

Generated at Mon Jun 9 20:08:09 2003 for OCS by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000