// src directory =/home/dke/Documents/project/nexus//src/au/gov/ansto/bragg/nexus/auto/
package au.gov.ansto.bragg.nexus.auto;
import neutron.nexus.*;
import au.gov.ansto.bragg.nexus.base.*;

//  Generated from XML template(http://svn.nexusformat.org/definitions/trunk/base_classes/NXcrystal.xml)
/** 
URL:     http://www.nexus.anl.gov/classes/xml/NXcrystal.xml
Editor:  NIAC
$Id$

Template of a crystal monochromator or analyzer. Permits double bent
monochromator comprised of multiple segments with anisotropic 
Gaussian mosaic.

If curvatures are set to zero or are absent, array 
is considered to be flat.

Scattering vector is perpendicular to surface. Crystal is oriented
parallel to beam incident on crystal before rotation, and lies in
vertical plane.

 */

 public class NXcrystal
 extends NXgroup_ {


/** Property string for bean property 'nXgeometry' */
final static public String $nXgeometry = "nXgeometry";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Position of crystal}? */
private NXgeometry nXgeometry_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Position of crystal}? */
public NXgeometry getNXgeometry(){
 return nXgeometry_;
}
public void setNXgeometry(final NXgeometry nXgeometry){
 nXgeometry_ = nXgeometry;
}

/** Property string for bean property 'type' */
final static public String $type = "type";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** { "PG (Highly Oriented Pyrolytic Graphite)" | "Ge" | "Si" | "Cu" | "Fe3Si" | "CoFe" | "Cu2MnAl (Heusler)" | "Multilayer" }? */
private Type type_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** { "PG (Highly Oriented Pyrolytic Graphite)" | "Ge" | "Si" | "Cu" | "Fe3Si" | "CoFe" | "Cu2MnAl (Heusler)" | "Multilayer" }? */
public Type getType(){
 return type_;
}
public void setType(final Type type){
 type_ = type;
}

/** Property string for bean property 'cut_angle' */
final static public String $cut_angle = "cut_angle";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Cut angle of reflecting Bragg plane and plane of crystal surface}? */
private Cut_angle cut_angle_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Cut angle of reflecting Bragg plane and plane of crystal surface}? */
public Cut_angle getCut_angle(){
 return cut_angle_;
}
public void setCut_angle(final Cut_angle cut_angle){
 cut_angle_ = cut_angle;
}

/** Property string for bean property 'unit_cell' */
final static public String $unit_cell = "unit_cell";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Unit cell parameters (lengths and angles)}? */
private Unit_cell unit_cell_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Unit cell parameters (lengths and angles)}? */
public Unit_cell getUnit_cell(){
 return unit_cell_;
}
public void setUnit_cell(final Unit_cell unit_cell){
 unit_cell_ = unit_cell;
}

/** Property string for bean property 'unit_cell_volume' */
final static public String $unit_cell_volume = "unit_cell_volume";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Volume of the unit cell}? */
private Unit_cell_volume unit_cell_volume_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Volume of the unit cell}? */
public Unit_cell_volume getUnit_cell_volume(){
 return unit_cell_volume_;
}
public void setUnit_cell_volume(final Unit_cell_volume unit_cell_volume){
 unit_cell_volume_ = unit_cell_volume;
}

/** Property string for bean property 'orientation_matrix' */
final static public String $orientation_matrix = "orientation_matrix";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Orientation matrix of single crystal sample using Busing-Levy convention}? */
private Orientation_matrix orientation_matrix_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Orientation matrix of single crystal sample using Busing-Levy convention}? */
public Orientation_matrix getOrientation_matrix(){
 return orientation_matrix_;
}
public void setOrientation_matrix(final Orientation_matrix orientation_matrix){
 orientation_matrix_ = orientation_matrix;
}

/** Property string for bean property 'wavelength' */
final static public String $wavelength = "wavelength";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Optimum diffracted wavelength}? */
private Wavelength wavelength_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Optimum diffracted wavelength}? */
public Wavelength getWavelength(){
 return wavelength_;
}
public void setWavelength(final Wavelength wavelength){
 wavelength_ = wavelength;
}

/** Property string for bean property 'lattice_parameter' */
final static public String $lattice_parameter = "lattice_parameter";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Lattice parameter of the nominal reflection}? */
private Lattice_parameter lattice_parameter_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Lattice parameter of the nominal reflection}? */
public Lattice_parameter getLattice_parameter(){
 return lattice_parameter_;
}
public void setLattice_parameter(final Lattice_parameter lattice_parameter){
 lattice_parameter_ = lattice_parameter;
}

/** Property string for bean property 'scattering_vector' */
final static public String $scattering_vector = "scattering_vector";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Scattering vector, Q, of nominal reflection}? */
private Scattering_vector scattering_vector_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Scattering vector, Q, of nominal reflection}? */
public Scattering_vector getScattering_vector(){
 return scattering_vector_;
}
public void setScattering_vector(final Scattering_vector scattering_vector){
 scattering_vector_ = scattering_vector;
}

/** Property string for bean property 'reflection' */
final static public String $reflection = "reflection";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {[hkl] values of nominal reflection}? */
private Reflection reflection_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {[hkl] values of nominal reflection}? */
public Reflection getReflection(){
 return reflection_;
}
public void setReflection(final Reflection reflection){
 reflection_ = reflection;
}

/** Property string for bean property 'segment_width' */
final static public String $segment_width = "segment_width";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Horizontal width of individual segment}? */
private Segment_width segment_width_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Horizontal width of individual segment}? */
public Segment_width getSegment_width(){
 return segment_width_;
}
public void setSegment_width(final Segment_width segment_width){
 segment_width_ = segment_width;
}

/** Property string for bean property 'segment_height' */
final static public String $segment_height = "segment_height";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Vertical height of individual segment}? */
private Segment_height segment_height_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Vertical height of individual segment}? */
public Segment_height getSegment_height(){
 return segment_height_;
}
public void setSegment_height(final Segment_height segment_height){
 segment_height_ = segment_height;
}

/** Property string for bean property 'segment_thickness' */
final static public String $segment_thickness = "segment_thickness";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Thickness of individual segment}? */
private Segment_thickness segment_thickness_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Thickness of individual segment}? */
public Segment_thickness getSegment_thickness(){
 return segment_thickness_;
}
public void setSegment_thickness(final Segment_thickness segment_thickness){
 segment_thickness_ = segment_thickness;
}

/** Property string for bean property 'segment_gap' */
final static public String $segment_gap = "segment_gap";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Typical gap between adjacent segments}? */
private Segment_gap segment_gap_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Typical gap between adjacent segments}? */
public Segment_gap getSegment_gap(){
 return segment_gap_;
}
public void setSegment_gap(final Segment_gap segment_gap){
 segment_gap_ = segment_gap;
}

/** Property string for bean property 'segment_columns' */
final static public String $segment_columns = "segment_columns";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {number of segment columns in horizontal direction}? */
private Segment_columns segment_columns_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {number of segment columns in horizontal direction}? */
public Segment_columns getSegment_columns(){
 return segment_columns_;
}
public void setSegment_columns(final Segment_columns segment_columns){
 segment_columns_ = segment_columns;
}

/** Property string for bean property 'segment_rows' */
final static public String $segment_rows = "segment_rows";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {number of segment rows in vertical direction}? */
private Segment_rows segment_rows_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {number of segment rows in vertical direction}? */
public Segment_rows getSegment_rows(){
 return segment_rows_;
}
public void setSegment_rows(final Segment_rows segment_rows){
 segment_rows_ = segment_rows;
}

/** Property string for bean property 'mosaic_horizontal' */
final static public String $mosaic_horizontal = "mosaic_horizontal";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {horizontal mosaic Full Width Half Maximum}? */
private Mosaic_horizontal mosaic_horizontal_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {horizontal mosaic Full Width Half Maximum}? */
public Mosaic_horizontal getMosaic_horizontal(){
 return mosaic_horizontal_;
}
public void setMosaic_horizontal(final Mosaic_horizontal mosaic_horizontal){
 mosaic_horizontal_ = mosaic_horizontal;
}

/** Property string for bean property 'mosaic_vertical' */
final static public String $mosaic_vertical = "mosaic_vertical";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {vertical mosaic Full Width Half Maximum}? */
private Mosaic_vertical mosaic_vertical_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {vertical mosaic Full Width Half Maximum}? */
public Mosaic_vertical getMosaic_vertical(){
 return mosaic_vertical_;
}
public void setMosaic_vertical(final Mosaic_vertical mosaic_vertical){
 mosaic_vertical_ = mosaic_vertical;
}

/** Property string for bean property 'curvature_horizontal' */
final static public String $curvature_horizontal = "curvature_horizontal";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Horizontal curvature of focusing crystal}? */
private Curvature_horizontal curvature_horizontal_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Horizontal curvature of focusing crystal}? */
public Curvature_horizontal getCurvature_horizontal(){
 return curvature_horizontal_;
}
public void setCurvature_horizontal(final Curvature_horizontal curvature_horizontal){
 curvature_horizontal_ = curvature_horizontal;
}

/** Property string for bean property 'curvature_vertical' */
final static public String $curvature_vertical = "curvature_vertical";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Vertical curvature of focusing crystal}? */
private Curvature_vertical curvature_vertical_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Vertical curvature of focusing crystal}? */
public Curvature_vertical getCurvature_vertical(){
 return curvature_vertical_;
}
public void setCurvature_vertical(final Curvature_vertical curvature_vertical){
 curvature_vertical_ = curvature_vertical;
}

/** Property string for bean property 'polar_angle' */
final static public String $polar_angle = "polar_angle";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Polar (scattering) angle at which crystal assembly is positioned}? */
private Polar_angle polar_angle_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Polar (scattering) angle at which crystal assembly is positioned}? */
public Polar_angle getPolar_angle(){
 return polar_angle_;
}
public void setPolar_angle(final Polar_angle polar_angle){
 polar_angle_ = polar_angle;
}

/** Property string for bean property 'azimuthal_angle' */
final static public String $azimuthal_angle = "azimuthal_angle";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Azimuthal angle at which crystal assembly is positioned}? */
private Azimuthal_angle azimuthal_angle_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Azimuthal angle at which crystal assembly is positioned}? */
public Azimuthal_angle getAzimuthal_angle(){
 return azimuthal_angle_;
}
public void setAzimuthal_angle(final Azimuthal_angle azimuthal_angle){
 azimuthal_angle_ = azimuthal_angle;
}

/** Property string for bean property 'bragg_angle' */
final static public String $bragg_angle = "bragg_angle";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Bragg angle of nominal reflection}? */
private Bragg_angle bragg_angle_;
// Extracted NeXus multiplicity indicator (?) means (May occur 0 or one times (i.e. no more than once))
/** {Bragg angle of nominal reflection}? */
public Bragg_angle getBragg_angle(){
 return bragg_angle_;
}
public void setBragg_angle(final Bragg_angle bragg_angle){
 bragg_angle_ = bragg_angle;
}

/** Property string for bean property 'temperature' */
final static public String $temperature = "temperature";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator ( ) means (WARNING: no multiplicity indicator found)
/** {average/nominal crystal temperature} */
private Temperature temperature_;
// Extracted NeXus multiplicity indicator ( ) means (WARNING: no multiplicity indicator found)
/** {average/nominal crystal temperature} */
public Temperature getTemperature(){
 return temperature_;
}
public void setTemperature(final Temperature temperature){
 temperature_ = temperature;
}

/** Property string for bean property 'temperature_log' */
final static public String $temperature_log = "temperature_log";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator ( ) means (WARNING: no multiplicity indicator found)
/** {log file of crystal temperature} */
private Temperature_log temperature_log_;
// Extracted NeXus multiplicity indicator ( ) means (WARNING: no multiplicity indicator found)
/** {log file of crystal temperature} */
public Temperature_log getTemperature_log(){
 return temperature_log_;
}
public void setTemperature_log(final Temperature_log temperature_log){
 temperature_log_ = temperature_log;
}

/** Property string for bean property 'reflectivity' */
final static public String $reflectivity = "reflectivity";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator ( ) means (WARNING: no multiplicity indicator found)
/** {crystal reflectivity versus wavelength } */
private Reflectivity reflectivity_;
// Extracted NeXus multiplicity indicator ( ) means (WARNING: no multiplicity indicator found)
/** {crystal reflectivity versus wavelength } */
public Reflectivity getReflectivity(){
 return reflectivity_;
}
public void setReflectivity(final Reflectivity reflectivity){
 reflectivity_ = reflectivity;
}

/** Property string for bean property 'transmission' */
final static public String $transmission = "transmission";

// indexed = false
// required = false
// Extracted NeXus multiplicity indicator ( ) means (WARNING: no multiplicity indicator found)
/** {crystal transmission versus wavelength } */
private Transmission transmission_;
// Extracted NeXus multiplicity indicator ( ) means (WARNING: no multiplicity indicator found)
/** {crystal transmission versus wavelength } */
public Transmission getTransmission(){
 return transmission_;
}
public void setTransmission(final Transmission transmission){
 transmission_ = transmission;
}


/** constructor */
public NXcrystal(){
 super();
}



static public class Type
 extends NXdataItem_ {



/** constructor */
public Type(){
 super();
}


/** constructor */
public Type(String content){
 super(content);
}

}


static public class Cut_angle
 extends NXdataItem_ {



/** constructor */
public Cut_angle(){
 super();
}


/** constructor */
public Cut_angle(Object content){
 super(content);
}

}


static public class Unit_cell
 extends NXdataItem_ {



/** constructor */
public Unit_cell(){
 super();
}


/** constructor */
public Unit_cell(Object content){
 super(content);
}

}


static public class Unit_cell_volume
 extends NXdataItem_ {


/** Property string for bean property 'rank' */
final static public String $rank = "rank";

// indexed = false
// required = false
private String rank_;
public String getRank(){
 return rank_;
}
public void setRank(final String rank){
 rank_ = rank;
}


/** constructor */
public Unit_cell_volume(){
 super();
}


/** constructor */
public Unit_cell_volume(Float content){
 super(content);
}

}


static public class Orientation_matrix
 extends NXdataItem_ {



/** constructor */
public Orientation_matrix(){
 super();
}


/** constructor */
public Orientation_matrix(Object content){
 super(content);
}

}


static public class Wavelength
 extends NXdataItem_ {



/** constructor */
public Wavelength(){
 super();
}


/** constructor */
public Wavelength(Object content){
 super(content);
}

}


static public class Lattice_parameter
 extends NXdataItem_ {



/** constructor */
public Lattice_parameter(){
 super();
}


/** constructor */
public Lattice_parameter(Float content){
 super(content);
}

}


static public class Scattering_vector
 extends NXdataItem_ {



/** constructor */
public Scattering_vector(){
 super();
}


/** constructor */
public Scattering_vector(Float content){
 super(content);
}

}


static public class Reflection
 extends NXdataItem_ {



/** constructor */
public Reflection(){
 super();
}


/** constructor */
public Reflection(Object content){
 super(content);
}

}


static public class Segment_width
 extends NXdataItem_ {



/** constructor */
public Segment_width(){
 super();
}


/** constructor */
public Segment_width(Float content){
 super(content);
}

}


static public class Segment_height
 extends NXdataItem_ {



/** constructor */
public Segment_height(){
 super();
}


/** constructor */
public Segment_height(Float content){
 super(content);
}

}


static public class Segment_thickness
 extends NXdataItem_ {



/** constructor */
public Segment_thickness(){
 super();
}


/** constructor */
public Segment_thickness(Float content){
 super(content);
}

}


static public class Segment_gap
 extends NXdataItem_ {



/** constructor */
public Segment_gap(){
 super();
}


/** constructor */
public Segment_gap(Float content){
 super(content);
}

}


static public class Segment_columns
 extends NXdataItem_ {



/** constructor */
public Segment_columns(){
 super();
}


/** constructor */
public Segment_columns(Object content){
 super(content);
}

}


static public class Segment_rows
 extends NXdataItem_ {



/** constructor */
public Segment_rows(){
 super();
}


/** constructor */
public Segment_rows(Object content){
 super(content);
}

}


static public class Mosaic_horizontal
 extends NXdataItem_ {



/** constructor */
public Mosaic_horizontal(){
 super();
}


/** constructor */
public Mosaic_horizontal(Object content){
 super(content);
}

}


static public class Mosaic_vertical
 extends NXdataItem_ {



/** constructor */
public Mosaic_vertical(){
 super();
}


/** constructor */
public Mosaic_vertical(Object content){
 super(content);
}

}


static public class Curvature_horizontal
 extends NXdataItem_ {



/** constructor */
public Curvature_horizontal(){
 super();
}


/** constructor */
public Curvature_horizontal(Float content){
 super(content);
}

}


static public class Curvature_vertical
 extends NXdataItem_ {



/** constructor */
public Curvature_vertical(){
 super();
}


/** constructor */
public Curvature_vertical(Float content){
 super(content);
}

}


static public class Polar_angle
 extends NXdataItem_ {



/** constructor */
public Polar_angle(){
 super();
}


/** constructor */
public Polar_angle(Object content){
 super(content);
}

}


static public class Azimuthal_angle
 extends NXdataItem_ {



/** constructor */
public Azimuthal_angle(){
 super();
}


/** constructor */
public Azimuthal_angle(Object content){
 super(content);
}

}


static public class Bragg_angle
 extends NXdataItem_ {



/** constructor */
public Bragg_angle(){
 super();
}


/** constructor */
public Bragg_angle(Object content){
 super(content);
}

}


static public class Temperature
 extends NXdataItem_ {


/** Property string for bean property 'Units' */
final static public String $Units = "Units";

// indexed = false
// required = false
private String Units_;
public String getUnits(){
 return Units_;
}
public void setUnits(final String Units){
 Units_ = Units;
}


/** constructor */
public Temperature(){
 super();
}


/** constructor */
public Temperature(Float content){
 super(content);
}

}


static public class Temperature_log
 extends NXdataItem_ {



/** constructor */
public Temperature_log(){
 super();
}


/** constructor */
public Temperature_log(Object content){
 super(content);
}

}


static public class Reflectivity
 extends NXdataItem_ {



/** constructor */
public Reflectivity(){
 super();
}


/** constructor */
public Reflectivity(Object content){
 super(content);
}

}


static public class Transmission
 extends NXdataItem_ {



/** constructor */
public Transmission(){
 super();
}


/** constructor */
public Transmission(Object content){
 super(content);
}

}
}
