diff --git a/Sim/Simulation/ScatteringSimulation.cpp b/Sim/Simulation/ScatteringSimulation.cpp index 931c974f1b42eae30350e34ee7354aff2afe20a7..5d69bb22a1f0b7604d4fe000ca87fe1ad21c25b3 100644 --- a/Sim/Simulation/ScatteringSimulation.cpp +++ b/Sim/Simulation/ScatteringSimulation.cpp @@ -18,6 +18,7 @@ #include "Base/Progress/ProgressHandler.h" #include "Base/Util/Assert.h" #include "Device/Beam/Beam.h" +#include "Device/Beam/IFootprint.h" #include "Device/Coord/CoordSystem2D.h" #include "Device/Data/Datafield.h" #include "Device/Detector/IDetector.h" @@ -90,6 +91,9 @@ void ScatteringSimulation::runComputation(const ReSample& re_sample, size_t i, d double intensity = Compute::scattered_and_reflected(re_sample, options(), ele); + if (const auto* footprint = beam().footprint()) + intensity *= footprint->calculate(beam().alpha_i()); + double sin_alpha_i = std::abs(std::sin(ele.alphaI())); if (sin_alpha_i == 0.0) { intensity = 0;