28 const std::map<QString, Axes::Units> units_from_names{{
"nbins", Axes::Units::NBINS},
29 {
"Radians", Axes::Units::RADIANS},
30 {
"Degrees", Axes::Units::DEGREES},
31 {
"mm", Axes::Units::MM},
32 {
"q-space", Axes::Units::QSPACE}};
34 const std::map<Axes::Units, QString> names_from_units{{Axes::Units::NBINS,
"nbins"},
35 {Axes::Units::RADIANS,
"Radians"},
36 {Axes::Units::MM,
"mm"},
37 {Axes::Units::QSPACE,
"q-space"},
38 {Axes::Units::DEGREES,
"Degrees"}};
51 if (!instrumentItem) {
54 qInfo() <<
"JobItemUtils::updateDataAxes() -> Error. Absent instrument.";
76 return names_from_units.find(units) != names_from_units.end() ? names_from_units.at(units)
84 return units_from_names.at(
name);
117 const auto sim_result = simulation->
result();
119 const auto& converter = sim_result.
converter();
124 auto data = sim_result.data(selected_units);
#define ASSERT(condition)
Defines DomainObjectBuilder namespace.
Defines class GUIHelpers functions.
Defines interface ISimulation.
Defines InstrumentItems classes.
Defines class JobItemUtils.
Defines class RealDataItem.
Declares utilities for unit converters.
Custom property to define list of string values with multiple selections.
QVariant variant() const
Constructs variant enclosing given ComboProperty.
void setValue(const QString &name)
Provides common functionality for IntensityDataItem and SpecularDataItem.
virtual void setAxesRangeToData()=0
OutputData< double > * getOutputData()
virtual void setOutputData(OutputData< double > *data)=0
The given pointer becomes owned by this class!!
virtual void setXaxisTitle(const QString &title)=0
QString selectedAxesUnits() const
virtual void setYaxisTitle(const QString &title)=0
static const QString P_AXES_UNITS
Abstract base class of OffSpecularSimulation, GISASSimulation and SpecularSimulation.
virtual SimulationResult result() const =0
Returns the results of the simulation in a format that supports unit conversion and export to numpy a...
Interface to provide axis translations to different units for simulation output.
virtual size_t dimension() const =0
virtual Axes::Units defaultUnits() const =0
virtual std::vector< Axes::Units > availableUnits() const =0
std::string axisName(size_t i_axis, Axes::Units units_type=Axes::Units::DEFAULT) const
std::vector< T > getRawDataVector() const
Returns copy of raw data vector.
void setItemValue(const QString &tag, const QVariant &variant)
Directly set value of item under given tag.
const IUnitConverter & converter() const
Returns underlying unit converter.
void updateAxesTitle(Data1DViewItem *view_item)
std::unique_ptr< IUnitConverter > createUnitConverter(const InstrumentItem *instrumentItem)
Creates a unit converter corresponding to the given instrument item.
ComboProperty availableUnits(const IUnitConverter &converter)
void setResults(DataItem *intensityItem, const ISimulation *simulation)
Sets simulation results into the DataItem.
void updateDataAxes(DataItem *intensityItem, const InstrumentItem *instrumentItem)
updates axes of OutputData in IntensityData item
Axes::Units axesUnitsFromName(const QString &name)
returns domain axes units type from their GUI name
QString nameFromAxesUnits(Axes::Units units)
returns axes units names from their domain counterpart
void setIntensityItemAxesUnits(DataItem *intensityItem, const InstrumentItem *instrumentItem)
Sets axes units suitable for given instrument.
void createDefaultDetectorMap(DataItem *intensityItem, const InstrumentItem *instrumentItem)
QString const & name(EShape k)
std::unique_ptr< OutputData< double > > createOutputData(const IUnitConverter &converter, Axes::Units units)
Returns zero-valued output data array in specified units.