All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy