Multi1DRecObjective.h
Go to the documentation of this file.00001 #ifndef MULTI1DRECOBJECTIVE_H_
00002 #define MULTI1DRECOBJECTIVE_H_
00003
00004 #include "PlottableObjective.h"
00005 #include <vector>
00006 #include "C1DRecObjective.h"
00007 #include "AbsVelRecObjective.h"
00008 #include <boost/shared_ptr.hpp>
00009
00010 namespace gplib
00011 {
00012
00013 class Multi1DRecObjective: public PlottableObjective
00014 {
00015 private:
00016 std::vector<boost::shared_ptr<C1DRecObjective> > Objectives;
00017 public:
00018
00019 virtual Multi1DRecObjective *clone() const
00020 {
00021 return new Multi1DRecObjective(*this);
00022 }
00023
00024 void SetTimeWindow(const double start, const double end);
00025
00026 void SetPoisson(const double ratio);
00027
00028 void AddRecFunction(boost::shared_ptr<const SeismicDataComp> TheRecData,
00029 const int myshift, const double mysigma, const double myc,
00030 const double myslowness, const RecCalc::trfmethod method,
00031 const double errorlevel, const bool normalized);
00032
00033 void AddAbsVelFunction(
00034 boost::shared_ptr<const SeismicDataComp> TheRecData,
00035 SurfaceWaveData &AbsVel, const int myshift, const double mysigma,
00036 const double myc, const double myslowness,
00037 const RecCalc::trfmethod method, const double errorlevel,
00038 const bool normalized, const double absvelweight,
00039 const double recweight);
00040
00041 virtual void PreParallel(const ttranscribed &member);
00042
00043 virtual double PostParallel(const ttranscribed &member);
00044
00045 virtual void SafeParallel(const ttranscribed &member);
00046
00047 virtual void WriteData(const std::string &filename);
00048
00049 void WriteModel(const std::string &filename);
00050
00051 void WritePlot(const std::string &filename);
00052 Multi1DRecObjective(const Multi1DRecObjective &Old);
00053 Multi1DRecObjective& operator=(const Multi1DRecObjective& source);
00054 Multi1DRecObjective();
00055 virtual ~Multi1DRecObjective();
00056 };
00057 }
00058 #endif