BornAgain  1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
Beam Class Reference

Description

An incident neutron or x-ray beam.

Inheritance diagram for Beam:

Public Member Functions

 Beam (const Beam &other)
 
 Beam (double intensity, double wavelength, const Direction &direction)
 
 ~Beam () override
 
std::string className () const final
 
Beamclone () const
 
Direction direction () const
 
const IFootprintFactorfootprintFactor () const
 Returns footprint factor. More...
 
double intensity () const
 Returns the beam intensity in neutrons/sec. More...
 
std::vector< const INode * > nodeChildren () const override
 
Beamoperator= (const Beam &other)
 
SpinMatrix polMatrix () const
 Returns the polarization density matrix (in spin basis along z-axis) More...
 
R3 polVector () const
 Returns polarization density as Bloch vector. More...
 
void setAzimuthalAngleGuarded (double value)
 Check for limits, set the value if within limits. Throws if limits are violated. More...
 
void setDirection (const Direction &direction)
 
void setFootprintFactor (const IFootprintFactor &shape_factor)
 Sets footprint factor to the beam. More...
 
void setInclination (double alpha)
 
void setInclinationAngleGuarded (double value)
 Check for limits, set the value if within limits. Throws if limits are violated. More...
 
void setInclinationLimits (const RealLimits &limits)
 
void setIntensity (double intensity)
 Sets the beam intensity in neutrons/sec. More...
 
void setPolarization (R3 bloch_vector)
 Sets the polarization density matrix according to the given Bloch vector. More...
 
void setWavelength (double wavelength)
 
void setWavelengthGuarded (double value)
 Check for limits, set the value if within limits. Throws if limits are violated. More...
 
double wavelength () const
 

Static Public Member Functions

static Beam horizontalBeam ()
 

Friends

class DepthProbeSimulationTest
 

Constructor & Destructor Documentation

◆ Beam() [1/2]

Beam::Beam ( double  intensity,
double  wavelength,
const Direction direction 
)

◆ Beam() [2/2]

Beam::Beam ( const Beam other)

◆ ~Beam()

Beam::~Beam ( )
override

Member Function Documentation

◆ className()

std::string Beam::className ( ) const
final

◆ clone()

Beam* Beam::clone ( ) const

◆ direction()

Direction Beam::direction ( ) const

◆ footprintFactor()

const IFootprintFactor* Beam::footprintFactor ( ) const

Returns footprint factor.

◆ horizontalBeam()

static Beam Beam::horizontalBeam ( )
static

◆ intensity()

double Beam::intensity ( ) const

Returns the beam intensity in neutrons/sec.

◆ nodeChildren()

std::vector<const INode*> Beam::nodeChildren ( ) const
override

◆ operator=()

Beam& Beam::operator= ( const Beam other)

◆ polMatrix()

SpinMatrix Beam::polMatrix ( ) const

Returns the polarization density matrix (in spin basis along z-axis)

◆ polVector()

R3 Beam::polVector ( ) const

Returns polarization density as Bloch vector.

◆ setAzimuthalAngleGuarded()

void Beam::setAzimuthalAngleGuarded ( double  value)

Check for limits, set the value if within limits. Throws if limits are violated.

◆ setDirection()

void Beam::setDirection ( const Direction direction)

◆ setFootprintFactor()

void Beam::setFootprintFactor ( const IFootprintFactor shape_factor)

Sets footprint factor to the beam.

◆ setInclination()

void Beam::setInclination ( double  alpha)

◆ setInclinationAngleGuarded()

void Beam::setInclinationAngleGuarded ( double  value)

Check for limits, set the value if within limits. Throws if limits are violated.

◆ setInclinationLimits()

void Beam::setInclinationLimits ( const RealLimits limits)

◆ setIntensity()

void Beam::setIntensity ( double  intensity)

Sets the beam intensity in neutrons/sec.

◆ setPolarization()

void Beam::setPolarization ( R3  bloch_vector)

Sets the polarization density matrix according to the given Bloch vector.

◆ setWavelength()

void Beam::setWavelength ( double  wavelength)

◆ setWavelengthGuarded()

void Beam::setWavelengthGuarded ( double  value)

Check for limits, set the value if within limits. Throws if limits are violated.

◆ wavelength()

double Beam::wavelength ( ) const

Friends And Related Function Documentation

◆ DepthProbeSimulationTest

friend class DepthProbeSimulationTest
friend