-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Our handling of multiple wavelengths is broken #505
Comments
It would be interesting to see the suggested PR as it would automatically answer most of the questions I have (e.g. would the category keys change, etc.). A cursory look at the COD revealed that the |
I have a query about this. You say a wavelength with each experiment. How does that gel with a standard X-ray tube powder diffraction pattern? I model my Co-tube data with 8 different wavelengths, and use the one with the largest area as "the" wavelength for the purposes of d-spacing calculations. |
Forgive the imprecise language. The exact reason for raising this issue is the situation to which you refer. I should have said 'the wavelength associated with the experiment will be the weighted sum of the wavelengths listed for that
In the above example I've been explicit about including the value of |
I agree, I will make one.
It is also a non-issue as identifying individual peaks by the wavelength that produced them would not change and is the part of the current system that actually works. |
That may not work in general. Consider the following:
The mean will be skewed by the presence of impurity wavelengths. They're necessary to correctly model sprectral artefacts, but don't really contribute to anything else. |
Please consider pull requests 18 and 19 for the multi-block dictionary as two alternative solutions to the above problem. Note that I prefer 19, looking forward to the time when we have 100 temperature measurements using a single source and avoiding the repetition of the source characteristics. |
The two alternatives that I've just put forward don't specify how to deal with multiple wavelengths, they just give a way to provide the information. Down the track we will need to ponder which wavelength things like scattering factors and d-spacings use. |
Just adding links COMCIFS/MultiBlock_Dictionary#18 |
AFAIK, TOPAS uses the wavelength with the largest area as "the" wavelength. |
I have dropped COMCIFS/MultiBlock_Dictionary#18 as I think COMCIFS/MultiBlock_Dictionary#19 is the most forward-looking solution. Under this solution, the radiation source description exists entirely separately of Could someone please review COMCIFS/MultiBlock_Dictionary#19? |
Our dictionaries currently cope poorly with multiple wavelengths in the incident beam.
Currently wavelengths are specified in the
DIFFRN_RADIATION_WAVELENGTH
category, which is a loop keyed by_diffrn_radiation_wavelength.id
. For synchrotrons or neutrons, this loop will typically have a single value, and for X-ray tube sources this loop would typically have a pair of values, or even three if the K-beta line is present. The wavelength identifier may be used inDIFFRN_REFLN
to indicate which wavelength value a peak corresponds to. For a Laue experiment there could be a wavelength for every observed spot. Even for synchrotrons and neutrons, harmonic components may be present which, while typically modelled as distinct phases, are actually just extra wavelengths.The problem: cannot associate a collection of wavelengths with anything
Category
DIFFRN_RADIATION
has a pointer to_diffrn_radiation_wavelength.id
allowing a wavelength to be formally associated with experimental conditions. However, it is impossible to associate more than one wavelength with a single experiment in this way, ruling out using it for X-ray tube experiments.Similar issues arise for any other category that refers to wavelength using a pointer to
_diffrn_radiation_wavelength.id
, with the exception of theREFLN
type categories.Solution
_diffrn_radiation.wavelength_id
is deprecated, together with similar pointers, and instead_diffrn_radiation_wavelength.diffrn_id
is added toDIFFRN_RADIATION_WAVELENGTH
. This associates a wavelength with every experiment, which may be calculated as the weighted sum when more than wavelength is present in the beam.If everybody is happy with this solution, I'll put together a PR.
The text was updated successfully, but these errors were encountered: