BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ImportDataInfo Class Reference

Carries information about loaded data. More...

Public Member Functions

 ImportDataInfo ()
 
 ImportDataInfo (ImportDataInfo &&other)
 
 ImportDataInfo (OutputData< double > &&data, Axes::Units units)
 
 ImportDataInfo (std::unique_ptr< OutputData< double >> data, Axes::Units units)
 
 ImportDataInfo (std::unique_ptr< OutputData< double >> data, const QString &units)
 
 ~ImportDataInfo ()
 
QString axisLabel (size_t axis_index) const
 
size_t dataRank () const
 Returns number of dimensions. More...
 
std::unique_ptr< OutputData< double > > intensityData () &&
 
std::unique_ptr< OutputData< double > > intensityData () const &
 
 operator bool () const
 True if the contained data is not nullptr (no info about empty data) More...
 
QString unitsLabel () const
 

Private Member Functions

void checkValidity ()
 

Private Attributes

std::unique_ptr< OutputData< double > > m_data
 
Axes::Units m_units
 

Detailed Description

Carries information about loaded data.

Definition at line 26 of file ImportDataInfo.h.

Constructor & Destructor Documentation

◆ ImportDataInfo() [1/5]

ImportDataInfo::ImportDataInfo ( )
default

◆ ImportDataInfo() [2/5]

ImportDataInfo::ImportDataInfo ( ImportDataInfo &&  other)

Definition at line 38 of file ImportDataInfo.cpp.

39  : m_data(std::move(other.m_data)), m_units(other.m_units)
40 {
41 }
Axes::Units m_units
std::unique_ptr< OutputData< double > > m_data

◆ ImportDataInfo() [3/5]

ImportDataInfo::ImportDataInfo ( std::unique_ptr< OutputData< double >>  data,
Axes::Units  units 
)

Definition at line 43 of file ImportDataInfo.cpp.

44  : m_data(units == Axes::Units::NBINS && data
46  : std::move(data))
47  , m_units(units)
48 {
49  checkValidity();
50 }
std::unique_ptr< OutputData< double > > CreateSimplifiedOutputData(const OutputData< double > &data)
Creates OutputData with bin-valued axes.

References checkValidity().

Here is the call graph for this function:

◆ ImportDataInfo() [4/5]

ImportDataInfo::ImportDataInfo ( OutputData< double > &&  data,
Axes::Units  units 
)

Definition at line 58 of file ImportDataInfo.cpp.

59  : ImportDataInfo(std::unique_ptr<OutputData<double>>(new OutputData<double>(std::move(data))),
60  units)
61 {
62 }

◆ ImportDataInfo() [5/5]

ImportDataInfo::ImportDataInfo ( std::unique_ptr< OutputData< double >>  data,
const QString &  units 
)

Definition at line 52 of file ImportDataInfo.cpp.

53  : m_data(std::move(data)), m_units(JobItemUtils::axesUnitsFromName(units_label))
54 {
55  checkValidity();
56 }
Axes::Units axesUnitsFromName(const QString &name)
returns domain axes units type from their GUI name

References checkValidity().

Here is the call graph for this function:

◆ ~ImportDataInfo()

ImportDataInfo::~ImportDataInfo ( )
default

Member Function Documentation

◆ axisLabel()

QString ImportDataInfo::axisLabel ( size_t  axis_index) const

Definition at line 95 of file ImportDataInfo.cpp.

96 {
97  if (!m_data)
98  return "";
99 
100  const size_t rank = m_data->rank();
101  if (rank == 2)
102  return axis_index == 0 ? "X [nbins]" : "Y [nbins]";
103  else if (rank == 1) {
104  if (axis_index > 0)
105  return "Signal [a.u.]";
106 
107  auto label_map = AxisNames::InitSpecAxis();
108  return QString::fromStdString(label_map[m_units]);
109  }
110  throw GUIHelpers::Error("Error in ImportDataInfo::axisLabel: unsupported data type");
111 }
std::map< Axes::Units, std::string > InitSpecAxis()
Definition: AxisNames.cpp:82

References AxisNames::InitSpecAxis(), m_data, and m_units.

Referenced by IntensityDataItem::reset(), and SpecularDataItem::reset().

Here is the call graph for this function:

◆ checkValidity()

void ImportDataInfo::checkValidity ( )
private

Definition at line 113 of file ImportDataInfo.cpp.

114 {
115  if (!m_data)
116  return;
117  auto iter = available_units.find(m_data->rank());
118  if (iter == available_units.end())
119  throw GUIHelpers::Error("Error in ImportDataInfo constructor: unsupported data type");
120  for (auto& value : iter->second)
121  if (m_units == value)
122  return;
123 
124  throw GUIHelpers::Error("Error in ImportDataInfo constructor: inacceptable units passed.");
125 }

References m_data, and m_units.

Referenced by ImportDataInfo().

◆ dataRank()

size_t ImportDataInfo::dataRank ( ) const

Returns number of dimensions.

Definition at line 83 of file ImportDataInfo.cpp.

84 {
85  if (!m_data)
86  return 0;
87  return m_data->rank();
88 }

References m_data.

Referenced by RealDataItem::setImportData().

◆ intensityData() [1/2]

std::unique_ptr< OutputData< double > > ImportDataInfo::intensityData ( ) &&

Definition at line 78 of file ImportDataInfo.cpp.

79 {
80  return std::move(m_data);
81 }

◆ intensityData() [2/2]

std::unique_ptr< OutputData< double > > ImportDataInfo::intensityData ( ) const &

Definition at line 71 of file ImportDataInfo.cpp.

72 {
73  if (!m_data)
74  return nullptr;
75  return std::unique_ptr<OutputData<double>>(m_data->clone());
76 }

References m_data.

Referenced by RealDataItem::setImportData().

◆ operator bool()

ImportDataInfo::operator bool ( ) const

True if the contained data is not nullptr (no info about empty data)

Definition at line 66 of file ImportDataInfo.cpp.

67 {
68  return static_cast<bool>(m_data);
69 }

◆ unitsLabel()

QString ImportDataInfo::unitsLabel ( ) const

Definition at line 90 of file ImportDataInfo.cpp.

91 {
93 }
QString nameFromAxesUnits(Axes::Units units)
returns axes units names from their domain counterpart

References m_units, and JobItemUtils::nameFromAxesUnits().

Referenced by IntensityDataItem::reset(), SpecularDataItem::reset(), and RealDataItem::setImportData().

Here is the call graph for this function:

Member Data Documentation

◆ m_data

std::unique_ptr<OutputData<double> > ImportDataInfo::m_data
private

Definition at line 51 of file ImportDataInfo.h.

Referenced by axisLabel(), checkValidity(), dataRank(), and intensityData().

◆ m_units

Axes::Units ImportDataInfo::m_units
private

Definition at line 52 of file ImportDataInfo.h.

Referenced by axisLabel(), checkValidity(), and unitsLabel().


The documentation for this class was generated from the following files: