Skip to content
Snippets Groups Projects
PeakColumn.cpp 3.01 KiB
Newer Older
#include "MantidDataObjects/PeakColumn.h"
#include "MantidKernel/System.h"

namespace Mantid
{
namespace DataObjects
{


  //----------------------------------------------------------------------------------------------
  /** Constructor
   * @param peaks :: vector of peaks
   */
  PeakColumn::PeakColumn(std::vector<Peak> & peaks, std::string name) :
      peaks(peaks)
  {
    setName(name);
  }
    
  //----------------------------------------------------------------------------------------------
  /** Destructor
   */
  PeakColumn::~PeakColumn()
  {
  }


  /// Returns typeid for the data in the column
  const std::type_info& PeakColumn::get_type_info()const
  {
  }

  /// Returns typeid for the pointer type to the data element in the column
  const std::type_info& PeakColumn::get_pointer_type_info()const
  {
  }

  /** Prints out the column string at the given row index.
   *
   * @param s :: stream to output
   * @param index :: row index
   */
  void PeakColumn::print(std::ostream& s, int index) const
  {
    Peak & peak = peaks[index];

    if (m_name == "RunNumber")
      s << peak.getRunNumber();
    else if (m_name == "DetID")
      s << peak.getDetectorID();
    else if (m_name == "h")
      s << peak.getH();
    else if (m_name == "k")
      s << peak.getK();
    else if (m_name == "l")
      s << peak.getL();
    else if (m_name == "Wavelength")
      s << peak.getWavelength();
    else if (m_name == "Energy")
      s << peak.getInitialEnergy();
    else if (m_name == "TOF")
      s << peak.getTOF();
    else if (m_name == "DSpacing")
      s << peak.getDSpacing();
    else if (m_name == "Intens")
      s << peak.getIntensity();
    else if (m_name == "SigInt")
      s << peak.getSigmaIntensity();
    else if (m_name == "BinCount")
      s << peak.getBinCount();
    else if (m_name == "BankName")
      s << peak.getBankName();
    else if (m_name == "Row")
      s << peak.getRow();
    else if (m_name == "Col")
      s << peak.getCol();
    else if (m_name == "QLab")
      s << peak.getQLabFrame();
    else if (m_name == "QSample")
      s << peak.getQSampleFrame();
    else
      throw std::runtime_error("Unexpected column name");
  }

  /// Specialized type check
  bool PeakColumn::isBool()const
  {
    return false;
  }

  /// Must return overall memory size taken by the column.
  long int PeakColumn::sizeOfData()const
  {
    return sizeof(double) * peaks.size();
  }


  /// Sets the new column size.
  void PeakColumn::resize(int /*count*/)
  {
    throw std::runtime_error("Not implemented.");
  }

  /// Inserts an item.
  void PeakColumn::insert(int /*index*/)
  {
    throw std::runtime_error("Not implemented.");
  }

  /// Removes an item.
  void PeakColumn::remove(int /*index*/)
  {
    throw std::runtime_error("Not implemented.");
  }

  /// Pointer to a data element
  void* PeakColumn::void_pointer(int /*index*/)
  {
    throw std::runtime_error("void_pointer() not implemented. Looks to be unused?");
  }

} // namespace Mantid
} // namespace DataObjects