Ticket #4957: Muon_MuonFInteraction.h

File Muon_MuonFInteraction.h, 3.3 KB (added by Karl Palmen, 9 years ago)
Line 
1#ifndef MANTID_CURVEFITTING_Muon_MuonFInteraction_H_
2#define MANTID_CURVEFITTING_Muon_MuonFInteraction_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_MuonFInteraction : public API::IPeakFunction
49    {
50    public:
51      /// Destructor
52      virtual ~Muon_MuonFInteraction() {};
53
54
55      /// overwrite IPeakFunction base class methods
56     // virtual double A0()const {return getParameter("Initial Asym");}
57     // virtual double s()const {return getParameter("Sigma");}
58         
59         
60      virtual double f()const {return getParameter("omiga");}
61          virtual double Beta()const {return getParameter("Beta");}
62          virtual double phi()const {return getParameter("A");}
63
64      virtual double centre()const {return getParameter("lambda");}
65      virtual double height()const {return getParameter("A");}
66      virtual double width()const {return 1/getParameter("omiga");}
67      virtual void setCentre(const double c) {setParameter("lambda",c);}
68      virtual void setHeight(const double h) {setParameter("A",h);}
69      virtual void setWidth(const double w) {setParameter("omiga",1/w);}
70
71
72      /// Here specify name of function as it will appear
73      std::string name()const{return "Muon_MuonFInteraction";}
74    protected:
75      virtual void functionLocal(double* out, const double* xValues, const int& nData)const;
76      virtual void functionDerivLocal(API::Jacobian* out, const double* xValues, const int& nData);
77      /// overwrite IFunction base class method, which declare function parameters
78      virtual void init();
79
80    };
81
82  } // namespace CurveFitting
83} // namespace Mantid
84
85#endif /*MANTID_CURVEFITTING_Muon_MuonFInteraction_H_*/