21 ParticleLayoutComputation::ParticleLayoutComputation(
const ProcessedLayout* p_layout,
27 mP_strategy.reset(builder.releaseStrategy());
28 m_region_map = p_layout->regionMap();
29 m_surface_density = p_layout->surfaceDensity();
32 ParticleLayoutComputation::~ParticleLayoutComputation() =
default;
36 double alpha_f = elem.getAlphaMean();
37 size_t n_layers = mp_layout->numberOfSlices();
38 if (n_layers > 1 && alpha_f < 0) {
41 elem.addIntensity(mP_strategy->evaluate(elem) * m_surface_density);
46 std::map<
size_t, std::vector<HomogeneousRegion>>& region_map)
const
48 for (
auto& entry : m_region_map) {
49 size_t i = entry.first;
50 auto& regions = entry.second;
51 region_map[i].insert(region_map[i].begin(), regions.begin(), regions.end());
Defines class IInterferenceFunctionStrategy.
Defines class LayoutStrategyBuilder.
Defines class ParticleLayoutComputation.
Defines class ProcessedLayout.
Defines class SimulationElement.
Methods to generate a simulation strategy for a ParticleLayoutComputation.
void mergeRegionMap(std::map< size_t, std::vector< HomogeneousRegion >> ®ion_map) const
Merges its region map into the given one (notice non-const reference parameter)
Data structure that contains preprocessed data for a single layout.
Data stucture containing both input and output of a single detector cell.
Collect the different options for simulation.