diff --git a/Framework/DataObjects/src/FractionalRebinning.cpp b/Framework/DataObjects/src/FractionalRebinning.cpp index fea485fb22207b1ec9148b87b17592c564b594e9..ff317cc6cce6395dd66c2e835c69e0ea3bd6092b 100644 --- a/Framework/DataObjects/src/FractionalRebinning.cpp +++ b/Framework/DataObjects/src/FractionalRebinning.cpp @@ -479,7 +479,7 @@ void normaliseOutput(MatrixWorkspace_sptr outputWS, MatrixWorkspace_const_sptr inputWS, boost::shared_ptr<Progress> progress) { const bool removeBinWidth(inputWS->isDistribution() && - inputWS->id() != "RebinnedOutput"); + outputWS->id() != "RebinnedOutput"); for (int64_t i = 0; i < static_cast<int64_t>(outputWS->getNumberHistograms()); ++i) { const auto &outputX = outputWS->x(i); @@ -604,10 +604,12 @@ void rebinToFractionalOutput(const Quadrilateral &inputQ, // Don't do the overlap removal if already RebinnedOutput. // This wreaks havoc on the data. double error = inE[j]; - if (inputWS->isDistribution() && inputWS->id() != "RebinnedOutput") { + double inputWeight = 1.; + if (inputWS->isDistribution() && !inputRB) { const double overlapWidth = inX[j + 1] - inX[j]; signal *= overlapWidth; error *= overlapWidth; + inputWeight = overlapWidth; } // The intersection overlap algorithm is relatively costly. The outputQ is @@ -630,7 +632,6 @@ void rebinToFractionalOutput(const Quadrilateral &inputQ, // If the input is a RebinnedOutput workspace with frac. area we need // to account for the weight of the input bin in the output bin weights - double inputWeight = 1.; if (inputRB) { const auto &inF = inputRB->dataF(i); inputWeight = inF[j];