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 //! This class is used to model several receiver functions simultaneously
00011 class Multi1DRecObjective : public PlottableObjective
00012   {
00013 private:
00014     std::vector<boost::shared_ptr<C1DRecObjective> > Objectives;
00015 public:
00016     //! return a pointer to a copy of the current object
00017     virtual Multi1DRecObjective *clone() const
00018       {
00019         return new Multi1DRecObjective(*this);
00020       }
00021     void SetTimeWindow(const double start, const double end);
00022     void SetPoisson(const double ratio);
00023     void AddRecFunction(boost::shared_ptr<const SeismicDataComp> TheRecData, const int myshift,
00024         const double myomega, const double mysigma, const double myc,
00025         const double myslowness, const RecCalc::trfmethod method,
00026         const double errorlevel);
00027     void AddAbsVelFunction(boost::shared_ptr<const SeismicDataComp> TheRecData, SurfaceWaveData &AbsVel,
00028         const int myshift, const double myomega, const double mysigma,
00029         const double myc, const double myslowness,
00030         const RecCalc::trfmethod method, const double errorlevel,
00031         const double absvelweight, const double recweight);
00032     virtual void PreParallel(const ttranscribed &member);
00033     virtual double PostParallel(const ttranscribed &member);
00034     virtual void SafeParallel(const ttranscribed &member);
00035     virtual void WriteData(const std::string &filename);
00036     //! Write the current model to ascii file for calculations
00037     void WriteModel(const std::string &filename);
00038     //! Write the current model to ascii file for plotting
00039     void WritePlot(const std::string &filename);
00040     Multi1DRecObjective(const Multi1DRecObjective &Old);
00041     Multi1DRecObjective& operator=(const Multi1DRecObjective& source);
00042     Multi1DRecObjective();
00043     virtual ~Multi1DRecObjective();
00044   };
00045 
00046 #endif /*MULTI1DRECOBJECTIVE_H_*/

Generated on Fri Jul 4 15:30:21 2008 for GPLIB++ by  doxygen 1.5.5