Ticket #4955: Muon_Stretched_Exponential.h

File Muon_Stretched_Exponential.h, 3.0 KB (added by Karl Palmen, 9 years ago)
Line 
1#ifndef MANTID_CURVEFITTING_Muon_Stretched_Exponential_H_
2#define MANTID_CURVEFITTING_Muon_Stretched_Exponential_H_
3
4//----------------------------------------------------------------------
5// Includes
6//----------------------------------------------------------------------
7#include "MantidAPI/IPeakFunction.h"
8//#include "MantidAPI/IFunctionWithLocation.h"
9namespace Mantid
10{
11  namespace CurveFitting
12  {
13    /**
14    Provide lorentzian peak shape function interface to IPeakFunction.
15    I.e. the function: Height*( HWHM^2/((x-PeakCentre)^2+HWHM^2) ).
16
17
18    LorentzianTest parameters:
19    <UL>
20    <LI> Height - height of peak (default 0.0)</LI>
21    <LI> PeakCentre - centre of peak (default 0.0)</LI>
22    <LI> HWHM - half-width half-maximum (default 1.0)</LI>
23    </UL>
24
25    @author Anders Markvardsen, ISIS, RAL
26    @date 27/10/2009
27
28    Copyright &copy; 2007-8 ISIS Rutherford Appleton Laboratory & NScD Oak Ridge National Laboratory
29
30    This file is part of Mantid.
31
32    Mantid is free software; you can redistribute it and/or modify
33    it under the terms of the GNU General Public License as published by
34    the Free Software Foundation; either version 3 of the License, or
35    (at your option) any later version.
36
37    Mantid is distributed in the hope that it will be useful,
38    but WITHOUT ANY WARRANTY; without even the implied warranty of
39    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
40    GNU General Public License for more details.
41
42    You should have received a copy of the GNU General Public License
43    along with this program.  If not, see <http://www.gnu.org/licenses/>.
44
45    File change history is stored at: <https://svn.mantidproject.org/mantid/trunk/Code/Mantid>
46    Code Documentation is available at: <http://doxygen.mantidproject.org>
47    */
48    class DLLExport Muon_Stretched_Exponential : public API::IPeakFunction
49    {
50    public:
51      /// Destructor
52      virtual ~Muon_Stretched_Exponential() {};
53
54
55      /// overwrite IPeakFunction base class methods
56     // virtual double A0()const {return getParameter("A");}
57     // virtual double s()const {return getParameter("lambda");}
58
59         
60         
61      virtual double centre()const {return getParameter("lambda");}
62      virtual double height()const {return getParameter("A");}
63      virtual double width()const {return 20;}
64      virtual void setCentre(const double c) {setParameter("lambda",c);}
65      virtual void setHeight(const double h) {setParameter("A",h);}
66      virtual void setWidth(const double w) {}
67
68
69      /// Here specify name of function as it will appear
70      std::string name()const{return "Muon_Stretched_Exponential";}
71
72
73    protected:
74      virtual void functionLocal(double* out, const double* xValues, const int& nData)const;
75      virtual void functionDerivLocal(API::Jacobian* out, const double* xValues, const int& nData);
76      virtual void init();
77
78    };
79
80  } // namespace CurveFitting
81} // namespace Mantid
82
83#endif /*MANTID_CURVEFITTING_Muon_Stretched_Exponential_H_*/