org.eclipse.dawnsci.nexus.NXcontainer Maven / Gradle / Ivy
/*-
*******************************************************************************
* Copyright (c) 2015 Diamond Light Source Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* This file was auto-generated from the NXDL XML definition.
*******************************************************************************/
package org.eclipse.dawnsci.nexus;
import org.eclipse.dawnsci.analysis.api.tree.DataNode;
import org.eclipse.january.dataset.IDataset;
/**
* State of a container holding the sample under investigation.
* A container is any object in the beam path which absorbs the beam and
* whose contribution to the overall attenuation/scattering needs to be
* determined to process the experimental data. Examples of containers
* include glass capillary tubes, vanadium cans, windows in furnaces or
* diamonds in a Diamond Anvil Cell. The following figures show a complex
* example of a container:
* .. figure:: container/ComplexExampleContainer.png
* A hypothetical capillary furnace. The beam passes from left to right
* (blue dashes), passing through window 1, then window 2, before
* passing through the downstream wall of the capillary. It is then
* scattered by the sample with scattered beams passing through the
* upstream wall of the capillary, then windows 4 and 5. As part of the
* corrections for a PDF experiment it is necessary to subtract the PDF
* of the empty container (i.e. each of the windows and the capillary).
* To calculate the PDF of the empty container it is necessary to have
* the measured scattering data and to know the nature (e.g. density,
* elemental composition, etc.) of the portion of the container which
* the beam passed through.
* .. figure:: container/ComplexContainerBeampath.png
* A complete description of the shapes of the container elements with
* their orientation relative to the beam and also information on
* whether they are upstream or downstream of the sample is also
* therefore important. For example, although the windows 2 and 4 have
* the same shape, the path taken through them by the beam is very
* different and this needs to be modelled. Furthermore, it is not
* inconceivable that windows might move during an experiment and thus
* the changes to the beampath would need to be accounted for.
* This class encodes the position of the container with respect to the
* sample and allows the calculation of the beampath through the container.
* It also includes sufficient data to model beam absorption of the
* container and a link to a dataset containing a measurement of the
* container with nothing inside, to allow data corrections (at a specific
* beam energy/measurement time) to be made.
*
*/
public interface NXcontainer extends NXobject {
public static final String NX_NAME = "name";
public static final String NX_DESCRIPTION = "description";
public static final String NX_CHEMICAL_FORMULA = "chemical_formula";
public static final String NX_DENSITY = "density";
public static final String NX_PACKING_FRACTION = "packing_fraction";
public static final String NX_RELATIVE_MOLECULAR_MASS = "relative_molecular_mass";
/**
* Descriptive name of container.
*
* @return the value.
*/
public IDataset getName();
/**
* Descriptive name of container.
*
* @param name the name
*/
public DataNode setName(IDataset name);
/**
* Descriptive name of container.
*
* @return the value.
*/
public String getNameScalar();
/**
* Descriptive name of container.
*
* @param name the name
*/
public DataNode setNameScalar(String name);
/**
* Verbose description of container and how it fits into the wider
* experimental set up.
*
* @return the value.
*/
public IDataset getDescription();
/**
* Verbose description of container and how it fits into the wider
* experimental set up.
*
* @param description the description
*/
public DataNode setDescription(IDataset description);
/**
* Verbose description of container and how it fits into the wider
* experimental set up.
*
* @return the value.
*/
public String getDescriptionScalar();
/**
* Verbose description of container and how it fits into the wider
* experimental set up.
*
* @param description the description
*/
public DataNode setDescriptionScalar(String description);
/**
* Chemical composition of the material the container is made from.
* Specified using CIF conventions. Abbreviated version of CIF
* standard:
* * Only recognized element symbols may be used.
* * Each element symbol is followed by a 'count' number. A count of
* '1' may be omitted.
* * A space or parenthesis must separate each cluster of (element
* symbol + count).
* * Where a group of elements is enclosed in parentheses, the
* multiplier for the group must follow the closing parentheses.
* That is, all element and group multipliers are assumed to be
* printed as subscripted numbers.
* * Unless the elements are ordered in a manner that corresponds to
* their chemical structure, the order of the elements within any
* group or moiety depends on whether or not carbon is present.
* * If carbon is present, the order should be:
* - C, then H, then the other elements in alphabetical order of
* their symbol.
* - If carbon is not present, the elements are listed purely in
* alphabetic order of their symbol.
* * This is the *Hill* system used by Chemical Abstracts.
*
* @return the value.
*/
public IDataset getChemical_formula();
/**
* Chemical composition of the material the container is made from.
* Specified using CIF conventions. Abbreviated version of CIF
* standard:
* * Only recognized element symbols may be used.
* * Each element symbol is followed by a 'count' number. A count of
* '1' may be omitted.
* * A space or parenthesis must separate each cluster of (element
* symbol + count).
* * Where a group of elements is enclosed in parentheses, the
* multiplier for the group must follow the closing parentheses.
* That is, all element and group multipliers are assumed to be
* printed as subscripted numbers.
* * Unless the elements are ordered in a manner that corresponds to
* their chemical structure, the order of the elements within any
* group or moiety depends on whether or not carbon is present.
* * If carbon is present, the order should be:
* - C, then H, then the other elements in alphabetical order of
* their symbol.
* - If carbon is not present, the elements are listed purely in
* alphabetic order of their symbol.
* * This is the *Hill* system used by Chemical Abstracts.
*
* @param chemical_formula the chemical_formula
*/
public DataNode setChemical_formula(IDataset chemical_formula);
/**
* Chemical composition of the material the container is made from.
* Specified using CIF conventions. Abbreviated version of CIF
* standard:
* * Only recognized element symbols may be used.
* * Each element symbol is followed by a 'count' number. A count of
* '1' may be omitted.
* * A space or parenthesis must separate each cluster of (element
* symbol + count).
* * Where a group of elements is enclosed in parentheses, the
* multiplier for the group must follow the closing parentheses.
* That is, all element and group multipliers are assumed to be
* printed as subscripted numbers.
* * Unless the elements are ordered in a manner that corresponds to
* their chemical structure, the order of the elements within any
* group or moiety depends on whether or not carbon is present.
* * If carbon is present, the order should be:
* - C, then H, then the other elements in alphabetical order of
* their symbol.
* - If carbon is not present, the elements are listed purely in
* alphabetic order of their symbol.
* * This is the *Hill* system used by Chemical Abstracts.
*
* @return the value.
*/
public String getChemical_formulaScalar();
/**
* Chemical composition of the material the container is made from.
* Specified using CIF conventions. Abbreviated version of CIF
* standard:
* * Only recognized element symbols may be used.
* * Each element symbol is followed by a 'count' number. A count of
* '1' may be omitted.
* * A space or parenthesis must separate each cluster of (element
* symbol + count).
* * Where a group of elements is enclosed in parentheses, the
* multiplier for the group must follow the closing parentheses.
* That is, all element and group multipliers are assumed to be
* printed as subscripted numbers.
* * Unless the elements are ordered in a manner that corresponds to
* their chemical structure, the order of the elements within any
* group or moiety depends on whether or not carbon is present.
* * If carbon is present, the order should be:
* - C, then H, then the other elements in alphabetical order of
* their symbol.
* - If carbon is not present, the elements are listed purely in
* alphabetic order of their symbol.
* * This is the *Hill* system used by Chemical Abstracts.
*
* @param chemical_formula the chemical_formula
*/
public DataNode setChemical_formulaScalar(String chemical_formula);
/**
* Density of the material the container is made from.
*
* Type: NX_FLOAT
* Units: NX_MASS_DENSITY
* Dimensions: 1: n_comp;
*
*
* @return the value.
*/
public IDataset getDensity();
/**
* Density of the material the container is made from.
*
* Type: NX_FLOAT
* Units: NX_MASS_DENSITY
* Dimensions: 1: n_comp;
*
*
* @param density the density
*/
public DataNode setDensity(IDataset density);
/**
* Density of the material the container is made from.
*
* Type: NX_FLOAT
* Units: NX_MASS_DENSITY
* Dimensions: 1: n_comp;
*
*
* @return the value.
*/
public Double getDensityScalar();
/**
* Density of the material the container is made from.
*
* Type: NX_FLOAT
* Units: NX_MASS_DENSITY
* Dimensions: 1: n_comp;
*
*
* @param density the density
*/
public DataNode setDensityScalar(Double density);
/**
* Fraction of the volume of the container occupied by the material
* forming the container.
*
* Type: NX_FLOAT
* Units: NX_UNITLESS
* Dimensions: 1: n_comp;
*
*
* @return the value.
*/
public IDataset getPacking_fraction();
/**
* Fraction of the volume of the container occupied by the material
* forming the container.
*
* Type: NX_FLOAT
* Units: NX_UNITLESS
* Dimensions: 1: n_comp;
*
*
* @param packing_fraction the packing_fraction
*/
public DataNode setPacking_fraction(IDataset packing_fraction);
/**
* Fraction of the volume of the container occupied by the material
* forming the container.
*
* Type: NX_FLOAT
* Units: NX_UNITLESS
* Dimensions: 1: n_comp;
*
*
* @return the value.
*/
public Double getPacking_fractionScalar();
/**
* Fraction of the volume of the container occupied by the material
* forming the container.
*
* Type: NX_FLOAT
* Units: NX_UNITLESS
* Dimensions: 1: n_comp;
*
*
* @param packing_fraction the packing_fraction
*/
public DataNode setPacking_fractionScalar(Double packing_fraction);
/**
* Relative molecular mass of container.
*
* Type: NX_FLOAT
* Units: NX_MASS
* Dimensions: 1: n_comp;
*
*
* @return the value.
*/
public IDataset getRelative_molecular_mass();
/**
* Relative molecular mass of container.
*
* Type: NX_FLOAT
* Units: NX_MASS
* Dimensions: 1: n_comp;
*
*
* @param relative_molecular_mass the relative_molecular_mass
*/
public DataNode setRelative_molecular_mass(IDataset relative_molecular_mass);
/**
* Relative molecular mass of container.
*
* Type: NX_FLOAT
* Units: NX_MASS
* Dimensions: 1: n_comp;
*
*
* @return the value.
*/
public Double getRelative_molecular_massScalar();
/**
* Relative molecular mass of container.
*
* Type: NX_FLOAT
* Units: NX_MASS
* Dimensions: 1: n_comp;
*
*
* @param relative_molecular_mass the relative_molecular_mass
*/
public DataNode setRelative_molecular_massScalar(Double relative_molecular_mass);
/**
* Details of beam incident on container, including the position
* relative to the sample (to determine whether the container is
* upstream or downstream of the sample).
*
* @return the value.
*/
public NXbeam getBeam();
/**
* Details of beam incident on container, including the position
* relative to the sample (to determine whether the container is
* upstream or downstream of the sample).
*
* @param beam the beam
*/
public void setBeam(NXbeam beam);
/**
* Shape of the container. In combination with orientation this
* should allow the beampath through the container to be modelled to
* allow the adsorption to be calculated.
*
* @return the value.
*/
public NXshape getShape();
/**
* Shape of the container. In combination with orientation this
* should allow the beampath through the container to be modelled to
* allow the adsorption to be calculated.
*
* @param shape the shape
*/
public void setShape(NXshape shape);
/**
* The angle the container makes to the beam and how it may change
* during the experiment.In combination with shape this should allow
* the beampath through the container to be modelled to allow the
* adsorption of the container to be calculated.
*
* @return the value.
*/
public NXtransformations getOrientation();
/**
* The angle the container makes to the beam and how it may change
* during the experiment.In combination with shape this should allow
* the beampath through the container to be modelled to allow the
* adsorption of the container to be calculated.
*
* @param orientation the orientation
*/
public void setOrientation(NXtransformations orientation);
// Unprocessed link: reference_measurement
}