From 1990af3af008ca15c55421200dbc0bf7d19d3cc0 Mon Sep 17 00:00:00 2001 From: Antti Soininen <soininen@ill.fr> Date: Tue, 15 Jan 2019 11:45:33 +0100 Subject: [PATCH] Simplify vertical axis binning NumbericAxis::createBinBoundaries and BinEdgeAxis::createBinBoundaries both do the expected binning correctly. Re #24492 --- Framework/Algorithms/src/Rebin2D.cpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/Framework/Algorithms/src/Rebin2D.cpp b/Framework/Algorithms/src/Rebin2D.cpp index b4d04b679e4..d4c1011bf72 100644 --- a/Framework/Algorithms/src/Rebin2D.cpp +++ b/Framework/Algorithms/src/Rebin2D.cpp @@ -77,7 +77,7 @@ void Rebin2D::init() { void Rebin2D::exec() { // Information to form input grid MatrixWorkspace_const_sptr inputWS = getProperty("InputWorkspace"); - NumericAxis *oldAxis2 = dynamic_cast<API::NumericAxis *>(inputWS->getAxis(1)); + const NumericAxis *oldAxis2 = dynamic_cast<API::NumericAxis *>(inputWS->getAxis(1)); if (!oldAxis2) { throw std::invalid_argument( "Vertical axis is not a numeric axis, cannot rebin. " @@ -87,16 +87,9 @@ void Rebin2D::exec() { const auto &oldXEdges = inputWS->x(0); const size_t numXBins = inputWS->blocksize(); const size_t numYBins = inputWS->getNumberHistograms(); - std::vector<double> oldYEdges; - if (numYBins == oldAxis2->length()) { - // Pt data on axis 2, create bins - oldYEdges = oldAxis2->createBinBoundaries(); - } else { - oldYEdges.resize(oldAxis2->length()); - for (size_t i = 0; i < oldAxis2->length(); ++i) { - oldYEdges[i] = (*oldAxis2)(i); - } - } + // This will convert plain NumericAxis to bin edges while + // BinEdgeAxis will just return its edges. + const std::vector<double> oldYEdges = oldAxis2->createBinBoundaries(); // Output grid and workspace. Fills in the new X and Y bin vectors // MantidVecPtr newXBins; -- GitLab