21 : m_beam(beam), m_detector(detector.clone())
62 throw std::runtime_error(
63 "Instrument::initDetector() -> Error. Detector is not initialized.");
69 std::vector<const INode*> result;
#define ASSERT(condition)
Defines class Histogram2D.
Defines interface class IResolutionFunction2D.
Defines class Instrument.
Defines class SphericalDetector.
An incident neutron or x-ray beam.
void setDirection(const Direction &direction)
void setWavelength(double wavelength)
Abstract detector interface.
IDetector * clone() const override=0
Base class for tree-like structures containing parameterized objects.
void registerChild(INode *node)
const std::string & getName() const
void setName(const std::string &name)
Assembles beam, detector and their relative positions with respect to the sample.
IDetector * getDetector()
void setBeamParameters(double wavelength, double alpha_i, double phi_i)
Sets the beam wavelength and incoming angles.
void setDetector(const IDetector &detector)
Sets the detector (axes can be overwritten later)
void initDetector()
init detector with beam settings
std::vector< const INode * > getChildren() const
Returns a vector of children.
void setBeam(const Beam &beam)
Instrument & operator=(const Instrument &other)
std::unique_ptr< IDetector > m_detector
A detector with coordinate axes along angles phi and alpha.