BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Data structure that contains preprocessed data for a single layout. More...
Public Member Functions | |
ProcessedLayout (const ParticleLayout &layout, const std::vector< Slice > &slices, double z_ref, const IFresnelMap *p_fresnel_map, bool polarized) | |
ProcessedLayout (ProcessedLayout &&other) | |
~ProcessedLayout () | |
const std::vector< FormFactorCoherentSum > & | formFactorList () const |
const IInterferenceFunction * | interferenceFunction () const |
size_t | numberOfSlices () const |
std::map< size_t, std::vector< HomogeneousRegion > > | regionMap () const |
double | surfaceDensity () const |
Private Member Functions | |
void | collectFormFactors (const ParticleLayout &layout, const std::vector< Slice > &slices, double z_ref) |
void | mergeRegionMap (const std::map< size_t, std::vector< HomogeneousRegion >> ®ion_map) |
FormFactorCoherentSum | processParticle (const IParticle &particle, const std::vector< Slice > &slices, double z_ref) |
Private Attributes | |
std::vector< FormFactorCoherentSum > | m_formfactors |
const IFresnelMap * | m_fresnel_map |
std::unique_ptr< IInterferenceFunction > | m_iff |
size_t | m_n_slices |
bool | m_polarized |
std::map< size_t, std::vector< HomogeneousRegion > > | m_region_map |
double | m_surface_density |
Data structure that contains preprocessed data for a single layout.
If particles in the layout crossed the limits of the layer slices, these particles will be sliced themselves.
Definition at line 42 of file ProcessedLayout.h.
ProcessedLayout::ProcessedLayout | ( | const ParticleLayout & | layout, |
const std::vector< Slice > & | slices, | ||
double | z_ref, | ||
const IFresnelMap * | p_fresnel_map, | ||
bool | polarized | ||
) |
Definition at line 42 of file ProcessedLayout.cpp.
References collectFormFactors(), ParticleLayout::interferenceFunction(), m_iff, and m_n_slices.
ProcessedLayout::ProcessedLayout | ( | ProcessedLayout && | other | ) |
Definition at line 52 of file ProcessedLayout.cpp.
References m_formfactors, m_fresnel_map, m_iff, m_n_slices, m_polarized, m_region_map, and m_surface_density.
|
default |
|
private |
Definition at line 90 of file ProcessedLayout.cpp.
References ParticleLayout::getTotalAbundance(), m_formfactors, m_region_map, m_surface_density, ParticleLayout::particles(), processParticle(), FormFactorCoherentSum::scaleRelativeAbundance(), ParticleLayout::totalParticleSurfaceDensity(), and ParticleLayout::weight().
Referenced by ProcessedLayout().
const std::vector< FormFactorCoherentSum > & ProcessedLayout::formFactorList | ( | ) | const |
Definition at line 73 of file ProcessedLayout.cpp.
References m_formfactors.
const IInterferenceFunction * ProcessedLayout::interferenceFunction | ( | ) | const |
Definition at line 78 of file ProcessedLayout.cpp.
References m_iff.
|
private |
Definition at line 142 of file ProcessedLayout.cpp.
References m_region_map.
Referenced by processParticle().
size_t ProcessedLayout::numberOfSlices | ( | ) | const |
Definition at line 63 of file ProcessedLayout.cpp.
References m_n_slices.
|
private |
Definition at line 105 of file ProcessedLayout.cpp.
References IAbstractParticle::abundance(), SlicedFormFactorList::createSlicedFormFactors(), m_fresnel_map, m_polarized, and mergeRegionMap().
Referenced by collectFormFactors().
std::map< size_t, std::vector< HomogeneousRegion > > ProcessedLayout::regionMap | ( | ) | const |
Definition at line 83 of file ProcessedLayout.cpp.
References m_region_map.
double ProcessedLayout::surfaceDensity | ( | ) | const |
Definition at line 68 of file ProcessedLayout.cpp.
References m_surface_density.
Referenced by ParticleLayoutComputation::compute().
|
private |
Definition at line 65 of file ProcessedLayout.h.
Referenced by ProcessedLayout(), collectFormFactors(), and formFactorList().
|
private |
Definition at line 61 of file ProcessedLayout.h.
Referenced by ProcessedLayout(), and processParticle().
|
private |
Definition at line 66 of file ProcessedLayout.h.
Referenced by ProcessedLayout(), and interferenceFunction().
|
private |
Definition at line 63 of file ProcessedLayout.h.
Referenced by ProcessedLayout(), and numberOfSlices().
|
private |
Definition at line 62 of file ProcessedLayout.h.
Referenced by ProcessedLayout(), and processParticle().
|
private |
Definition at line 67 of file ProcessedLayout.h.
Referenced by ProcessedLayout(), collectFormFactors(), mergeRegionMap(), and regionMap().
|
private |
Definition at line 64 of file ProcessedLayout.h.
Referenced by ProcessedLayout(), collectFormFactors(), and surfaceDensity().