12#include "MantidNexus/NexusFile.h"
76 std::string axesInfo();
78 void pushAxis(
const std::string &
name,
double axisx,
double axisy,
double axisz,
double angle = 0.,
int sense = CCW,
79 int angUnit = angDegrees);
82 void setRotationAngle(
const std::string &
name,
double value);
85 void setRotationAngle(
size_t axisnumber,
double value);
88 void calcFromQSampleAndWavelength(
const Mantid::Kernel::V3D &Q,
double wavelength,
bool flip_x =
false,
95 size_t getNumberAxes()
const;
97 void makeUniversalGoniometer();
99 std::vector<double> getEulerAngles(
const std::string &convention =
"YZX");
102 std::string getConventionFromMotorAxes()
const;
104 void saveNexus(Nexus::File *file,
const std::string &
group)
const;
105 void loadNexus(Nexus::File *file,
const std::string &
group);
107 bool isDefined()
const;
double value
The value of the point.
Class to represent a particular goniometer setting, which is described by the rotation matrix.
virtual ~Goniometer()=default
bool m_initFromR
Flag to specify if the goniometer is initialized from a rotation matrix.
std::vector< GoniometerAxis > m_motors
Motors vector contains GoniometerAxis objects, the last one is the closest to the sample.
Kernel::DblMatrix m_R
Global rotation matrix of the goniometer.
Helper class which provides the Collimation Length for SANS instruments.
constexpr bool operator==(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)
constexpr bool operator!=(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)
Counter clockwise rotation.
void loadNexus(Nexus::File *file, const std::string &group)
double angle
GoniometerAxis direction.
int angleunit
Rotation sense (1 for CCW, -1 for CW)
Kernel::V3D rotationaxis
GoniometerAxis name.
GoniometerAxis(std::string initname, const Kernel::V3D &initrotationaxis, double initangle, int initsense, int initangleunit)
angle units are angDegrees or angRadians (see AngleUnits.h)
void saveNexus(Nexus::File *file, const std::string &group) const