00001 #ifndef SOUGAUSSIAN_H 00002 #define SOUGAUSSIAN_H 00003 00004 #include "soubase.h" 00005 #include "objects1d.h" 00006 #include "parametermap.h" 00007 00008 #ifndef SWIG 00009 enum GaussianParameter {Amplitude,Sigma,Offset}; 00010 #endif 00011 00012 class CGaussianSource: public CSourceFtnBase, public CObject1d 00013 { 00014 00015 public: 00016 CGaussianSource():mAmplitude(0.0),mSigma(0.0),mOffset(0.0){} 00017 ~CGaussianSource(){} 00018 00019 double getValue(double r) const{return const_cast<CGaussianSource*>(this)->Function(r);} 00020 double getError(double r) const{return 0.;} 00021 00022 void SetParameter(GaussianParameter ParameterName,double value); 00023 00024 // read/write to parameter map 00025 virtual bool Read(const parameterMap& s); 00026 virtual bool Write(parameterMap& s); 00027 00028 private: 00029 double mAmplitude; 00030 double mSigma; 00031 double mOffset; 00032 double Function(double r); 00033 }; 00034 00035 typedef CLocator<CGaussianSource> CLoGaussianSource; 00036 00037 #endif