<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl" ?>
<!--
# NeXus - Neutron and X-ray Common Data Format
# 
# Copyright (C) 2008-2020 NeXus International Advisory Committee (NIAC)
# 
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# For further information, see http://www.nexusformat.org
-->
<definition name="NXtomoproc" extends="NXobject" type="group"
  category="application"
  xmlns="http://definition.nexusformat.org/nxdl/3.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd"
  >

	<symbols>
		<doc>These symbols will be used below to coordinate datasets with the same shape.</doc>
		<symbol name="nx"><doc>number of voxels in X direction</doc></symbol>
		<symbol name="ny"><doc>number of voxels in Y direction</doc></symbol>
		<symbol name="nz"><doc>number of voxels in Z direction</doc></symbol>
	</symbols>
  
    <doc>This is an application definition for the final result of a tomography experiment: a 3D construction of some volume of physical properties.</doc>
    <group type="NXentry" name="entry">
      <field name="title" />
      <field name="definition">
        <doc> Official NeXus NXDL schema to which this file conforms </doc>
        <enumeration>
          <item value="NXtomoproc"/>
        </enumeration>
      </field>
      <group type="NXinstrument">
        <group type="NXsource">
          <field name="type" />
          <field name="name" />
          <field name="probe">
            <enumeration>
              <item value="neutron" />
              <item value="x-ray" />
              <item value="electron" />
            </enumeration>
          </field>
        </group>
      </group>
      <group type="NXsample">
        <field name="name">
          <doc>Descriptive name of sample</doc>
        </field>
      </group>
      <group type="NXprocess" name="reconstruction">
        <field name="program" type="NX_CHAR">
          <doc>Name of the program used for reconstruction</doc>
        </field>
        <field name="version" type="NX_CHAR">
          <doc>Version of the program used</doc>
        </field>
        <field name="date" type="NX_DATE_TIME">
          <doc>Date and time of reconstruction processing.</doc>
        </field>
        <group type="NXparameters" name="parameters">
          <field name="raw_file" type="NX_CHAR">
            <doc>Original raw data file this data was derived from</doc>
          </field>
        </group>
      </group>
      <group type="NXdata" name="data">
        <field name="data" type="NX_INT" signal="1">
          <doc>
            This is the reconstructed volume. This can be different
            things. Please indicate in the unit attribute what physical
            quantity this really is.
          </doc>
          <dimensions rank="3">
            <dim index="1" value="nx" />
            <dim index="2" value="nx" />
            <dim index="3" value="nz" />
          </dimensions>
          <attribute name="transform"></attribute>
          <attribute name="offset"></attribute>
          <attribute name="scaling"></attribute>
        </field>
         <field name="x" type="NX_FLOAT" units="NX_ANY" axis="1">
          <doc>
            This is an array holding the values to use for the x-axis of
            data. The units must be appropriate for the measurement.
          </doc>
          <dimensions rank="1">
            <dim index="1" value="nx" />
          </dimensions>
        </field>
        <field name="y" type="NX_FLOAT" units="NX_ANY" axis="2">
          <doc>
            This is an array holding the values to use for the y-axis of
            data. The units must be appropriate for the measurement.
          </doc>
          <dimensions rank="1">
            <dim index="1" value="ny" />
          </dimensions>
        </field>
        <field name="z" type="NX_FLOAT" units="NX_ANY" axis="3">
          <doc>
            This is an array holding the values to use for the z-axis of
            data. The units must be appropriate for the measurement.
          </doc>
          <dimensions rank="1">
            <dim index="1" value="nz" />
          </dimensions>
        </field>
      </group>
    </group>
</definition>
