Open celinedurniak opened 9 months ago
Before implementing, we should consider if the actual correction should be part of ScippNeutron, since it is very generic. ESSdiffraction would then only contain the workflow integration, imported from ScippNeutron.
Removed from essentials milestone because it is unclear whether this should be done during reduction or analysis. Postponing implementation until we have clarity.
Still needs to apply correction in diffraction workflow
Executive summary
Calculate and apply absorption correction for cylindrical samples in Powder Diffraction
Context and background knowledge
For example, see algorithms in Mantid
AbsorptionCorrection
CylinderAbsorption
SNSPowderReduction in Mantid to check when the absorption correction is applied within the whole workflow
Inputs
Scipp data structure from loaded NeXus or csv file(s)
Assumption: the input should be expressed in wavelength
Note that information about the sample (chemical formula, geometry, mass density, number density...) might be stored in the sample log of the file or must have to be provided by the user when using the algorithm.
Methodology
See source code from (Mantid) references above
Assumption: we consider only cylindrical samples for this first implementation
Acceptance criterion Absorption correction step is implemented in ESS Diffraction worflow (https://scipp.github.io/ess/instruments/external/powgen/powgen.html)
Outputs
This requirement should provide the absorption correction term and the corrected sample data
Which interfaces are required?
Integrated into reduction workflow, Python module / function
Test cases
Comments
Followup Work: Extend this implementation to: