Skip to content
Snippets Groups Projects
Commit 82b9ba0c authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

generate alpha/lambda resolution inside alpha scan

parent f2de0be6
No related branches found
No related tags found
1 merge request!1299decisive simplification of scan resolution evaluation
...@@ -61,18 +61,16 @@ std::vector<SpecularElement> AlphaScan::generateElements() const ...@@ -61,18 +61,16 @@ std::vector<SpecularElement> AlphaScan::generateElements() const
std::vector<SpecularElement> result; std::vector<SpecularElement> result;
result.reserve(nSteps()); result.reserve(nSteps());
const DistrOutput lambdaDistrib =
m_lambda_distrib->generateResolutionSamples(wavelength(), m_axis->size());
const DistrOutput alphaDistrib =
m_alpha_distrib->generateResolutionSamples(m_axis->binCenters());
for (size_t i = 0; i < m_axis->size(); ++i) { for (size_t i = 0; i < m_axis->size(); ++i) {
for (size_t j = 0; j < alphaDistrib[i].size(); ++j) { const auto lambdaDistrib = m_lambda_distrib->generateResolutionSamples(wavelength(), 1)[0];
const double alpha = alphaDistrib[i][j].value; const auto alphaDistrib =
for (size_t k = 0; k < lambdaDistrib[i].size(); ++k) { m_alpha_distrib->generateResolutionSamples(m_axis->binCenters()[i], 1)[0];
const double wavelength = lambdaDistrib[i][k].value; for (size_t j = 0; j < alphaDistrib.size(); ++j) {
const double alpha = alphaDistrib[j].value;
for (size_t k = 0; k < lambdaDistrib.size(); ++k) {
const double wavelength = lambdaDistrib[k].value;
const bool computable = wavelength >= 0 && alpha >= 0 && alpha <= M_PI_2; const bool computable = wavelength >= 0 && alpha >= 0 && alpha <= M_PI_2;
const double weight = alphaDistrib[i][j].weight * lambdaDistrib[i][k].weight; const double weight = alphaDistrib[j].weight * lambdaDistrib[k].weight;
const double footprint = m_footprint ? m_footprint->calculate(alpha) : 1; const double footprint = m_footprint ? m_footprint->calculate(alpha) : 1;
result.emplace_back(SpecularElement::FromAlphaScan(i, weight, wavelength, -alpha, result.emplace_back(SpecularElement::FromAlphaScan(i, weight, wavelength, -alpha,
footprint, polarizerMatrix(), footprint, polarizerMatrix(),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment