Exemplo n.º 1
0
/**
 * 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;
}
Exemplo n.º 2
0
/**
 * 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;
}
Exemplo n.º 3
0
/**
 * 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));
}