Multi Method Instruments

Multi Method Instruments

This suggestion is one of the outcomes of the NeXus for Synchrotrons Workshop at PSI: http://lns00.psi.ch/nexus2010

The Suggestion

Add to NXentry a new class named NXsubentry which has the same structure as NXentry. Each NXsubentry is to hold the data or links thereto of a single application definition in a multi method instrument.

The Reasoning

Synchrotron beamlines often utilise several different detectors and detector types in order to combine multiple techniques in simultaneous measurements. NeXus currently asks for separate NXentry groups to be written for each technique. This is good if one measurement is written to a file. However, there is a second requirement that multiple scans, multiple measurements, possibly a whole log of an experimental session is written to one NeXus file. Then having different techniques in different NXentries will make the files difficult to understand as the relationship between different measurements is lost. Thus, in order to keep the data from these multiple techniques together, it is desirable to have the ability to write it all into a single NXentry in a NeXus. The current NeXus application definitions refer to the same names and paths and so there are many name collisions when trying to satisfy two application definitions in one NXentry in a file. The ability to combine application definitions could be enabled by modifying the application definitions to refer to new and separate groups inside the main NXentry of the NeXus file that refer to the particular application/technique name and which contains all of the data (or links to it) that is relevant to that application/technique. For an example experiment that involves a combination of SAS and Fluorescence, the proposed NeXus structure could look like:

entry:NXentry/
  definition = "NXSas, NXFluo"
  user:NXuser/
  sample:NXsamle/
  instrument:NXinstument/
    SASdet:NXdetector/
    fancyname:NXdetector/
    fancyname2:NXdetector/
    ...
  SAS:NXsubentry/
    definition = "NXSas"
    instrument:NXinstrument/
      detector:link to SASdet
    data:NXdata/
  Fluo:NXsubentry/
    definition = "NXFluo"
    instrument:NXinstrument/
      detector:link to fancyname
      detector2:link to fancyname2
    data:NXdata/

In the above NeXus tree, the entire beamline state could be stored in entry/instrument and then any subset of this that is relevant to the SAS or Fluorescence techniques would then be linked within the entry/SAS/instrument and the entry/Fluo/instrument groups as defined by the current application definitions with a minor change in the heirarchy. The advantages of this approach are:

One drawback of this approach is that the beamline staff would have to define many links when configuring the data acquisition software. However, this is necessary work regardless of how the data is saved since the user must be informed of how the different instrument components and detectors relate to the various analyses anyway. In fact, NeXus and the above proposal simplifies this task by clearly documenting in a formal manner where the relevant information can be read.

Some examples of beamlines that would benefit from this proposal include:

Summarizing this discussion, the suggestion is to allow NXentry or possibly new NXsubentry groups underneath NXentry. Each of which can adhere to a different application definition. All participants agreed that a good means of handling multi technique instruments in NeXus is essential for the adoption of NeXus at synchrotron facilities. This is a MUST HAVE!