From 05a5e64f499247916f7d25ffb774ed91549a333e Mon Sep 17 00:00:00 2001 From: Peter Peterson <petersonpf@ornl.gov> Date: Thu, 3 Oct 2013 12:38:55 -0400 Subject: [PATCH] Re #8074. Made MaskDetectors and AlignDetectors optional. --- .../src/AlignAndFocusPowder.cpp | 43 +++++++++++++------ 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp index 5219c0f2938..566942f45f4 100644 --- a/Code/Mantid/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp +++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/AlignAndFocusPowder.cpp @@ -346,23 +346,40 @@ namespace WorkflowAlgorithms } } - g_log.information() << "running MaskDetectors\n"; - API::IAlgorithm_sptr maskAlg = createChildAlgorithm("MaskDetectors"); - maskAlg->setProperty("Workspace", m_outputW); - maskAlg->setProperty("MaskedWorkspace", m_maskWS); - maskAlg->executeAsChildAlg(); - m_outputW = maskAlg->getProperty("Workspace"); + if (m_maskWS) + { + g_log.information() << "running MaskDetectors\n"; + API::IAlgorithm_sptr maskAlg = createChildAlgorithm("MaskDetectors"); + maskAlg->setProperty("Workspace", m_outputW); + maskAlg->setProperty("MaskedWorkspace", m_maskWS); + maskAlg->executeAsChildAlg(); + m_outputW = maskAlg->getProperty("Workspace"); + } if(!dspace) m_outputW = rebin(m_outputW); - g_log.information() << "running AlignDetectors\n"; - API::IAlgorithm_sptr alignAlg = createChildAlgorithm("AlignDetectors"); - alignAlg->setProperty("InputWorkspace", m_outputW); - alignAlg->setProperty("OutputWorkspace", m_outputW); - alignAlg->setProperty("OffsetsWorkspace", m_offsetsWS); - alignAlg->executeAsChildAlg(); - m_outputW = alignAlg->getProperty("OutputWorkspace"); + if (m_offsetsWS) + { + g_log.information() << "running AlignDetectors\n"; + API::IAlgorithm_sptr alignAlg = createChildAlgorithm("AlignDetectors"); + alignAlg->setProperty("InputWorkspace", m_outputW); + alignAlg->setProperty("OutputWorkspace", m_outputW); + alignAlg->setProperty("OffsetsWorkspace", m_offsetsWS); + alignAlg->executeAsChildAlg(); + m_outputW = alignAlg->getProperty("OutputWorkspace"); + } + else + { + g_log.information() << "running ConvertUnits\n"; + API::IAlgorithm_sptr convertUnitsAlg = createChildAlgorithm("ConvertUnits"); + convertUnitsAlg->setProperty("InputWorkspace", m_outputW); + convertUnitsAlg->setProperty("OutputWorkspace", m_outputW); + convertUnitsAlg->setProperty("Target", "dSpacing"); + convertUnitsAlg->setProperty("EMode", "Elastic"); + convertUnitsAlg->executeAsChildAlg(); + m_outputW = convertUnitsAlg->getProperty("OutputWorkspace"); + } if(LRef > 0. || minwl > 0. || DIFCref > 0.) { -- GitLab