30 std::vector<IAxis*> result;
31 for (
size_t i = 0; i <
rank(); ++i)
39 ASSERT(i_axis < name_maps.size());
40 const auto& name_map = name_maps[i_axis];
42 ASSERT(it != name_map.cend());
48 std::vector<IAxis*> axes;
49 for (
size_t i = 0; i <
rank(); ++i)
61 ss <<
"Unit type error in " << method
62 <<
": unknown or unsupported unit type. Available units "
64 for (
auto unit : available)
66 throw std::runtime_error(ss.str());
Defines the macro ASSERT.
#define ASSERT(condition)
Defines axisUnitLabel and maps in namespace AxisNames.
const std::map< Coords, const char * > axisUnitLabel
Defines and implements templated class Datafield.
Defines interface ICoordSystem and possible axis units.
Stores radiation power per bin.
void setVector(const std::vector< double > &data_vector)
Sets new values to raw data vector.
std::vector< double > flatVector() const
Returns copy of raw data vector.
std::vector< IAxis * > defaultAxes() const
Coords substituteDefaultUnits(Coords units) const
virtual Datafield * createConvertedData(const Datafield &data, Coords units) const
Creates Datafield array in converter units.
virtual IAxis * createConvertedAxis(size_t i_axis, Coords units) const =0
virtual std::vector< std::map< Coords, std::string > > createNameMaps() const =0
virtual Coords defaultUnits() const =0
std::string axisName(size_t i_axis, Coords units=Coords::UNDEFINED) const
void throwUnitsError(std::string method, std::vector< Coords > available) const
std::vector< IAxis * > convertedAxes(Coords units) const
virtual size_t rank() const =0