BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
AxisNames.cpp
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file Device/Coord/AxisNames.cpp
6 //! @brief Implements functions in namespace AxisNames.
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #include "Device/Coord/AxisNames.h"
16 #include <map>
17 
19 
20 // For spherical detectors in GISAS simulations
21 BA_DEVICE_API_ const std::map<Coords, std::string> sphericalAxis0 = {
22  {Coords::NBINS, "X [nbins]"},
23  {Coords::RADIANS, "phi_f [rad]"},
24  {Coords::DEGREES, "phi_f [deg]"},
25  {Coords::QSPACE, "Qy [1/nm]"},
26  {Coords::QXQY, "Qx [1/nm]"}};
27 BA_DEVICE_API_ const std::map<Coords, std::string> sphericalAxis1 = {
28  {Coords::NBINS, "Y [nbins]"},
29  {Coords::RADIANS, "alpha_f [rad]"},
30  {Coords::DEGREES, "alpha_f [deg]"},
31  {Coords::QSPACE, "Qz [1/nm]"},
32  {Coords::QXQY, "Qy [1/nm]"}};
33 
34 // For rectangular detectors in GISAS simulations
35 BA_DEVICE_API_ const std::map<Coords, std::string> rectangularAxis0 = {
36  {Coords::NBINS, "X [nbins]"}, {Coords::RADIANS, "phi_f [rad]"},
37  {Coords::DEGREES, "phi_f [deg]"}, {Coords::MM, "X [mm]"},
38  {Coords::QSPACE, "Qy [1/nm]"}, {Coords::QXQY, "Qx [1/nm]"}};
39 BA_DEVICE_API_ const std::map<Coords, std::string> rectangularAxis1 = {
40  {Coords::NBINS, "Y [nbins]"}, {Coords::RADIANS, "alpha_f [rad]"},
41  {Coords::DEGREES, "alpha_f [deg]"}, {Coords::MM, "Y [mm]"},
42  {Coords::QSPACE, "Qz [1/nm]"}, {Coords::QXQY, "Qy [1/nm]"}};
43 
44 // For off-specular simulations (both spherical and rectangular detectors)
45 // Currently 'mm' is not supported for the y-axis
46 BA_DEVICE_API_ const std::map<Coords, std::string> offspecAxis0 = {
47  {Coords::NBINS, "X [nbins]"},
48  {Coords::RADIANS, "alpha_i [rad]"},
49  {Coords::DEGREES, "alpha_i [deg]"}};
50 BA_DEVICE_API_ const std::map<Coords, std::string> offspecAxis1 = {
51  {Coords::NBINS, "Y [nbins]"},
52  {Coords::RADIANS, "alpha_f [rad]"},
53  {Coords::DEGREES, "alpha_f [deg]"}};
54 
55 BA_DEVICE_API_ const std::map<Coords, std::string> specAxis = {{Coords::NBINS, "X [nbins]"},
56  {Coords::RADIANS, "alpha_i [rad]"},
57  {Coords::DEGREES, "alpha_i [deg]"},
58  {Coords::QSPACE, "Q [1/nm]"},
59  {Coords::RQ4, "Q [1/nm]"}};
60 
61 BA_DEVICE_API_ const std::map<Coords, std::string> specAxisQ = {
62  {Coords::NBINS, "X [nbins]"}, {Coords::QSPACE, "Q [1/nm]"}, {Coords::RQ4, "Q [1/nm]"}};
63 
64 // corner case: axis corresponding to the position
65 // across sample is accepts only bins and nanometers,
66 // but the units specified in dedicated unit
67 // converter correspond to inclination angular axis.
68 // For this reason depth axis map returns always
69 // nanometers except for bins.
70 
71 BA_DEVICE_API_ const std::map<Coords, std::string> sampleDepthAxis = {
72  {Coords::NBINS, "Y [nbins]"},
73  {Coords::RADIANS, "Position [nm]"},
74  {Coords::DEGREES, "Position [nm]"},
75  {Coords::QSPACE, "Position [nm]"}};
76 
77 } // namespace DataUtils::AxisNames
Defines axisUnitLabel and maps in namespace AxisNames.
#define BA_DEVICE_API_
Macro for export/import global data symbols (Windows only). Relevant for Windows only....
Definition: WinDllMacros.h:56
Contains const maps that give the right axis names for different detector types and units.
Definition: AxisNames.cpp:18
BA_DEVICE_API_ const std::map< Coords, std::string > specAxisQ
Definition: AxisNames.cpp:61
BA_DEVICE_API_ const std::map< Coords, std::string > offspecAxis0
Definition: AxisNames.cpp:46
BA_DEVICE_API_ const std::map< Coords, std::string > specAxis
Definition: AxisNames.cpp:55
BA_DEVICE_API_ const std::map< Coords, std::string > sphericalAxis1
Definition: AxisNames.cpp:27
BA_DEVICE_API_ const std::map< Coords, std::string > rectangularAxis1
Definition: AxisNames.cpp:39
BA_DEVICE_API_ const std::map< Coords, std::string > sampleDepthAxis
Definition: AxisNames.cpp:71
BA_DEVICE_API_ const std::map< Coords, std::string > sphericalAxis0
Definition: AxisNames.cpp:21
BA_DEVICE_API_ const std::map< Coords, std::string > rectangularAxis0
Definition: AxisNames.cpp:35
BA_DEVICE_API_ const std::map< Coords, std::string > offspecAxis1
Definition: AxisNames.cpp:50