[NeXus-committee] CBF Concordance Summary

Mark Koennecke Mark.Koennecke at psi.ch
Wed May 22 10:44:59 BST 2013


Hi,

here is my very own concordance summary. I know it it is late but it is 
not to long.
This represents my view, I may be missing something or got it wrong.
Please shout!

Hear you at the upcoming Telco!

                  Mark



Concordance Summary
--------------------

May, 22, 2013, Mark Koennecke

This document summarizes the problems occurring when mapping CBF to
NeXus how I see them from the discussion with Herbert. In the following
discussion all groups which are not NeXus yet will be prefixed with
TBD for To Be Discussed.


The Variant Issue
----------------------

CBF has the concept of variants for fields. For example there is
a field beam_center_x. This has somehow been determined and written
to file. Later this is refined in another way. CBF stores this then
as beam_center_x_variant. This concept of variants is missing in NeXus.
So far there are three options to remedy this:

- A TBDvariant group which can occur in all other groups and
   contains the variant values with the same field names as in the
   parent group.
- Make an NXsubentry which contains links to all unchanged data items
   and gives values for the changed ones.
- Simpy append _variant to the existing NeXus name. If there is more
   then one variant append another qualifier to _variant. For example:
   beam_center_x_variant_refined


The Axisset Issue
--------------------

NeXus chooses to document axis names with a predefined meanings. The
CBF people learned that this did not work for them as people were using
axes differently, could not be bothered to even look which conventions
others used etc. Thus they choose rather to document axes by the
way how they operate. And a given component may even have more then
one axes description associated with it.

NeXus goes someway to support this with the recently added offset, type,
vector and depends_on attributes.

But mapping the full CBF scheme would require a TBDaxisset group which can
occur in any component which we care to place (sample, detector,...) This
group could look like this:

TBDaxisset
    axis-name-or-id[NA]
    offset[3,NA]
    type[NA]
    vector[3,NA]
    depends_on[NA]

with NA being the number of axes.

I can see that such a scheme would also allow NeXus to neatly describe
a given data set in terms of different axis types: instrument coordinates,
q coordinates or whatever.


The Scan Issue
------------------

NeXus chooses to store scans as it is done, with the positions of components
as read from the hardware in arrays. CBF chooses to rather store the intent
of the scan: i.e. the axis moved, their start and increments etc. NeXus
lacks such a intent description. This already caused us problems because 
the
intent axes are nice for plotting and the actual positions as read are
necessary for detailed DA.

Thus to capture the CBF description a new group may be required:

TBDscan_intent
    axis-name-or-id[NSA]
    start[NSA]
    increment[NSA]
    NP

with NSA being the Number of Scan Axes and NP the number of points in
the scan. May be some more fields.


New Fields
--------------

This may be a bit easier: the CBF mapping asks for a couple of fields to
be added to the NeXus base classes:

NXsource
    radiation_type
    radiation_xray_symbol


NXcollimator

    div_x_y_source
    radiation_filter_edge    # May belong into a NXfilter
    radiation_inhomegeneity  # May belong into NXsource or NXmonochromator



CBF stores polarisation information of the beam in NXmonochromator.
It is an open question where this belongs: NXbeam, NXpolariser or
NXmonochromator being candidates. The fields:

polarisation_norm
polarisation_ratio
polarisation_source_norm
polarisation_source_ratio

NXdetector
   gain
   gain_esd
   linerarity
   offset
   scaling
   overload
   undefined_value

Some of these fields address the computed data value issue which we
discussed some time ago. The last state on this was that Armando was
to make a proposal for calculated data. Which, as far as I am aware,
did not happen.


CBF also has a structure to describe the elements of a multi component
detector. We discussed something similar recently with the DECTRIS module
. This was then added a s a non NeXus standard group. May be we need to
revise this with input from CBF?

The good news is that the proposed fields come with documentation which we
may directly copy from the CBF documents.


The End
-----------

IMHO, these are the main issues. But I may have overlooked something.
Please read the Concordance paper, especially the first section.



More information about the NeXus-committee mailing list