nexusformat / definitions

Definitions of the NeXus Standard File Structure and Contents
https://manual.nexusformat.org/
Other
26 stars 55 forks source link

NXbeam: polarization is insufficiently defined or documented #1012

Open padraic-shafer opened 2 years ago

padraic-shafer commented 2 years ago

NXbeam includes fields for specifying the polarization of the beam before and after interacting with an element (sample, optic, etc.). These are defined with a primary dimension of '2' without specifying the basis for the polarization vector.

incident_polarization[2, j]: (optional) NX_FLOAT {units=NX_ANY}

Polarization vector on entering beamline component

final_polarization[2, j]: (optional) NX_FLOAT {units=NX_ANY}

Polarization vector on leaving beamline component

It is common practice to define the polarization of a beam according to a 4-dimensional Stokes vector, whose components are the Stokes parameters, S0, S1, S2, and S3. It would seem natural to use this definition for incident_polarization and final_polarization in NXbeam.

Perhaps the currently defined 2-dimensional vector is one of the complex-valued bases described here? If so, this needs to be documented in the NXbeam definition, and there should be some mechanism of identifying the real and imaginary components of these values.

padraic-shafer commented 2 years ago

Each field probably also needs a corresponding NXtransformations group to define the orientation of the basis vectors.

PeterC-DLS commented 2 years ago

Please see #925

padraic-shafer commented 2 years ago

@PeterC-DLS : Thanks for this reference. Indeed, adding a direction field to NXbeam would be useful as a reference frame for the polarization of the diffracted/outgoing beam...as well as for the other reasons mentioned in #925.

Still there remains a need to define the meaning of the data stored in NXbeam/incident_polarization and NXbeam/final_polarization.

phyy-nx commented 2 years ago

Hi, while it's still a work in progress, #858 works on polarization in NXBeam. I have some action items from Spring NIAC 2022 to resolve, which I will do this week. But perhaps it's along the lines of what you are thinking? Nothing about adding NXtransformations there though.

padraic-shafer commented 2 years ago

Is there any preference for the sign convention of the V component of the Stokes vector (i.e. it is defined looking down the beam towards its source or in the opposite direction)? https://www.sciencedirect.com/science/article/pii/0039602880902964

Was there any preference (or discussion) on this choice of sign convention?

Also, is it typical/simple for NX definitions to include aliases? For example, S0...S3 is more typical in my field than (I, Q, U, V) for the Stokes parameters.

phyy-nx commented 2 years ago

@pshafer-als I believe all we are specifying is 4 numbers, without specifying S0..S3 or I, Q, U, V or any such labels for them. Are these two different conventions for ordering the parameters?

padraic-shafer commented 2 years ago

@pshafer-als I believe all we are specifying is 4 numbers, without specifying S0..S3 or I, Q, U, V or any such labels for them. Are these two different conventions for ordering the parameters?

I'm most familiar with the S0..S3 convention. I only know of the (I, Q, U, V) convention from this reference, which seems to be the convention referenced by @PeterC-DLS in the #858 thread.

rayosborn commented 2 years ago

This is not my area of expertise and I haven't read the proposals in detail, but it should be noted that the beam polarization is an important parameter for neutron scattering as well. In fact, the original NXbeam definition was probably designed by neutron scatterers. Whatever changes are made should ensure that it does not make it invalid for neutrons. Apologies if everyone is aware of this already.

prjemian commented 2 years ago

Related to #858

padraic-shafer commented 2 years ago

I'm adding this here for future reference: Full Quantitative Analysis of Arbitrary Cylindrically Polarized Pulses by Using Extended Stokes Parameters. To clarify, I am not recommending to pursue adding this to NX.

padraic-shafer commented 2 years ago

It looks like #858 will soon be a part of the standard. This will be very helpful for exchanging data from polarization-dependent spectroscopy and scattering experiments.