/** * Creates the member workspaces from an initial result workspace and the member * names. * * @param initialWS The initial result workspace. * @param members A vector of the member names. * @return A vector of the created members workspaces. */ std::vector<MatrixWorkspace_sptr> ExtractQENSMembers::createMembersWorkspaces( MatrixWorkspace_sptr initialWS, const std::vector<std::string> &members) { std::vector<MatrixWorkspace_sptr> memberWorkspaces; memberWorkspaces.reserve(members.size()); for (auto i = 0u; i < members.size(); ++i) memberWorkspaces.emplace_back(extractSpectrum(initialWS, i)); return memberWorkspaces; }
/** * Calculates raw counts according to period arithmetic * @returns Workspace containing result of calculation */ MatrixWorkspace_sptr MuonGroupCountsCalculator::calculate() const { MatrixWorkspace_sptr outWS; int numPeriods = m_inputWS->getNumberOfEntries(); if (numPeriods > 1) { // Several periods supplied MatrixWorkspace_sptr tempWS = sumPeriods(m_summedPeriods); if (!m_subtractedPeriods.empty()) { MatrixWorkspace_sptr toSubtractWS = sumPeriods(m_subtractedPeriods); tempWS = subtractWorkspaces(tempWS, toSubtractWS); } outWS = extractSpectrum(tempWS, m_groupIndex); } else { // Only one period supplied outWS = extractSpectrum(m_inputWS->getItem(0), m_groupIndex); } return outWS; }
/** * Appends the n-th spectra in the specified result workspace to the n-th * specified member workspace. * * @param resultWS The result workspace. * @param members A vector containing the member workspaces. */ void ExtractQENSMembers::appendToMembers( MatrixWorkspace_sptr resultWS, std::vector<Mantid::API::MatrixWorkspace_sptr> &members) { for (auto i = 0u; i < members.size(); ++i) members[i] = appendSpectra(members[i], extractSpectrum(resultWS, i)); }