From 12637d5a55526be8880aaf33d578f1bde579e746 Mon Sep 17 00:00:00 2001 From: Michael Wedel Date: Fri, 1 May 2015 12:07:44 +0200 Subject: [PATCH] Refs #11674. Added overridable method for peak center --- .../PoldiUtilities/PoldiSpectrumDomainFunction.h | 2 ++ .../PoldiUtilities/PoldiSpectrumDomainFunction.cpp | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiSpectrumDomainFunction.h b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiSpectrumDomainFunction.h index a2becbdb7a8c..179e66b0e509 100644 --- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiSpectrumDomainFunction.h +++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiSpectrumDomainFunction.h @@ -260,6 +260,8 @@ class MANTID_SINQ_DLL PoldiSpectrumDomainFunction protected: virtual void init(); + virtual double getPeakCenter(const Poldi2DHelper_sptr &poldi2DHelper) const; + void initializeParametersFromWorkspace( const DataObjects::Workspace2D_const_sptr &workspace2D); void initializeInstrumentParameters( diff --git a/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp b/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp index b549bfbc23b7..8f221a169043 100644 --- a/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp +++ b/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp @@ -63,7 +63,7 @@ void PoldiSpectrumDomainFunction::function1DSpectrum( int domainSize = static_cast(domain.size()); double fwhm = m_profileFunction->fwhm(); - double centre = m_profileFunction->centre(); + double centre = getPeakCenter(helper); double dWidth = 2.0 * fwhm; double dCalcMin = centre - dWidth; @@ -119,7 +119,7 @@ void PoldiSpectrumDomainFunction::functionDeriv1DSpectrum( size_t domainSize = domain.size(); double fwhm = m_profileFunction->fwhm(); - double centre = m_profileFunction->centre(); + double centre = getPeakCenter(helper); double dWidth = 2.0 * fwhm; double dCalcMin = centre - dWidth; @@ -185,6 +185,13 @@ IPeakFunction_sptr PoldiSpectrumDomainFunction::getProfileFunction() const { /// Does nothing. void PoldiSpectrumDomainFunction::init() {} +/// Returns the centre parameter of the decorated profile function. +double PoldiSpectrumDomainFunction::getPeakCenter( + const Poldi2DHelper_sptr &poldi2DHelper) const { + UNUSED_ARG(poldi2DHelper) + return m_profileFunction->centre(); +} + /** * Extracts the time difference as well as instrument information *