Skip to content

Energy- and q-dependent attenuation correction (via post-processing) #15

Description

@delongchamp

The NRSS simulation currently doesn't account for attenuation by absorbance, which likely produces an unrealistic dependence of scattering intensity on energy. An approximation of this effect might be helpful to make simulation results more realistic. It is understood that this is no replacement for a true beyond-Born layer-by-layer scattering model, but it could get close enough to satisfy many use cases.

@pdudenas has a mostly-developed approach for this and would be an ideal contributor if available.

TODO:

  • Calculation of polarization field for model as layer-by-layer or projection (which would add a "virtual STXM" capability as well), or returning from the pybind after simulation since it is already calculated there.
  • Conversion of beta to extinction coefficient and conversion of that to %T vs. energy & q
  • It is envisioned that this calculation could be an optional part of the morphology class, and it should return an array object that can be cleanly broadcasted onto PyHyperscattering-imported results as a post-simulation correction. It will be important to avoid breaking changes to the morphology class if possible.

Decisions that need to be made include:

  • Whether to handle z-position realistically / according to the structure provided by the model, which would have different layers contributing more or less depending on their z-position. Alternative would be to average the provided morphology, accepting that the model is somewhat abstract.
  • How to handle realistic thickness. Options include accepting the model and its PhysSize to report accurate thickness, and having the user provide a different thickness more representative of the expected attenuation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthackathon_2024appropriate issues for RSoXS hackathon Sep 3-6, 2024help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions