NXtofnref-NIAC2006

Concerns:

  • mono and tof reflectometry must inherit from a common base class; the current definition of tofnref inheriting from monoref leaves the definition of the monochromator in the TOF definition.

  • SNS Liquids has two monitors, but our definitions only have one. Both are not always active.

    <?xml version="1.0" ?>
    <!--

    Instrument Definition for a Time of Flight Neutron Reflectometer
    Refines monochromatic reflectometer.

    Editor: Robert Dalgliesh <r.m.dalgliesh@rl.ac.uk>
    Initial version: October 2004
    $Id$

    See http://www.neutron.anl.gov:8080/NeXus/5 for component definitions.

    2005-04-28 Paul Kienzle <pkienzle@nist.gov>
    * Only include information that may be used for reduction/analysis
    * Make it a subclass of NXmonoref
    2006-02-03 Paul Kienzle <pkienzle@nist.gov>
    * Inherit more from NXmonoref.
    -->

    <NXentry>
      <definition version="1.0" URL="http://www.nexus.anl.gov/instruments/xml/NXtofnref.xml">
        NXtofnref
      </definition>

      <NXinstrument>
        <NXmoderator name="{Name of moderator}">
          <distance type="NX_FLOAT" units="metre">
            { Distance from T_o to sample along beam-path.  To calculate wavelength:
              L[i] = wavelength at time T[i]
              T[i] = time of flight for point i.
              d1 = distance from moderator to sample along beam path
              d2 = distance from detector to sample along beam path
              h = Planck's constant
              m_n = mass of the neutron
                
              L[i] = h/m_n * T[i]/(d1+d2)
            }
          </distance>
          <pulse_shape type="NXdata">
            { Find the center of mass of the pulse shape and use that
          as the T0 offset with respect to the protons hitting the target.
          The TOF from target (which is the real T0) to the moderator is 
          insignficant compared to the uncertainty from the pulse shape and
          so can be ignored.
        }
          </pulse_shape>
        </NXmoderator>

        <NXguide name="{Name of guide section}">*
          { Guides in total or in segments thgrough to sample position; may be 
            interspersed between other components - Check component index.
            Can be nested for guides with multiple straight segments.

        Affects wavelength spectrum, both in divergence and intensity.  The
        spectrum scan will automatically compensate for intensity effects.
        To compute divergence effects, detailed information about the guide
        geometry will be required.
          }
        </NXguide>

        <!-- 
          Some instruments will require gravitational corrections.  Neutrons
          travel on a parabolic trajectory.  For long wavelength neutrons
          this changes incident and reflected angle and results in the
          neutron appearing on a lower detector pixel than expected.  The
          information required for these corrections comes from the instrument
          geometry.
          -->

        <NXchopper name="[T0_chopper|frame_overlap_chopper]">?
          <wavelength_range type="NX_FLOAT[2]" units="Angstrom">
            { Reduction software needs to ignore Q values outside the range
              defined by the choppers.  The T0 chopper is phased to the source 
          to block fast neutron and gamma flash.  The frame overlap
          chopper is set to select low wavelength neutrons (those from
          the current pulse) or high wavelength neutrons (those from
          the previous pulse.

          On a properly tuned instrument, the time bins recorded in 
          the detector will reflect the actions of the choppers and
          these fields can be ignored. }
          </wavelength_range>
        </NXchopper>
        <NXmirror name="frame_overlap_mirror">?
          <cutoff_wavelength mode="above|below">
        <!-- *** This is not part of standard NXmirror -->
            { The frame overlap mirror is used to eliminate very long wavelength 
          neutrons from previous pulses.  Together with the choppers, this
          helps to choose which pulse to use in the TOF calculations.  On a 
          properly tuned instrument the time bins recorded in the detector
          will account for the actions of the mirror.

          There will be some attenuation but this will be compensated for 
          when correcting for the spectrum scan.

          For an ab initio calculation, you would need to store the angle 
          wrt the beam to compute the cutoff angle but often this will not
          be explicit since the instrument is simply tuned to have the
          correct cutoff. }
          </cutoff_wavelength>
        </NXmirror>
        
        <NXdetector name="detector">
          <time_of_flight 
            type="NX_FLOAT[l+1]"
            units="10^-6 second|10^-7 second">
            { Total time of flight }
          </time_of_flight>
        </NXdetector>
      </NXinstrument>

      <NXdata>
        <time_of_flight type="NX_FLOAT[k]" units="second" 
          NAPIlink="entry/instrument/detector/time_of_flight"/>
      </NXdata>
    </NXentry>