15 #ifndef BORNAGAIN_DEVICE_BEAM_BEAM_H
16 #define BORNAGAIN_DEVICE_BEAM_BEAM_H
39 std::vector<const INode*>
getChildren()
const override;
Include to deal with Eigen alignment centrally.
An incident neutron or x-ray beam.
Direction direction() const
static Beam horizontalBeam()
void setDirection(const Direction &direction)
void setPolarization(const kvector_t bloch_vector)
Sets the polarization density matrix according to the given Bloch vector.
kvector_t m_bloch_vector
Bloch vector encoding the beam's polarization.
Eigen::Matrix2cd getPolarization() const
Returns the polarization density matrix (in spin basis along z-axis)
void setIntensity(double intensity)
Sets the beam intensity in neutrons/sec.
double intensity() const
Returns the beam intensity in neutrons/sec.
double wavelength() const
Beam & operator=(const Beam &other)
void accept(INodeVisitor *visitor) const override
Calls the INodeVisitor's visit method.
const IFootprintFactor * footprintFactor() const
Returns footprint factor.
void setFootprintFactor(const IFootprintFactor &shape_factor)
Sets footprint factor to the beam.
kvector_t getCentralK() const
Returns the wavevector.
void setInclination(const double alpha)
std::vector< const INode * > getChildren() const override
Returns a vector of children.
std::unique_ptr< IFootprintFactor > m_shape_factor
footprint correction handler
kvector_t getBlochVector() const
void setWavelength(double wavelength)
double m_intensity
beam intensity (neutrons/sec)
A direction in three-dimensional space.
Visitor interface to visit ISampleNode objects.
virtual void visit(const BasicLattice2D *)
Base class for tree-like structures containing parameterized objects.