From 638dbee9e2726f8227c892e81edcc19223234371 Mon Sep 17 00:00:00 2001 From: Michael Wedel Date: Fri, 1 May 2015 12:07:16 +0200 Subject: [PATCH] Refs #11674. Adding 2theta - 2theta_0 to 2DHelper --- .../MantidSINQ/PoldiUtilities/PoldiSpectrumDomainFunction.h | 5 +++-- .../SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp | 3 +++ 2 files changed, 6 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 83022d463941..a2becbdb7a8c 100644 --- a/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiSpectrumDomainFunction.h +++ b/Code/Mantid/Framework/SINQ/inc/MantidSINQ/PoldiUtilities/PoldiSpectrumDomainFunction.h @@ -41,8 +41,8 @@ namespace Poldi { struct MANTID_SINQ_DLL Poldi2DHelper { /// Default constructor Poldi2DHelper() - : dFractionalOffsets(), dOffsets(), domain(), values(), factors(), deltaD(), - minTOFN() {} + : dFractionalOffsets(), dOffsets(), domain(), values(), factors(), + deltaD(), deltaTwoTheta(), minTOFN() {} /// Transforms the chopper slit offsets for a given 2theta/distance pair. void setChopperSlitOffsets(double distance, double sinTheta, double deltaD, @@ -95,6 +95,7 @@ struct MANTID_SINQ_DLL Poldi2DHelper { std::vector factors; double deltaD; + double deltaTwoTheta; int minTOFN; }; diff --git a/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp b/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp index 1eb8ca7a8a2a..b549bfbc23b7 100644 --- a/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp +++ b/Code/Mantid/Framework/SINQ/src/PoldiUtilities/PoldiSpectrumDomainFunction.cpp @@ -229,6 +229,8 @@ void PoldiSpectrumDomainFunction::initializeInstrumentParameters( double dMin = Conversions::qToD(qLimits.second); double dMax = Conversions::dToQ(qLimits.first); + double centreTwoTheta = detector->twoTheta(detector->centralElement()); + for (int i = 0; i < static_cast(detector->elementCount()); ++i) { double sinTheta = sin(detector->twoTheta(i) / 2.0); double distance = @@ -239,6 +241,7 @@ void PoldiSpectrumDomainFunction::initializeInstrumentParameters( curr->setChopperSlitOffsets(distance, sinTheta, deltaD, m_chopperSlitOffsets); curr->setDomain(dMin, dMax, deltaD); + curr->deltaTwoTheta = (detector->twoTheta(i) - centreTwoTheta); curr->deltaD = deltaD; curr->minTOFN = static_cast( Conversions::dtoTOF(dMin, distance, sinTheta) / m_deltaT);