scipp / essreflectometry

Reflectometry data reduction for the European Spallation Source
https://scipp.github.io/essreflectometry/
BSD 3-Clause "New" or "Revised" License
0 stars 1 forks source link

Add a workflow or provider that can stitch multiple reflectivity curves #73

Closed nvaytet closed 1 month ago

nvaytet commented 2 months ago

In the Amor workflow, we have multiple reflectivity curves for multiple sample rotation angles. It is common practice to stitch these curves together to obtain a single reflectivity curve that covers a wide Q range. We should have a workflow that can achieve that: take in multiple files, compute I(Q) and scale each curve to stitch them together.

Open questions:

paracini commented 2 months ago

The scaling is arbitrary and based on the best match of the two curves in the overlapping q range so an iterative procedure would work. Different facilities approach this differently, some merge the data in the overlap region and some leave all data points from both curves. I prefer this second option, without merging.

The scale is a single number applied to all Q bins.

It's useful to have in this procedure some diagnostics on what is the overlapping q range available in the stitching region and if this is below a certain threshold add a warning about possible issues arising from too few points.

A note for future reference on this topic: We can stitch data from AMOR because the wavelength $\Delta\lambda/\lambda$ is constant due to the double blind chopper which means $\Delta q/q$ is constant. That won't be the case on Estia and FREIA where we won't have constant $\Delta\lambda/\lambda$ and therefore $\Delta q/q$ which means overlapping regions will have different resolutions, we don't foresee to stitch in those cases