Import Geant4 9.1.0 source tree
This commit is contained in:
@@ -0,0 +1,216 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:include schemaLocation="gdml_core.xsd"/>
|
||||
<xs:include schemaLocation="gdml_define.xsd"/>
|
||||
<xs:include schemaLocation="gdml_materials.xsd"/>
|
||||
<xs:include schemaLocation="gdml_solids.xsd"/>
|
||||
<xs:include schemaLocation="gdml_replicas.xsd"/>
|
||||
<xs:include schemaLocation="gdml_parameterised.xsd"/>
|
||||
<xs:include schemaLocation="gdml_extensions.xsd"/>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType abstract="true" name="IdentifiableVolumeType">
|
||||
<xs:attribute name="name" type="xs:ID" use="required"/>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="SinglePlacementType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Represents a single unique copy a of an associated logical volume
|
||||
in geometrical hierarchy</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:choice minOccurs="1">
|
||||
<xs:element name="file" type="FileReferenceType"/>
|
||||
<xs:element name="volumeref" type="ReferenceType"/>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="position" type="positionType"/>
|
||||
<xs:element name="positionref" type="ReferenceType"/>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="rotation" type="rotationType"/>
|
||||
<xs:element name="rotationref" type="ReferenceType"/>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="scale" type="scaleType"/>
|
||||
<xs:element name="scaleref" type="ReferenceType"/>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:ID"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="DivisionPlacementType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Represents a division of the associated logical volume
|
||||
in geometrical hierarchy</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="volumeref" type="ReferenceType"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="axis" type="xs:string" use="required"></xs:attribute>
|
||||
<xs:attribute name="number" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="width" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="offset" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute default="mm" name="unit" type="xs:string"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="VolumeType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Represents a top of a geometrical sub-hierarchy not placed in space
|
||||
None of its children can coincide with its boundary defined by an associated solid
|
||||
Two different placements of the same logical volume represent two different geometrical
|
||||
hierarchies in space</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="IdentifiableVolumeType">
|
||||
<xs:sequence>
|
||||
<xs:element name="materialref" type="ReferenceType"/>
|
||||
<xs:element name="solidref" type="ReferenceType"/>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element maxOccurs="unbounded" name="physvol" type="SinglePlacementType"/>
|
||||
<xs:element maxOccurs="1" minOccurs="1" name="divisionvol" type="DivisionPlacementType"/>
|
||||
<xs:element maxOccurs="1" minOccurs="1" ref="replicavol"/>
|
||||
<xs:element maxOccurs="1" minOccurs="1" name="paramvol" type="ParameterisedPlacementType"/>
|
||||
</xs:choice>
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
|
||||
<xs:element name="auxiliary" maxOccurs="unbounded" minOccurs="0" type="AuxiliaryType"/>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="AssemblyVolumeType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Allows to create a group of volumes bound together without a boundary
|
||||
All the volumes exits inside the same virtual reference system of the assmebly volume
|
||||
they belong to
|
||||
When assembly volume is placed all its children follow the global transformation applied
|
||||
to their assembly volume
|
||||
After the assembly volume is placed its children exist as standalone placements in space
|
||||
independent of each other</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="IdentifiableVolumeType">
|
||||
<xs:choice>
|
||||
<xs:element maxOccurs="unbounded" name="physvol" type="SinglePlacementType"/>
|
||||
<xs:element maxOccurs="1" minOccurs="1" ref="replicavol"/>
|
||||
<xs:element maxOccurs="1" minOccurs="1" name="paramvol" type="ParameterisedPlacementType"/>
|
||||
</xs:choice>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="LogicalSurfaceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Base type for logical surfaces (for the moment only optical)
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
|
||||
<xs:attribute name="surfaceproperty" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element abstract="true" name="Surface" type="LogicalSurfaceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Abstract element for all solids substitution group</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="bordersurface" substitutionGroup="Surface">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Surface between two physical volumes</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="LogicalSurfaceType">
|
||||
<xs:sequence>
|
||||
<xs:element name="physvolref" type="ReferenceType"/>
|
||||
<xs:element name="physvolref" type="ReferenceType"/>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="skinsurface" substitutionGroup="Surface">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Surface between two physical volumes</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="LogicalSurfaceType">
|
||||
<xs:sequence>
|
||||
<xs:element name="volumeref" type="ReferenceType"/>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="structure">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Definitions of a geometrical hierarchy of a set of volumes</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element name="volume" type="VolumeType"/>
|
||||
<xs:element name="assembly" type="AssemblyVolumeType"/>
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
|
||||
<xs:element ref="ParameterisationAlgorithm"/>
|
||||
</xs:choice>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Surface"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="gdml">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="define"/>
|
||||
<xs:element ref="materials"/>
|
||||
<xs:element ref="solids"/>
|
||||
<xs:element ref="structure"/>
|
||||
<xs:element maxOccurs="unbounded" name="setup">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Geometry setup representing the particular geometry hierarchy by refferring to
|
||||
a given volume which becomes the top level volume</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="world" type="ReferenceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A reference to the previously defined volume
|
||||
in the structure block chosen by this setup
|
||||
World volumme can't be an assembly volume</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:ID" use="required"/>
|
||||
<xs:attribute name="version" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute fixed="2.10.0" name="version" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The GDML Schema version consists of 3 digits X.Y.Z
|
||||
where these mean:
|
||||
X - major number, increased when major new
|
||||
features or backward incompatible bug fixes
|
||||
are added and means the GDML Processor is
|
||||
allowed to refuse processing of such a
|
||||
document if this is using the more recent
|
||||
version of the GDML Schema then GDML Processor
|
||||
understands
|
||||
Y - minor number, increased when incremental and
|
||||
backward compatible changes or improvements
|
||||
are made into the GDML Schema. GDML Processor
|
||||
should be able to process such a document
|
||||
using higher minor version number then that of
|
||||
the GDML Processor
|
||||
Z - bugfix revision number, increased when fully
|
||||
backward compatible changes which resolve a
|
||||
problem in GDML Schema are applied</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,199 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE xs:schema []>
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:simpleType name="InlineExpressionType">
|
||||
<xs:restriction base="xs:string"></xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:simpleType name="ExpressionOrIDREFType">
|
||||
<xs:union memberTypes="xs:IDREF InlineExpressionType xs:double "></xs:union>
|
||||
</xs:simpleType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="IdentifiableExpressionType">
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="InlineExpressionType">
|
||||
<xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<!--
|
||||
<xs:complexType name="ExpressionType" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A base type for expressions
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:complexType>
|
||||
-->
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<!--
|
||||
<xs:complexType name="IdentifiableExpressionType" mixed="true">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Named (referenced), global scope,
|
||||
expression (may contain named constants and quantities)
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="ExpressionType">
|
||||
<xs:attribute name="name" type="xs:ID" use="required"/>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
-->
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="ConstantType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An anonymous, local scope, value</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="value" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="VariableType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An anonymous, local scope, value</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="value" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="IdentifiableConstantType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named (referenced), global scope, constant value</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="ConstantType">
|
||||
<xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="IdentifiableVariableType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named (referenced), local scope, variable value</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="VariableType">
|
||||
<xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="QuantityType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An anonymous quantity, local scope, with a unit,
|
||||
(possibly of a given type) quantity</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="ConstantType">
|
||||
<!-- The unit attribute was originally required,
|
||||
but set to optional and is recommended to provide
|
||||
a default value in its derived type
|
||||
-->
|
||||
<xs:attribute name="unit" type="xs:string" use="optional"></xs:attribute>
|
||||
<xs:attribute name="type" type="xs:string" use="optional"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="IdentifiableQuantityType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named (referenced), global scope,(possibly of a given type) quantity</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="QuantityType">
|
||||
<xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="ThreeVectorType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An anonymous, 3 dimensional, local scope, vector of doubles</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute default="0.0" name="x" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="y" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="z" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="MatrixType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A bi-dimensional matrix of doubles</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="name" type="xs:ID"></xs:attribute>
|
||||
<xs:attribute name="coldim" type="xs:nonNegativeInteger"></xs:attribute>
|
||||
<xs:attribute name="values" type="xs:string"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="IdentifiableThreeVectorType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named (referenced), 3 dimensional, global scope, vector of doubles</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="ThreeVectorType">
|
||||
<xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="QuantityVectorType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An anonymous, 3 dimensional, local scope, with a unit,
|
||||
(possibly of a given type) quantity vector</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="ThreeVectorType">
|
||||
<!-- The unit attribute was originally required,
|
||||
but set to optional and is recommended to provide
|
||||
a default value in its derived type
|
||||
-->
|
||||
<xs:attribute name="unit" type="xs:string" use="optional"></xs:attribute>
|
||||
<xs:attribute name="type" type="xs:string" use="optional"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="IdentifiableQuantityVectorType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named (referenced), 3 dimensional, global scope, with a unit,
|
||||
(possibly of a given type) quantity vector</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="QuantityVectorType">
|
||||
<xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="ReferenceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Local reference to an element of a named type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="ref" type="xs:IDREF" use="required"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="FileReferenceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Reference to an external file containing sub-volume information</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="name" type="xs:anyURI" use="required"></xs:attribute>
|
||||
<xs:attribute name="volname" type="xs:string" use="optional"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="ReferenceListType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>List of local references to a set of element of a named type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="refs" type="xs:IDREFS" use="required"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="AuxiliaryType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Auxiliary information like sensitive detector declaration, etc.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="auxtype" type="xs:string" use="required"></xs:attribute>
|
||||
<xs:attribute name="auxvalue" type="xs:string" use="required"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,118 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE xs:schema>
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:include schemaLocation="gdml_core.xsd"/>
|
||||
<xs:include schemaLocation="gdml_extensions.xsd"/>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="define" type="defineType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Definition block of global named constants, quantitties, expressions,
|
||||
positions and rotations which may be used by name or
|
||||
by a reference in scope of the current document</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:complexType name="defineType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The global complex type is defined in order to reuse this defintion
|
||||
in derived schemas</xs:documentation>
|
||||
</xs:annotation>
|
||||
<!-- |||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -->
|
||||
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" name="constant" type="IdentifiableConstantType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named constant</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" name="variable" type="IdentifiableVariableType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named variable</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" name="matrix" type="MatrixType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named matrix</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" name="quantity" type="IdentifiableQuantityType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named quantity</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" name="expression" type="IdentifiableExpressionType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named expression, may contain other named constants,
|
||||
quantities and expressions</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" name="position" type="positionType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named cartesian position, default unit mm</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" name="rotation" type="rotationType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named cartesian rotation, default unit radian</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" name="scale" type="scaleType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Named cartesian rotation, default unit radian</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
</xs:choice>
|
||||
<!-- |||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -->
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:complexType name="positionType">
|
||||
<xs:complexContent>
|
||||
<xs:restriction base="IdentifiableQuantityVectorType">
|
||||
<xs:attribute default="mm" type="xs:string" name="unit"/>
|
||||
<xs:attribute default="cartesian" type="xs:string" name="type"/>
|
||||
</xs:restriction>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:complexType name="rotationType">
|
||||
<xs:complexContent>
|
||||
<xs:restriction base="IdentifiableQuantityVectorType">
|
||||
<xs:attribute default="radian" type="xs:string" name="unit"/>
|
||||
<xs:attribute default="cartesian" type="xs:string" name="type"/>
|
||||
</xs:restriction>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:complexType name="scaleType">
|
||||
<xs:complexContent>
|
||||
<xs:restriction base="IdentifiableQuantityVectorType">
|
||||
</xs:restriction>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="loop">
|
||||
<xs:complexType>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element maxOccurs="unbounded" ref="Solid"/>
|
||||
<xs:element name="volume" type="VolumeType"/>
|
||||
<xs:element name="physvol" type="SinglePlacementType"/>
|
||||
</xs:choice>
|
||||
<xs:attribute name="for" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="from" type="xs:nonNegativeInteger">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="to" type="xs:positiveInteger">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="step" type="xs:positiveInteger">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,390 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE xs:schema []>
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="0.1" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:include schemaLocation="gdml_core.xsd"></xs:include>
|
||||
<xs:include schemaLocation="gdml_define.xsd"></xs:include>
|
||||
<xs:include schemaLocation="gdml_extensions.xsd"/>
|
||||
<!-- Removed abstract="true" in AtomType -->
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="AtomType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Atomic mass, quantity type A, default unit g/mole</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:restriction base="QuantityType">
|
||||
<xs:attribute default="g/mole" type="xs:string" name="unit"></xs:attribute>
|
||||
<xs:attribute fixed="A" type="xs:string" name="type"></xs:attribute>
|
||||
</xs:restriction>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="DensityType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Density</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:restriction base="QuantityType">
|
||||
<xs:attribute default="g/cm3" type="xs:string" name="unit"></xs:attribute>
|
||||
<xs:attribute fixed="density" type="xs:string" name="type"></xs:attribute>
|
||||
</xs:restriction>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:group name="MaterialPropertiesGroup">
|
||||
<xs:annotation>
|
||||
<xs:documentation>General material properties</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element maxOccurs="unbounded" name="property">
|
||||
<xs:annotation>
|
||||
<xs:documentation>General material property (const or vector)</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="ReferenceType">
|
||||
<xs:attribute name="name" type="xs:string" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="RL">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Radiation length</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:restriction base="QuantityType">
|
||||
<xs:attribute default="cm" type="xs:string" name="unit"></xs:attribute>
|
||||
<xs:attribute fixed="X0" type="xs:string" name="type"></xs:attribute>
|
||||
</xs:restriction>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="RLref" type="ReferenceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A reference to a previsouly defined named radiation length quantity value</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="AL">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Absorption length</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:restriction base="QuantityType">
|
||||
<xs:attribute default="cm" type="xs:string" name="unit"></xs:attribute>
|
||||
<xs:attribute fixed="lambda" type="xs:string" name="type"></xs:attribute>
|
||||
</xs:restriction>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="ALref" type="ReferenceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A reference to a previsouly defined named absorption length quantity value</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="T">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Temperature</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:restriction base="QuantityType">
|
||||
<xs:attribute default="K" type="xs:string" name="unit"></xs:attribute>
|
||||
<xs:attribute fixed="temperature" type="xs:string" name="type"></xs:attribute>
|
||||
</xs:restriction>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Tref" type="ReferenceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A reference to previously defined named temperature quantity value</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="P">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Pressure</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:restriction base="QuantityType">
|
||||
<xs:attribute default="pascal" type="xs:string" name="unit"></xs:attribute>
|
||||
<xs:attribute fixed="pressure" type="xs:string" name="type"></xs:attribute>
|
||||
</xs:restriction>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Pref" type="ReferenceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A reference to previously defined named pressure quantity value</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
</xs:group>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:attributeGroup name="MaterialAttributeGroup">
|
||||
<xs:annotation>
|
||||
<xs:documentation>General material attributes</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="name" type="xs:ID" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Material name</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="formula" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Material chemical formula</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute default="unknown" name="state">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Material physical state</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:NMTOKEN">
|
||||
<xs:enumeration value="gas"></xs:enumeration>
|
||||
<xs:enumeration value="liquid"></xs:enumeration>
|
||||
<xs:enumeration value="solid"></xs:enumeration>
|
||||
<xs:enumeration value="unknown"></xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:attributeGroup>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="MaterialType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Base type for materials</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:group ref="MaterialPropertiesGroup"></xs:group>
|
||||
<xs:attributeGroup ref="MaterialAttributeGroup"></xs:attributeGroup>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<!--
|
||||
<xs:complexType name="ComplexMaterialType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Base type for complex materials
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="MaterialType">
|
||||
-->
|
||||
<!-- <xs:group ref="MaterialPropertiesGroup"/> -->
|
||||
<!--
|
||||
Removed from referenced attribute group
|
||||
<xs:attribute name="N" use="prohibited"/>
|
||||
-->
|
||||
<!--
|
||||
<xs:attribute name="Z" type="xs:double" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Atomic number</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
-->
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="materials">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Materials description</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
|
||||
<xs:element minOccurs="0" name="define" type="defineType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Material related definitons of constants and quantities
|
||||
In this version of schema these become visible in global scope</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" name="isotope" type="MaterialIsotopeType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An isotope</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" name="element" type="MaterialElementType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A simple element or an element composed of isotopes</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" name="material" type="MaterialMixtureType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A composite or a mixture complex material</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="MaterialIsotopeType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Exported isotope type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="MaterialType">
|
||||
<xs:sequence>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="D" type="DensityType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Density quantity value</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="Dref" type="ReferenceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A reference to a previsouly defined named density quantity value</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:element name="atom" type="AtomType"></xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="N" type="xs:positiveInteger" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Number of nucleons</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Z" type="xs:double" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Atomic number</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="MaterialElementType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Exported material element type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="MaterialType">
|
||||
<xs:sequence>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="D" type="DensityType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Density quantity value</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="Dref" type="ReferenceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A reference to a previsouly defined named density quantity value</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice>
|
||||
<xs:annotation>
|
||||
<xs:documentation>An element can be defined either as a simple element or by a set
|
||||
of isotopes fractions</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:element name="atom" type="AtomType"></xs:element>
|
||||
<xs:element maxOccurs="unbounded" name="fraction">
|
||||
<xs:annotation>
|
||||
<xs:documentation>An isotope fraction of an element where n is the actual amount
|
||||
of the isotope in the element</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="ReferenceType">
|
||||
<xs:attribute name="n" type="xs:double" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="N" type="xs:positiveInteger" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Number of nucleons</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Z" type="xs:double" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Atomic number</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="MaterialMixtureType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Exported material composite or mixture type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<!-- <xs:extension base="ComplexMaterialType"> -->
|
||||
<xs:extension base="MaterialType">
|
||||
<xs:sequence>
|
||||
<xs:choice>
|
||||
<xs:element name="D" type="DensityType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Density quantity value</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="Dref" type="ReferenceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A reference to a previsouly defined named density quantity value</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice>
|
||||
<xs:annotation>
|
||||
<xs:documentation>A complex material can be defined as a simple mixture when
|
||||
its material properties are known or as a composite material
|
||||
or a mixture. A composite material is defined by a set of elements
|
||||
by specifying the number of atoms.
|
||||
The second way is by a set of material fractions where the fractions
|
||||
can be either simple elements or other complex materials.
|
||||
The restriction is that one can't mix composition by atoms and fractions
|
||||
at the same time.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:element name="atom" type="AtomType"></xs:element>
|
||||
<xs:element maxOccurs="unbounded" name="composite">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Elements of this composite material specified as a set of local references
|
||||
to already defined simple elements where value of n in each means the number of atoms</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="ReferenceType">
|
||||
<xs:attribute name="n" type="xs:positiveInteger" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element maxOccurs="unbounded" name="fraction">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Fractions of this mixture specified as a set of local references to already defined
|
||||
elements or other mixtures where value of n in each means the fraction of the whole
|
||||
material in the range 0.0 < n < 1.0</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="ReferenceType">
|
||||
<xs:attribute name="n" type="xs:double" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Z" type="xs:double" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Atomic number</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,104 @@
|
||||
<?xml version="1.0"?>
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:include schemaLocation="gdml_define.xsd"/>
|
||||
<xs:include schemaLocation="gdml_extensions.xsd"/>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType abstract="false" name="DimensionsType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Abstract base for parametrised dimensions</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="Dimensions" abstract="true" type="DimensionsType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Abstract element for substitution group</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="BoxDimensionsType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Dimensions for parametrised boxes. </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="DimensionsType">
|
||||
<xs:attribute default="1.0" name="x" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="1.0" name="y" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="1.0" name="z" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="box_dimensions" substitutionGroup="Dimensions" type="BoxDimensionsType"/>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="TubeDimensionsType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Dimensions for parametrised boxes. </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="DimensionsType">
|
||||
<xs:attribute default="1.0" name="DeltaPhi" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="1.0" name="InR" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="1.0" name="OutR" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="1.0" name="StartPhi" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="1.0" name="hz" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="tube_dimensions" substitutionGroup="Dimensions" type="TubeDimensionsType"/>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType abstract="false" name="ParameterisationAlgorithmType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Abstract base for parameterised placement strategies</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="ParameterisationAlgorithm" abstract="true" type="ParameterisationAlgorithmType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Abstract element for substitution group</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="PositionSizeParameterisationAlgorithmType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Parameterised volumes get created using
|
||||
the tabularized position and sizes. </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="ParameterisationAlgorithmType">
|
||||
<xs:sequence>
|
||||
<xs:element maxOccurs="unbounded" name="parameters" type="ParametersType"/>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="parameterised_position_size" substitutionGroup="ParameterisationAlgorithm" type="PositionSizeParameterisationAlgorithmType"/>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="ParameterisedPlacementType">
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:annotation>
|
||||
<xs:documentation>Base type for parameterised volumes</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="volumeref" type="ReferenceType"></xs:element>
|
||||
<xs:element ref="ParameterisationAlgorithm"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="ncopies" type="xs:positiveInteger" use="required"/>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="paramvol" type="ParameterisedPlacementType"/>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="ParametersType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Holds parameteres for parameterised volumes.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element type="positionType" name="position"/>
|
||||
<xs:element ref="Dimensions"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute type="xs:positiveInteger" use="required" name="number"/>
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0"?>
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:include schemaLocation="gdml_define.xsd"/>
|
||||
<xs:include schemaLocation="gdml_extensions.xsd"/>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType abstract="false" name="ReplicationAlgorithmType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Abstract base for replication placement strategies</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="ReplicationAlgorithm" abstract="true" type="ReplicationAlgorithmType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Abstract element for substitution group</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="AxisReplicationAlgorithmType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Replica volumes get created along the specified direction
|
||||
starting with the first replica placed at the given position and rotated
|
||||
according to the given rotation and others placed using the given distance;
|
||||
If position and/or rotation is omitted the defaults will be applied, e.g.
|
||||
position at the mother volume center and identity rotation;
|
||||
NOTE: THE ROTATION IS APPLIED TO ALL REPLICATED VOLUMES!</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="ReplicationAlgorithmType">
|
||||
<xs:sequence>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="position" type="positionType"/>
|
||||
<xs:element name="positionref" type="ReferenceType"/>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="rotation" type="rotationType"/>
|
||||
<xs:element name="rotationref" type="ReferenceType"/>
|
||||
</xs:choice>
|
||||
<xs:choice>
|
||||
<xs:element ref="direction"/>
|
||||
<xs:element name="directionref" type="ReferenceType"/>
|
||||
</xs:choice>
|
||||
<xs:element ref="width"/>
|
||||
<xs:element ref="offset"/>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="replicate_along_axis" substitutionGroup="ReplicationAlgorithm" type="AxisReplicationAlgorithmType"/>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="ReplicaPlacementType">
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:annotation>
|
||||
<xs:documentation>Base type for replicated volumes</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="volumeref" type="ReferenceType"></xs:element>
|
||||
<xs:element ref="ReplicationAlgorithm"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="number" type="xs:positiveInteger" use="required"/>
|
||||
<xs:attribute name="copy_num_start" type="xs:positiveInteger" use="optional" default="1"/>
|
||||
<xs:attribute name="copy_num_step" type="xs:positiveInteger" use="optional" default="1"/>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:complexType name="directionType">
|
||||
<xs:complexContent>
|
||||
<xs:restriction base="QuantityVectorType">
|
||||
<xs:attribute default="mm" type="xs:string" name="unit"/>
|
||||
<xs:attribute default="cartesian" type="xs:string" name="type"/>
|
||||
</xs:restriction>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
<xs:element name="direction" type="directionType"/>
|
||||
<xs:element name="width" type="QuantityType"/>
|
||||
<xs:element name="offset" type="QuantityType"/>
|
||||
<xs:element name="replicavol" type="ReplicaPlacementType"/>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,833 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE xs:schema>
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:include schemaLocation="gdml_core.xsd"></xs:include>
|
||||
<xs:include schemaLocation="gdml_define.xsd"></xs:include>
|
||||
<xs:include schemaLocation="gdml_extensions.xsd"/>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:complexType name="SolidType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Base solid type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute default="mm" name="lunit" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Length unit of all dimensions used for this instance of solid</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute default="radian" name="aunit" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Angle unit of angles used in definition of this solid</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:complexType name="BooleanSolidType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Base type for boolean solids</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:sequence>
|
||||
<xs:element name="first" type="ReferenceType"></xs:element>
|
||||
<xs:element name="second" type="ReferenceType"></xs:element>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="position" type="positionType"></xs:element>
|
||||
<xs:element name="positionref" type="ReferenceType"></xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="rotation" type="rotationType"></xs:element>
|
||||
<xs:element name="rotationref" type="ReferenceType"></xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="firstposition" type="positionType"></xs:element>
|
||||
<xs:element name="firstpositionref" type="ReferenceType"></xs:element>
|
||||
</xs:choice>
|
||||
<xs:choice minOccurs="0">
|
||||
<xs:element name="firstrotation" type="rotationType"></xs:element>
|
||||
<xs:element name="firstrotationref" type="ReferenceType"></xs:element>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="reflectedSolid" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Reflected solid:
|
||||
sx, sy, sz are scale components (containing reflection),
|
||||
rx, ry, rz are rotation angles around given axes and
|
||||
dx, dy, dz is the translation.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="solid" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute default="1.0" name="sx" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="1.0" name="sy" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="1.0" name="sz" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="rx" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="ry" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="rz" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="dx" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="dy" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="dz" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:complexType name="SurfacePropertyType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Base surface type</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
|
||||
<xs:attribute name="type" type="xs:string" default="dielectric_dielectric"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element abstract="true" name="Solid" type="SolidType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Abstract element for all solids substitution group</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element abstract="true" name="SurfaceProperty" type="SurfacePropertyType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Abstract element for surfaces substitution</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="solids">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Solids definitions block</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element minOccurs="0" name="define" type="defineType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Definitions of constants and expressions to be used for solids'
|
||||
dimensions and transformations
|
||||
In this version these become part of the global scope.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element maxOccurs="unbounded" ref="Solid"></xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="SurfaceProperty"></xs:element>
|
||||
<xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="union" substitutionGroup="Solid" type="BooleanSolidType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Exported boolean union of two solids</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="subtraction" substitutionGroup="Solid" type="BooleanSolidType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Exported boolean subtraction of two solids</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="intersection" substitutionGroup="Solid" type="BooleanSolidType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Exported boolean intersectioin of two solids</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="box" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG box solid described by 3 dimensions of x, y, and z</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="twistedbox" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG twisted box solid described by 4 dimensions of
|
||||
x length along x axis
|
||||
y length along y axis
|
||||
z length along z axis
|
||||
PhiTwist twist angle </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="twistedtrap" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>general twisted trapezoid. faces perpendicular to the z planes are trapezia, and their centres are
|
||||
not necessarily on a line paralell to the z axis.
|
||||
PhiTwist Twist Angle
|
||||
z length along the z-axis
|
||||
Theta Polar angle of the line joining the centres of the faces at -/+z
|
||||
Phi Azimuthal angle of the line joing the centre of the face at -z to the centre of the face at +z
|
||||
y1 length along y of the face at -z
|
||||
x1 length along x of the side at y=-y1 of the face at -z
|
||||
x2 length along x of the side at y=+y1 of the face at -z
|
||||
y2 length along y of the face at +z
|
||||
x3 length along x of the side at y=-y2 of the face at +z
|
||||
x4 length along x of the side at y=+y2 of the face at +z
|
||||
Alph Angle with respect to the y axis from the centre of the side </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="Theta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="Phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="x3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="x4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="Alph" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="twistedtrd" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>different length axis twistable trapezoid. faces perpendicular to the z planes are trapezia, and their centres are
|
||||
not necessarily on a line paralell to the z axis.
|
||||
PhiTwist Twist Angle
|
||||
z length along the z-axis
|
||||
y1 length along y of the face at -z
|
||||
x1 length along x of the side at y=-y1 of the face at -z
|
||||
x2 length along x of the side at y=+y1 of the face at -z
|
||||
y2 length along y of the face at +z </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="paraboloid" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG paraboloid defined by
|
||||
rlo radius at -dz
|
||||
rhi radius at +dz
|
||||
dz half z length
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="rlo" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="rhi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="dz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="sphere" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG sphere or spherical shell segment solid described by
|
||||
rmin inner radius
|
||||
rmax outer radius
|
||||
startphi starting angle of the segment in radians(0 <= phi <= 2*PI)
|
||||
deltaphi delta angle of the segment in radians
|
||||
starttheta starting angle of the segment in radians(0 <= theta <= PI)
|
||||
deltatheta delta angle of the segment in radians
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="starttheta" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute name="deltatheta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="ellipsoid" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG ellispoid or ellipsoidal shell segment solid described by
|
||||
ax x semiaxis
|
||||
by y semiaxis
|
||||
cz z semiaxis
|
||||
zcut1 bottom plane cutting ellipsoid
|
||||
zcut2 top plane cutting ellispoid
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="ax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="by" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="cz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute default="-1000000.0" name="zcut1" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="1000000.0" name="zcut2" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="tube" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG tube or tube segement solid described by
|
||||
rmin Inner radius
|
||||
rmax Outer radius
|
||||
z length in z
|
||||
startphi The starting phi angle in radians, adjusted such that
|
||||
(startphi+deltaphi <= 2PI, startphi > -2PI)
|
||||
deltaphi Delta angle of the segment in radians</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="twistedtubs" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG twisted tube segement solid described by
|
||||
twistedangle twist angle
|
||||
endinnerrad inside radius at end of segment
|
||||
endouterrad outside radius at end of segment
|
||||
zlen z length of segment
|
||||
phi phi angle of a segment </xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="twistedangle" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="endinnerrad" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="endouterrad" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="zlen" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="cutTube" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG cut tube or cut tube segment solid described by
|
||||
rmin Inner radius
|
||||
rmax Outer radius
|
||||
z length in z
|
||||
startphi The starting phi angle in radians, adjusted such that (startphi+deltaphi <= 2PI, startphi > -2PI)
|
||||
deltaphi Delta angle of the segment in radians
|
||||
lowX, lowY, lowZ Normal at lower Z plane
|
||||
highX, highY, highZ Normal at higher Z plane
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="lowX" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="lowY" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="lowZ" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="highX" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="highY" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="highZ" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="cone" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG cone or cone segment described by
|
||||
rmin1 inside radius at z/2
|
||||
rmin2 inside radius at z/2
|
||||
rmax1 outside radius at z/2
|
||||
rmax2 outside radius at z/2
|
||||
z length in z
|
||||
startphi starting angle of the segment in radians
|
||||
deltaphi delta angle of the segment in radians</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="rmin1" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="rmin2" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute name="rmax1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="rmax2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="polycone" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG polycone or polycone segment described by
|
||||
startphi starting angle of the segment in radians
|
||||
deltaphi delta angle of the segment in radians
|
||||
|
||||
and a set of z-planes each described by
|
||||
rmin inside radius at z/2
|
||||
rmax outside radius at z/2
|
||||
z length in z
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:sequence>
|
||||
<xs:element name="zplane" minOccurs="1" maxOccurs="unbounded" type="ZPlaneType"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- +++++++++++++ -->
|
||||
<xs:complexType name="ZPlaneType">
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
|
||||
<xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="para" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG parallelepiped solid is described by
|
||||
x, y, z length in x,y,z
|
||||
alpha Angle formed by the y axis and by the plane joining the centre of the faces
|
||||
G4Parallel to the z-x plane at -y and +y
|
||||
theta Polar angle of the line joining the centres of the faces at -z and +z in z
|
||||
phi Azimuthal angle of the line joining the centres of the faces at -z and +z in z</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="alpha" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="theta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="trd" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG trapezoid solid with varying x and y dimensions along z axis
|
||||
x1 Length along x at the surface positioned at -z
|
||||
x2 Length along x at the surface positioned at +z
|
||||
y1 Length along y at the surface positioned at -z
|
||||
y2 Length along y at the surface positioned at +z
|
||||
z Length along z axis</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="trap" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG general trapezoid solid is described by
|
||||
z Length along the z-axis
|
||||
theta Polar angle of the line joining the centres of the faces at -/+z
|
||||
phi Azimuthal angle of the line joing the centre of the face at -z to the centre of the face at +z
|
||||
y1 Length along y of the face at -z
|
||||
x1 Length along x of the side at y = -y1 of the face at -z
|
||||
x2 Length along x of the side at y = +y1 of the face at -z
|
||||
alp1 Angle with respect to the y axis from the centre of the side at y =- y1 to the centre at y = +y1 of the face at -z
|
||||
y2 Length along y of the face at +z
|
||||
x3 Length along x of the side at y = -y2 of the face at +z
|
||||
x4 Length along x of the side at y = +y2 of the face at +z
|
||||
alp2 Angle with respect to the y axis from the centre of the side at y = -y2 to the centre at y = +y2 of the face at +z</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="theta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="alpha1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="x3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="x4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="alpha2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="torus" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG torus solid is described by
|
||||
rmin Inside radius
|
||||
rmax Outside radius
|
||||
rtor swept radius of torus
|
||||
startphi The starting phi angle in radians adjusted such that sphi+dphi lt 2PI, sphi gt -2PI
|
||||
deltaphi Delta angle of the segment in radians
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="rmin" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="rtor" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="startphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="orb" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>CSG orb solid (simplified sphere with only rmax) is described by
|
||||
r Outside radius</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="r" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="polyhedra" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Polyhedra is described by
|
||||
startphi initial phi starting angle
|
||||
totalphi total phi angle
|
||||
numsides number sides
|
||||
and a set of zplanes.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:sequence>
|
||||
<xs:element name="zplane" minOccurs="1" maxOccurs="unbounded" type="ZPlaneType"/>
|
||||
</xs:sequence>
|
||||
|
||||
<xs:attribute name="startphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="numsides" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:complexType name="TwoDimVertexType">
|
||||
<xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:complexType>
|
||||
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:complexType name="SectionType">
|
||||
<xs:attribute name="zOrder" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="zPosition" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="xOffset" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="yOffset" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="scalingFactor" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="xtru" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Poligonal extrusion is described by
|
||||
an unbounded (min. 3) number of vertices of the blueprint polygon
|
||||
and an unbounded number of Z sections.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:sequence>
|
||||
<xs:sequence>
|
||||
<xs:element name="twoDimVertex" minOccurs="3" maxOccurs="unbounded" type="TwoDimVertexType"/>
|
||||
</xs:sequence>
|
||||
<xs:sequence>
|
||||
<xs:element name="section" minOccurs="2" maxOccurs="unbounded" type="SectionType"/>
|
||||
</xs:sequence>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="hype" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Tube with hyperbolic profile described by
|
||||
rmin innerRadius
|
||||
rmax outerRadius
|
||||
inst innerStereo
|
||||
outst outerStereo
|
||||
z z length
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="rmin" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="inst" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="outst" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="eltube" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Volume representing a tube with elliptical
|
||||
cross section.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="dx" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="dy" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="dz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="tet" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Volume representing a tetrahedron.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="vertex4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="arb8" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Volume representing an (almost)arbitrary 8 vertices solid.
|
||||
The solid is defined by two quadrilaterals sitting on parallel planes,
|
||||
the distance between these two planes is dz*2.
|
||||
The base quadrilateral contained within the plane located at -dz is defined by
|
||||
the first 4 vertices (v1,v2,v3,v4 each one with the x and y coordinates).
|
||||
The other parallel quadrilateral contained within the plane at +dz is defined by
|
||||
the other 4 vertices (v5,v6,v7,v8 each one with the x and y coordinates).
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:attribute name="v1x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v1y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v2x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v2y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v3x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v3y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v4x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v4y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v5x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v5y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v6x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v6y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v7x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v7y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v8x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="v8y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="dz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<!-- Tessellated solid elements -->
|
||||
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:complexType name="FacetType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Base facet type</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:complexType>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element abstract="true" name="Facet" type="FacetType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Abstract element for all facets substitution group</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="triangular" substitutionGroup="Facet">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Triangular facet.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="FacetType">
|
||||
<xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="type" type="xs:string" default="ABSOLUTE"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="quadrangular" substitutionGroup="Facet">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Quadrangular facet.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="FacetType">
|
||||
<xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="vertex4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
|
||||
<xs:attribute name="type" type="xs:string" default="ABSOLUTE"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="tessellated" substitutionGroup="Solid">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Tessellated solid
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SolidType">
|
||||
<xs:sequence>
|
||||
<xs:element name="Facet" minOccurs="1" maxOccurs="unbounded" type="FacetType"/>
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
<xs:element name="opticalsurface" substitutionGroup="SurfaceProperty">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Optical surface used by Geant4 optical processes</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:complexContent>
|
||||
<xs:extension base="SurfacePropertyType">
|
||||
<xs:attribute name="model" type="xs:string" default="glisur"></xs:attribute>
|
||||
<xs:attribute name="finish" type="xs:string" default="polished"></xs:attribute>
|
||||
<xs:attribute name="value" type="xs:string" default="1.0"></xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
||||
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,531 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<gdml xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="GDMLSchema/gdml.xsd" >
|
||||
<define>
|
||||
<rotation name="tube0xc18410invoxel0xc15240r" unit="degree" x="-90" y="-0" z="0" />
|
||||
<position name="cal0xc188b0inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="20" />
|
||||
<position name="cal0xc18820inAREA_LV0xc14980p" unit="mm" x="50" y="0" z="20" />
|
||||
<position name="cal0xc18790inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="20" />
|
||||
<position name="cal0xc18700inAREA_LV0xc14980p" unit="mm" x="-50" y="0" z="20" />
|
||||
<position name="cal0xc18670inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="20" />
|
||||
<position name="voxel0xc18140inAREA_LV0xc14980p" unit="mm" x="140" y="0" z="-50" />
|
||||
<position name="voxel0xc180b0inAREA_LV0xc14980p" unit="mm" x="120" y="0" z="-50" />
|
||||
<position name="voxel0xc18020inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="-50" />
|
||||
<position name="voxel0xc17f90inAREA_LV0xc14980p" unit="mm" x="80" y="0" z="-50" />
|
||||
<position name="voxel0xc17f00inAREA_LV0xc14980p" unit="mm" x="60" y="0" z="-50" />
|
||||
<position name="voxel0xc17e70inAREA_LV0xc14980p" unit="mm" x="40" y="0" z="-50" />
|
||||
<position name="voxel0xc168c0inAREA_LV0xc14980p" unit="mm" x="20" y="0" z="-50" />
|
||||
<position name="voxel0xc16830inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="-50" />
|
||||
<position name="voxel0xc167a0inAREA_LV0xc14980p" unit="mm" x="-20" y="0" z="-50" />
|
||||
<position name="voxel0xc16710inAREA_LV0xc14980p" unit="mm" x="-40" y="0" z="-50" />
|
||||
<position name="voxel0xc179d0inAREA_LV0xc14980p" unit="mm" x="-60" y="0" z="-50" />
|
||||
<position name="voxel0xc17940inAREA_LV0xc14980p" unit="mm" x="-80" y="0" z="-50" />
|
||||
<position name="voxel0xc178b0inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="-50" />
|
||||
<position name="voxel0xc17820inAREA_LV0xc14980p" unit="mm" x="-120" y="0" z="-50" />
|
||||
<position name="voxel0xc17790inAREA_LV0xc14980p" unit="mm" x="-140" y="0" z="-50" />
|
||||
<position name="voxel0xc17700inAREA_LV0xc14980p" unit="mm" x="140" y="0" z="-70" />
|
||||
<position name="voxel0xc17670inAREA_LV0xc14980p" unit="mm" x="120" y="0" z="-70" />
|
||||
<position name="voxel0xc175e0inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="-70" />
|
||||
<position name="voxel0xc17550inAREA_LV0xc14980p" unit="mm" x="80" y="0" z="-70" />
|
||||
<position name="voxel0xc174c0inAREA_LV0xc14980p" unit="mm" x="60" y="0" z="-70" />
|
||||
<position name="voxel0xc17430inAREA_LV0xc14980p" unit="mm" x="40" y="0" z="-70" />
|
||||
<position name="voxel0xc173a0inAREA_LV0xc14980p" unit="mm" x="20" y="0" z="-70" />
|
||||
<position name="voxel0xc17310inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="-70" />
|
||||
<position name="voxel0xc17280inAREA_LV0xc14980p" unit="mm" x="-20" y="0" z="-70" />
|
||||
<position name="voxel0xc171f0inAREA_LV0xc14980p" unit="mm" x="-40" y="0" z="-70" />
|
||||
<position name="voxel0xc17160inAREA_LV0xc14980p" unit="mm" x="-60" y="0" z="-70" />
|
||||
<position name="voxel0xc170d0inAREA_LV0xc14980p" unit="mm" x="-80" y="0" z="-70" />
|
||||
<position name="voxel0xc17040inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="-70" />
|
||||
<position name="voxel0xc16fb0inAREA_LV0xc14980p" unit="mm" x="-120" y="0" z="-70" />
|
||||
<position name="voxel0xc16f20inAREA_LV0xc14980p" unit="mm" x="-140" y="0" z="-70" />
|
||||
<position name="voxel0xc16e90inAREA_LV0xc14980p" unit="mm" x="140" y="0" z="-90" />
|
||||
<position name="voxel0xc16e00inAREA_LV0xc14980p" unit="mm" x="120" y="0" z="-90" />
|
||||
<position name="voxel0xc16d70inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="-90" />
|
||||
<position name="voxel0xc16ce0inAREA_LV0xc14980p" unit="mm" x="80" y="0" z="-90" />
|
||||
<position name="voxel0xc16c50inAREA_LV0xc14980p" unit="mm" x="60" y="0" z="-90" />
|
||||
<position name="voxel0xc16bc0inAREA_LV0xc14980p" unit="mm" x="40" y="0" z="-90" />
|
||||
<position name="voxel0xc16b30inAREA_LV0xc14980p" unit="mm" x="20" y="0" z="-90" />
|
||||
<position name="voxel0xc16aa0inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="-90" />
|
||||
<position name="voxel0xc16a10inAREA_LV0xc14980p" unit="mm" x="-20" y="0" z="-90" />
|
||||
<position name="voxel0xc16980inAREA_LV0xc14980p" unit="mm" x="-40" y="0" z="-90" />
|
||||
<position name="voxel0xc16920inAREA_LV0xc14980p" unit="mm" x="-60" y="0" z="-90" />
|
||||
<position name="voxel0xc15dc0inAREA_LV0xc14980p" unit="mm" x="-80" y="0" z="-90" />
|
||||
<position name="voxel0xc166b0inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="-90" />
|
||||
<position name="voxel0xc16620inAREA_LV0xc14980p" unit="mm" x="-120" y="0" z="-90" />
|
||||
<position name="voxel0xc16590inAREA_LV0xc14980p" unit="mm" x="-140" y="0" z="-90" />
|
||||
<position name="voxel0xc16500inAREA_LV0xc14980p" unit="mm" x="140" y="0" z="-110" />
|
||||
<position name="voxel0xc16470inAREA_LV0xc14980p" unit="mm" x="120" y="0" z="-110" />
|
||||
<position name="voxel0xc163e0inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="-110" />
|
||||
<position name="voxel0xc16350inAREA_LV0xc14980p" unit="mm" x="80" y="0" z="-110" />
|
||||
<position name="voxel0xc162c0inAREA_LV0xc14980p" unit="mm" x="60" y="0" z="-110" />
|
||||
<position name="voxel0xc16230inAREA_LV0xc14980p" unit="mm" x="40" y="0" z="-110" />
|
||||
<position name="voxel0xc161a0inAREA_LV0xc14980p" unit="mm" x="20" y="0" z="-110" />
|
||||
<position name="voxel0xc16110inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="-110" />
|
||||
<position name="voxel0xc16080inAREA_LV0xc14980p" unit="mm" x="-20" y="0" z="-110" />
|
||||
<position name="voxel0xc15ff0inAREA_LV0xc14980p" unit="mm" x="-40" y="0" z="-110" />
|
||||
<position name="voxel0xc15f60inAREA_LV0xc14980p" unit="mm" x="-60" y="0" z="-110" />
|
||||
<position name="voxel0xc15ed0inAREA_LV0xc14980p" unit="mm" x="-80" y="0" z="-110" />
|
||||
<position name="voxel0xc158b0inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="-110" />
|
||||
<position name="voxel0xc15d30inAREA_LV0xc14980p" unit="mm" x="-120" y="0" z="-110" />
|
||||
<position name="voxel0xc15ca0inAREA_LV0xc14980p" unit="mm" x="-140" y="0" z="-110" />
|
||||
<position name="voxel0xc15c10inAREA_LV0xc14980p" unit="mm" x="140" y="0" z="-130" />
|
||||
<position name="voxel0xc15b80inAREA_LV0xc14980p" unit="mm" x="120" y="0" z="-130" />
|
||||
<position name="voxel0xc15af0inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="-130" />
|
||||
<position name="voxel0xc15a60inAREA_LV0xc14980p" unit="mm" x="80" y="0" z="-130" />
|
||||
<position name="voxel0xc159d0inAREA_LV0xc14980p" unit="mm" x="60" y="0" z="-130" />
|
||||
<position name="voxel0xc15940inAREA_LV0xc14980p" unit="mm" x="40" y="0" z="-130" />
|
||||
<position name="voxel0xc15820inAREA_LV0xc14980p" unit="mm" x="20" y="0" z="-130" />
|
||||
<position name="voxel0xc15790inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="-130" />
|
||||
<position name="voxel0xc15700inAREA_LV0xc14980p" unit="mm" x="-20" y="0" z="-130" />
|
||||
<position name="voxel0xc15670inAREA_LV0xc14980p" unit="mm" x="-40" y="0" z="-130" />
|
||||
<position name="voxel0xc15610inAREA_LV0xc14980p" unit="mm" x="-60" y="0" z="-130" />
|
||||
<position name="voxel0xc15580inAREA_LV0xc14980p" unit="mm" x="-80" y="0" z="-130" />
|
||||
<position name="voxel0xc154c0inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="-130" />
|
||||
<position name="voxel0xc15430inAREA_LV0xc14980p" unit="mm" x="-120" y="0" z="-130" />
|
||||
<position name="voxel0xc15380inAREA_LV0xc14980p" unit="mm" x="-140" y="0" z="-130" />
|
||||
</define>
|
||||
<materials>
|
||||
<element Z="7" formula="N" name="Nitrogen0xc03430" >
|
||||
<atom value="14.0067" />
|
||||
</element>
|
||||
<element Z="8" formula="O" name="Oxygen0xc03600" >
|
||||
<atom value="15.9994" />
|
||||
</element>
|
||||
<material formula=" " name="Vacuum0xc041f0" >
|
||||
<D value="1e-25" />
|
||||
<fraction n="0.7" ref="Nitrogen0xc03430" />
|
||||
<fraction n="0.3" ref="Oxygen0xc03600" />
|
||||
</material>
|
||||
<element Z="18" formula="Ar" name="Argon0xc03b70" >
|
||||
<atom value="39.948" />
|
||||
</element>
|
||||
<material formula=" " name="Air0xc04770" >
|
||||
<D value="0.0012929" />
|
||||
<fraction n="0.755078" ref="Nitrogen0xc03430" />
|
||||
<fraction n="0.232116" ref="Oxygen0xc03600" />
|
||||
<fraction n="0.0128064" ref="Argon0xc03b70" />
|
||||
</material>
|
||||
<material Z="18" formula=" " name="ArgonGas0xc051f0" >
|
||||
<D value="0.00166042" />
|
||||
<atom value="39.948" />
|
||||
</material>
|
||||
<element Z="6" formula="C" name="Carbon0xc032a0" >
|
||||
<atom value="12.011" />
|
||||
</element>
|
||||
<element Z="1" formula="H" name="Hydrogen0x950310" >
|
||||
<atom value="1.00794" />
|
||||
</element>
|
||||
<material formula=" " name="Ethane0xc060e0" >
|
||||
<D value="0.00126349" />
|
||||
<fraction n="0.798879" ref="Carbon0xc032a0" />
|
||||
<fraction n="0.201121" ref="Hydrogen0x950310" />
|
||||
</material>
|
||||
<element Z="18" formula=" " name="ArgonGas0xc05a70" >
|
||||
<atom value="39.948" />
|
||||
</element>
|
||||
<material formula=" " name="ArEthane0xc063b0" >
|
||||
<D value="0.00146196" />
|
||||
<fraction n="0.567878" ref="ArgonGas0xc05a70" />
|
||||
<fraction n="0.345213" ref="Carbon0xc032a0" />
|
||||
<fraction n="0.0869089" ref="Hydrogen0x950310" />
|
||||
</material>
|
||||
<material Z="14" formula=" " name="SiliconWafer0xc06e40" >
|
||||
<D value="2.33" />
|
||||
<atom value="28.0855" />
|
||||
</material>
|
||||
<material Z="13" formula=" " name="Al0xc07d10" >
|
||||
<D value="2.7" />
|
||||
<atom value="26.98" />
|
||||
</material>
|
||||
<material Z="26" formula=" " name="Iron0xc08580" >
|
||||
<D value="7.87" />
|
||||
<atom value="55.847" />
|
||||
</material>
|
||||
<material Z="82" formula=" " name="Lead0xc08ce0" >
|
||||
<D value="11.35" />
|
||||
<atom value="207.2" />
|
||||
</material>
|
||||
<material formula=" " name="Scinti0xc097f0" >
|
||||
<D value="1.032" />
|
||||
<fraction n="0.922579" ref="Carbon0xc032a0" />
|
||||
<fraction n="0.077421" ref="Hydrogen0x950310" />
|
||||
</material>
|
||||
<element Z="14" formula="Si" name="Silicon0xc039a0" >
|
||||
<atom value="28.0855" />
|
||||
</element>
|
||||
<material formula=" " name="Quartz0xc09a30" >
|
||||
<D value="2.64" />
|
||||
<fraction n="0.467435" ref="Silicon0xc039a0" />
|
||||
<fraction n="0.532565" ref="Oxygen0xc03600" />
|
||||
</material>
|
||||
<element Z="11" formula="Na" name="Sodium0xc037c0" >
|
||||
<atom value="22.9898" />
|
||||
</element>
|
||||
<element Z="53" formula="I" name="Iodine0xc03d40" >
|
||||
<atom value="126.904" />
|
||||
</element>
|
||||
<material formula=" " name="NaI0xc0a290" >
|
||||
<D value="3.67" />
|
||||
<fraction n="0.153373" ref="Sodium0xc037c0" />
|
||||
<fraction n="0.846627" ref="Iodine0xc03d40" />
|
||||
</material>
|
||||
<element Z="55" formula="Cs" name="Cesium0xc03f60" >
|
||||
<atom value="132.905" />
|
||||
</element>
|
||||
<material formula=" " name="CsI0xc0aab0" >
|
||||
<D value="4.51" />
|
||||
<fraction n="0.511549" ref="Cesium0xc03f60" />
|
||||
<fraction n="0.488451" ref="Iodine0xc03d40" />
|
||||
</material>
|
||||
</materials>
|
||||
<solids>
|
||||
<box aunit="radian" lunit="mm" name="AREA0xc145c0" x="300" y="300" z="300" />
|
||||
<box aunit="radian" lunit="mm" name="voxel0xc151b0" x="20" y="200" z="20" />
|
||||
<tube aunit="degree" deltaphi="360" lunit="mm" name="tube0xc181d0" rmax="9.5" rmin="0" startphi="0" z="200" />
|
||||
<box aunit="radian" lunit="mm" name="cal0xc184a0" x="50" y="50" z="60" />
|
||||
</solids>
|
||||
<structure>
|
||||
<volume name="tube0xc18280" >
|
||||
<materialref ref="Al0xc07d10" />
|
||||
<solidref ref="tube0xc181d0" />
|
||||
</volume>
|
||||
<volume name="voxel0xc15240" >
|
||||
<materialref ref="Vacuum0xc041f0" />
|
||||
<solidref ref="voxel0xc151b0" />
|
||||
<physvol>
|
||||
<volumeref ref="tube0xc18280" />
|
||||
<rotationref ref="tube0xc18410invoxel0xc15240r" />
|
||||
</physvol>
|
||||
</volume>
|
||||
<volume name="cal0xc18530" >
|
||||
<materialref ref="CsI0xc0aab0" />
|
||||
<solidref ref="cal0xc184a0" />
|
||||
</volume>
|
||||
<volume name="AREA_LV0xc14980" >
|
||||
<materialref ref="Vacuum0xc041f0" />
|
||||
<solidref ref="AREA0xc145c0" />
|
||||
<physvol>
|
||||
<volumeref ref="cal0xc18530" />
|
||||
<positionref ref="cal0xc188b0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="cal0xc18530" />
|
||||
<positionref ref="cal0xc18820inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="cal0xc18530" />
|
||||
<positionref ref="cal0xc18790inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="cal0xc18530" />
|
||||
<positionref ref="cal0xc18700inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="cal0xc18530" />
|
||||
<positionref ref="cal0xc18670inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc18140inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc180b0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc18020inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17f90inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17f00inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17e70inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc168c0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16830inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc167a0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16710inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc179d0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17940inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc178b0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17820inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17790inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17700inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17670inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc175e0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17550inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc174c0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17430inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc173a0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17310inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17280inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc171f0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17160inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc170d0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17040inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16fb0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16f20inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16e90inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16e00inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16d70inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16ce0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16c50inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16bc0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16b30inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16aa0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16a10inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16980inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16920inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15dc0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc166b0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16620inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16590inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16500inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16470inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc163e0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16350inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc162c0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16230inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc161a0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16110inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16080inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15ff0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15f60inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15ed0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc158b0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15d30inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15ca0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15c10inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15b80inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15af0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15a60inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc159d0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15940inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15820inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15790inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15700inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15670inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15610inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15580inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc154c0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15430inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15380inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
</volume>
|
||||
</structure>
|
||||
<setup name="Default" version="1.0" >
|
||||
<world ref="AREA_LV0xc14980" />
|
||||
</setup>
|
||||
</gdml>
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/python
|
||||
# ==================================================================
|
||||
# An example for reading a GDML file
|
||||
#
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
from Geant4.G4g4gdml import *
|
||||
|
||||
import ExN01pl, ParticleGun
|
||||
|
||||
# ==================================================================
|
||||
# user actions in python
|
||||
# ==================================================================
|
||||
class MyDetectorConstruction(G4VUserDetectorConstruction):
|
||||
"My Detector Construction"
|
||||
|
||||
def __init__(self):
|
||||
G4VUserDetectorConstruction.__init__(self)
|
||||
self.world= None
|
||||
self.gdml_parser= G4GDMLParser()
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
def Construct(self):
|
||||
self.gdml_parser.Read("qgeom.gdml")
|
||||
self.world= self.gdml_parser.GetWorldVolume()
|
||||
|
||||
return self.world
|
||||
|
||||
|
||||
# ==================================================================
|
||||
# main
|
||||
# ==================================================================
|
||||
# set geometry
|
||||
myDC= MyDetectorConstruction()
|
||||
gRunManager.SetUserInitialization(myDC)
|
||||
|
||||
# minimal physics list
|
||||
ExN01pl.Construct()
|
||||
|
||||
# set primary generator action
|
||||
ParticleGun.Construct()
|
||||
|
||||
# initialize
|
||||
gRunManager.Initialize()
|
||||
|
||||
# visualization
|
||||
gApplyUICommand("/vis/open OGLIX")
|
||||
gApplyUICommand("/vis/scene/create")
|
||||
gApplyUICommand("/vis/scene/add/volume")
|
||||
gApplyUICommand("/vis/sceneHandler/attach")
|
||||
gApplyUICommand("/vis/viewer/set/viewpointThetaPhi 90. -90.")
|
||||
|
||||
Executable
+64
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/python
|
||||
# ==================================================================
|
||||
# An example for reading a GDML file
|
||||
#
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
from Geant4.G4gdml import *
|
||||
|
||||
import ExN01pl, ParticleGun
|
||||
|
||||
# ==================================================================
|
||||
# user actions in python
|
||||
# ==================================================================
|
||||
class MyDetectorConstruction(G4VUserDetectorConstruction):
|
||||
"My Detector Construction"
|
||||
|
||||
def __init__(self):
|
||||
G4VUserDetectorConstruction.__init__(self)
|
||||
self.world= None
|
||||
self.sxp= SAXProcessor()
|
||||
self.config= ProcessingConfigurator()
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
def __del__(self):
|
||||
self.sxp.Finalize()
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
def Construct(self):
|
||||
self.sxp.Initialize()
|
||||
|
||||
self.config.SetURI("qgeom.gdml")
|
||||
self.config.SetSetupName("Default")
|
||||
|
||||
self.sxp.Configure(self.config)
|
||||
self.sxp.Run()
|
||||
|
||||
self.world= GDMLProcessor.GetInstance().GetWorldVolume()
|
||||
|
||||
return self.world
|
||||
|
||||
|
||||
# ==================================================================
|
||||
# main
|
||||
# ==================================================================
|
||||
# set geometry
|
||||
myDC= MyDetectorConstruction()
|
||||
gRunManager.SetUserInitialization(myDC)
|
||||
|
||||
# minimal physics list
|
||||
ExN01pl.Construct()
|
||||
|
||||
# set primary generator action
|
||||
ParticleGun.Construct()
|
||||
|
||||
# initialize
|
||||
gRunManager.Initialize()
|
||||
|
||||
# visualization
|
||||
gApplyUICommand("/vis/open OGLIX")
|
||||
gApplyUICommand("/vis/scene/create")
|
||||
gApplyUICommand("/vis/scene/add/volume")
|
||||
gApplyUICommand("/vis/sceneHandler/attach")
|
||||
gApplyUICommand("/vis/viewer/set/viewpointThetaPhi 90. -90.")
|
||||
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/python
|
||||
# ==================================================================
|
||||
# An example of writing a GDML file
|
||||
#
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
from Geant4.G4gdml import *
|
||||
|
||||
import Qmaterials, Qgeom
|
||||
import ExN01pl, ParticleGun
|
||||
|
||||
# ==================================================================
|
||||
# main
|
||||
# ==================================================================
|
||||
# set geometry
|
||||
Qmaterials.Construct()
|
||||
Qgeom.Construct()
|
||||
|
||||
# minimal physics list
|
||||
ExN01pl.Construct()
|
||||
|
||||
# set primary generator action
|
||||
ParticleGun.Construct()
|
||||
|
||||
# initialize
|
||||
gRunManager.Initialize()
|
||||
|
||||
# visualization
|
||||
gApplyUICommand("/vis/open OGLIX")
|
||||
gApplyUICommand("/vis/scene/create")
|
||||
gApplyUICommand("/vis/scene/add/volume")
|
||||
gApplyUICommand("/vis/sceneHandler/attach")
|
||||
gApplyUICommand("/vis/viewer/set/viewpointThetaPhi 90. -90.")
|
||||
|
||||
# write to a GDML file
|
||||
print "\n*** write to a GDML file..."
|
||||
navigator= gTransportationManager.GetNavigatorForTracking()
|
||||
world_volume= navigator.GetWorldVolume()
|
||||
gdml_writer= G4GDMLWriter("GDMLSchema/gdml.xsd", "qgeom.gdml")
|
||||
gdml_writer.DumpGeometryInfo(world_volume)
|
||||
|
||||
Reference in New Issue
Block a user