BornAgain
1.19.79
Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering
|
Data stucture containing both input and output of a single detector cell.
Definition at line 37 of file DiffuseElement.h.
Public Member Functions | |
DiffuseElement (const DiffuseElement &)=delete | |
DiffuseElement (DiffuseElement &&) | |
DiffuseElement (double wavelength, double alpha_i, double phi_i, std::unique_ptr< IPixel > pixel, const SpinMatrix &beam_polMatrices, const SpinMatrix &analyzer, bool isSpecular_, const Fluxes *fluxes_in=nullptr, const Fluxes *fluxes_out=nullptr) | |
~DiffuseElement () | |
void | addIntensity (double intensity) |
double | alpha (double x, double y) const |
double | alphaI () const |
double | alphaMean () const |
const IFlux * | fluxIn (size_t i_layer) const |
const IFlux * | fluxOut (size_t i_layer) const |
R3 | getKi () const |
double | getPhi (double x, double y) const |
double | getPhiI () const |
double | getPhiMean () const |
R3 | getQ (double x, double y) const |
Returns scattering vector Q, with Kf determined from in-pixel coordinates x,y. In-pixel coordinates take values from 0 to 1. More... | |
double | integrationFactor (double x, double y) const |
double | intensity () const |
bool | isSpecular () const |
Tells if simulation element corresponds to a specular peak. More... | |
R3 | meanKf () const |
R3 | meanQ () const |
DiffuseElement | pointElement (double x, double y) const |
Returns copy of this DiffuseElement with k_f given by in-pixel coordinate x,y. More... | |
const PolMatrices & | polMatrices () const |
Returns polarizer and analyzer matrices. More... | |
void | setFluxes (const Fluxes *fluxes_in, const Fluxes *fluxes_out) |
void | setIntensity (double intensity) |
double | solidAngle () const |
double | wavelength () const |
WavevectorInfo | wavevectorInfo () const |
Protected Attributes | |
const PolMatrices | m_polMatrices |
Private Member Functions | |
R3 | getKf (double x, double y) const |
Returns outgoing wavevector Kf for in-pixel coordinates x,y. In-pixel coordinates take values from 0 to 1. More... | |
Private Attributes | |
const double | m_alpha_i |
incident grazing angle More... | |
const Fluxes * | m_fluxes_in |
const Fluxes * | m_fluxes_out |
double | m_intensity |
simulated intensity for detector cell More... | |
const bool | m_is_specular |
const R3 | m_k_i |
cached value of k_i More... | |
const R3 | m_mean_kf |
cached value of mean_kf More... | |
const double | m_phi_i |
incident angle in xy plane More... | |
std::unique_ptr< IPixel > | m_pixel |
const double | m_wavelength |
wavelength of beam More... | |
DiffuseElement::DiffuseElement | ( | double | wavelength, |
double | alpha_i, | ||
double | phi_i, | ||
std::unique_ptr< IPixel > | pixel, | ||
const SpinMatrix & | beam_polMatrices, | ||
const SpinMatrix & | analyzer, | ||
bool | isSpecular_, | ||
const Fluxes * | fluxes_in = nullptr , |
||
const Fluxes * | fluxes_out = nullptr |
||
) |
Definition at line 21 of file DiffuseElement.cpp.
|
delete |
DiffuseElement::DiffuseElement | ( | DiffuseElement && | other | ) |
Definition at line 39 of file DiffuseElement.cpp.
|
default |
|
inline |
Definition at line 59 of file DiffuseElement.h.
References intensity(), and m_intensity.
Referenced by ParticleLayoutContribution::compute(), and RoughMultiLayerContribution::compute().
double DiffuseElement::alpha | ( | double | x, |
double | y | ||
) | const |
Definition at line 114 of file DiffuseElement.cpp.
References getKf(), and M_PI_2.
Referenced by alphaMean().
|
inline |
Definition at line 54 of file DiffuseElement.h.
References m_alpha_i.
Referenced by GISASSpecularContribution::compute(), and ISimulation2D::normalize().
|
inline |
Definition at line 56 of file DiffuseElement.h.
References alpha().
Referenced by RoughMultiLayerContribution::compute().
const IFlux * DiffuseElement::fluxIn | ( | size_t | i_layer | ) | const |
Definition at line 62 of file DiffuseElement.cpp.
References m_fluxes_in.
Referenced by SumDWBA::coherentFF(), SumDWBA::coherentPolFF(), GISASSpecularContribution::compute(), and RoughMultiLayerContribution::get_sum8terms().
const IFlux * DiffuseElement::fluxOut | ( | size_t | i_layer | ) | const |
Definition at line 67 of file DiffuseElement.cpp.
References m_fluxes_out.
Referenced by SumDWBA::coherentFF(), SumDWBA::coherentPolFF(), and RoughMultiLayerContribution::get_sum8terms().
|
private |
Returns outgoing wavevector Kf for in-pixel coordinates x,y. In-pixel coordinates take values from 0 to 1.
Definition at line 97 of file DiffuseElement.cpp.
References m_pixel, and m_wavelength.
R3 DiffuseElement::getKi | ( | ) | const |
Definition at line 85 of file DiffuseElement.cpp.
References m_k_i.
Referenced by getQ(), meanQ(), and wavevectorInfo().
double DiffuseElement::getPhi | ( | double | x, |
double | y | ||
) | const |
Definition at line 119 of file DiffuseElement.cpp.
References getKf().
Referenced by getPhiMean().
|
inline |
|
inline |
Definition at line 57 of file DiffuseElement.h.
References getPhi().
R3 DiffuseElement::getQ | ( | double | x, |
double | y | ||
) | const |
Returns scattering vector Q, with Kf determined from in-pixel coordinates x,y. In-pixel coordinates take values from 0 to 1.
Definition at line 109 of file DiffuseElement.cpp.
References getKi(), m_pixel, and m_wavelength.
double DiffuseElement::integrationFactor | ( | double | x, |
double | y | ||
) | const |
Definition at line 129 of file DiffuseElement.cpp.
References m_pixel.
Referenced by IInterparticleStrategy::evaluate_for_fixed_angles().
|
inline |
Definition at line 60 of file DiffuseElement.h.
References m_intensity.
Referenced by ISimulation2D::addBackgroundIntensity(), addIntensity(), ISimulation2D::normalize(), and setIntensity().
|
inline |
Tells if simulation element corresponds to a specular peak.
Definition at line 76 of file DiffuseElement.h.
References m_is_specular.
Referenced by GISASSpecularContribution::compute().
R3 DiffuseElement::meanKf | ( | ) | const |
Definition at line 90 of file DiffuseElement.cpp.
References m_mean_kf.
Referenced by meanQ(), and wavevectorInfo().
R3 DiffuseElement::meanQ | ( | ) | const |
Definition at line 102 of file DiffuseElement.cpp.
References getKi(), and meanKf().
Referenced by RoughMultiLayerContribution::compute(), DecouplingApproximationStrategy::polarizedCalculation(), SSCAStrategy::polarizedCalculation(), DecouplingApproximationStrategy::scalarCalculation(), and SSCAStrategy::scalarCalculation().
DiffuseElement DiffuseElement::pointElement | ( | double | x, |
double | y | ||
) | const |
Returns copy of this DiffuseElement with k_f given by in-pixel coordinate x,y.
Definition at line 72 of file DiffuseElement.cpp.
References PolMatrices::analyzerMatrix(), m_alpha_i, m_fluxes_in, m_fluxes_out, m_is_specular, m_phi_i, m_pixel, IElement::m_polMatrices, m_wavelength, and PolMatrices::polarizerMatrix().
Referenced by IInterparticleStrategy::evaluate_for_fixed_angles().
|
inlineinherited |
Returns polarizer and analyzer matrices.
Definition at line 37 of file IElement.h.
References IElement::m_polMatrices.
Referenced by SpecularElement::FromAlphaScan(), SpecularElement::FromQzScan(), DecouplingApproximationStrategy::polarizedCalculation(), SSCAStrategy::polarizedCalculation(), and SpecularComputation::runProtected().
Definition at line 56 of file DiffuseElement.cpp.
References m_fluxes_in, and m_fluxes_out.
|
inline |
Definition at line 58 of file DiffuseElement.h.
References intensity(), and m_intensity.
Referenced by ISimulation2D::addBackgroundIntensity(), GISASSpecularContribution::compute(), and ISimulation2D::normalize().
double DiffuseElement::solidAngle | ( | ) | const |
Definition at line 134 of file DiffuseElement.cpp.
References m_pixel.
Referenced by GISASSpecularContribution::compute(), IInterparticleStrategy::evaluate(), and ISimulation2D::normalize().
|
inline |
Definition at line 53 of file DiffuseElement.h.
References m_wavelength.
Referenced by RoughMultiLayerContribution::compute(), and wavevectorInfo().
WavevectorInfo DiffuseElement::wavevectorInfo | ( | ) | const |
Definition at line 124 of file DiffuseElement.cpp.
References getKi(), meanKf(), and wavelength().
Referenced by SumDWBA::coherentFF(), and SumDWBA::coherentPolFF().
|
private |
incident grazing angle
Definition at line 82 of file DiffuseElement.h.
Referenced by alphaI(), and pointElement().
|
private |
Definition at line 88 of file DiffuseElement.h.
Referenced by fluxIn(), pointElement(), and setFluxes().
|
private |
Definition at line 89 of file DiffuseElement.h.
Referenced by fluxOut(), pointElement(), and setFluxes().
|
private |
simulated intensity for detector cell
Definition at line 90 of file DiffuseElement.h.
Referenced by addIntensity(), intensity(), and setIntensity().
|
private |
Definition at line 87 of file DiffuseElement.h.
Referenced by isSpecular(), and pointElement().
|
private |
|
private |
|
private |
incident angle in xy plane
Definition at line 83 of file DiffuseElement.h.
Referenced by getPhiI(), and pointElement().
|
private |
Definition at line 86 of file DiffuseElement.h.
Referenced by getKf(), getQ(), integrationFactor(), pointElement(), and solidAngle().
|
protectedinherited |
Definition at line 40 of file IElement.h.
Referenced by pointElement(), and IElement::polMatrices().
|
private |
wavelength of beam
Definition at line 81 of file DiffuseElement.h.
Referenced by getKf(), getQ(), pointElement(), and wavelength().