source: trunk/environments/g4py/examples/gdml/GDMLSchema/gdml_solids.xsd

Last change on this file was 1337, checked in by garnier, 14 years ago

tag geant4.9.4 beta 1 + modifs locales

File size: 38.8 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE xs:schema>
3<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">
4  <xs:include schemaLocation="gdml_core.xsd"></xs:include>
5  <xs:include schemaLocation="gdml_define.xsd"></xs:include>
6  <xs:include schemaLocation="gdml_extensions.xsd"/>
7  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
8 
9  <xs:complexType name="SolidType">
10    <xs:annotation>
11      <xs:documentation>Base solid type</xs:documentation>
12    </xs:annotation>
13    <xs:attribute default="mm" name="lunit" type="xs:string">
14      <xs:annotation>
15        <xs:documentation>Length unit of all dimensions used for this instance of solid</xs:documentation>
16      </xs:annotation>
17    </xs:attribute>
18    <xs:attribute default="radian" name="aunit" type="xs:string">
19      <xs:annotation>
20        <xs:documentation>Angle unit of angles used in definition of this solid</xs:documentation>
21      </xs:annotation>
22    </xs:attribute>
23    <xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
24  </xs:complexType>
25  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
26 
27  <xs:complexType name="BooleanSolidType">
28    <xs:annotation>
29      <xs:documentation>Base type for boolean solids</xs:documentation>
30    </xs:annotation>
31    <xs:complexContent>
32      <xs:extension base="SolidType">
33        <xs:sequence>
34          <xs:element name="first" type="ReferenceType"></xs:element>
35          <xs:element name="second" type="ReferenceType"></xs:element>
36          <xs:choice minOccurs="0">
37            <xs:element name="position" type="positionType"></xs:element>
38            <xs:element name="positionref" type="ReferenceType"></xs:element>
39          </xs:choice>
40          <xs:choice minOccurs="0">
41            <xs:element name="rotation" type="rotationType"></xs:element>
42            <xs:element name="rotationref" type="ReferenceType"></xs:element>
43          </xs:choice>
44          <xs:choice minOccurs="0">
45            <xs:element name="firstposition" type="positionType"></xs:element>
46            <xs:element name="firstpositionref" type="ReferenceType"></xs:element>
47          </xs:choice>
48          <xs:choice minOccurs="0">
49            <xs:element name="firstrotation" type="rotationType"></xs:element>
50            <xs:element name="firstrotationref" type="ReferenceType"></xs:element>
51          </xs:choice>
52        </xs:sequence>
53      </xs:extension>
54    </xs:complexContent>
55  </xs:complexType>
56  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
57
58  <xs:element name="reflectedSolid" substitutionGroup="Solid">
59    <xs:annotation>
60      <xs:documentation>Reflected solid:
61        sx, sy, sz are scale components (containing reflection),
62        rx, ry, rz are rotation angles around given axes and
63        dx, dy, dz is the translation.
64      </xs:documentation>
65    </xs:annotation>
66    <xs:complexType>
67      <xs:complexContent>
68        <xs:extension base="SolidType">
69          <xs:attribute name="solid" type="ExpressionOrIDREFType" use="required"></xs:attribute>
70          <xs:attribute default="1.0" name="sx" type="ExpressionOrIDREFType"></xs:attribute>
71          <xs:attribute default="1.0" name="sy" type="ExpressionOrIDREFType"></xs:attribute>
72          <xs:attribute default="1.0" name="sz" type="ExpressionOrIDREFType"></xs:attribute>
73          <xs:attribute default="0.0" name="rx" type="ExpressionOrIDREFType"></xs:attribute>
74          <xs:attribute default="0.0" name="ry" type="ExpressionOrIDREFType"></xs:attribute>
75          <xs:attribute default="0.0" name="rz" type="ExpressionOrIDREFType"></xs:attribute>
76          <xs:attribute default="0.0" name="dx" type="ExpressionOrIDREFType"></xs:attribute>
77          <xs:attribute default="0.0" name="dy" type="ExpressionOrIDREFType"></xs:attribute>
78          <xs:attribute default="0.0" name="dz" type="ExpressionOrIDREFType"></xs:attribute>
79        </xs:extension>
80      </xs:complexContent>
81    </xs:complexType>
82  </xs:element>
83  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
84
85  <xs:complexType name="SurfacePropertyType">
86    <xs:annotation>
87      <xs:documentation>Base surface type</xs:documentation>
88    </xs:annotation>
89    <xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
90    <xs:attribute name="type" type="xs:string" default="dielectric_dielectric"></xs:attribute>
91  </xs:complexType>
92  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
93 
94  <xs:element abstract="true" name="Solid" type="SolidType">
95    <xs:annotation>
96      <xs:documentation>Abstract element for all solids substitution group</xs:documentation>
97    </xs:annotation>
98  </xs:element>
99  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
100 
101  <xs:element abstract="true" name="SurfaceProperty" type="SurfacePropertyType">
102    <xs:annotation>
103      <xs:documentation>Abstract element for surfaces substitution</xs:documentation>
104    </xs:annotation>
105  </xs:element>
106  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
107 
108  <xs:element name="solids">
109    <xs:annotation>
110      <xs:documentation>Solids definitions block</xs:documentation>
111    </xs:annotation>
112    <xs:complexType>
113      <xs:choice maxOccurs="unbounded">
114        <xs:element minOccurs="0" name="define" type="defineType">
115          <xs:annotation>
116            <xs:documentation>Definitions of constants and expressions to be used for solids'
117              dimensions and transformations
118              In this version these become part of the global scope.</xs:documentation>
119          </xs:annotation>
120        </xs:element>
121        <xs:element maxOccurs="unbounded" ref="Solid"></xs:element>
122        <xs:element minOccurs="0" maxOccurs="unbounded" ref="SurfaceProperty"></xs:element>
123        <xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>   
124      </xs:choice>
125    </xs:complexType>
126  </xs:element>
127  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
128 
129  <xs:element name="union" substitutionGroup="Solid" type="BooleanSolidType">
130    <xs:annotation>
131      <xs:documentation>Exported boolean union of two solids</xs:documentation>
132    </xs:annotation>
133  </xs:element>
134  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
135 
136  <xs:element name="subtraction" substitutionGroup="Solid" type="BooleanSolidType">
137    <xs:annotation>
138      <xs:documentation>Exported boolean subtraction of two solids</xs:documentation>
139    </xs:annotation>
140  </xs:element>
141  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
142 
143  <xs:element name="intersection" substitutionGroup="Solid" type="BooleanSolidType">
144    <xs:annotation>
145      <xs:documentation>Exported boolean intersectioin of two solids</xs:documentation>
146    </xs:annotation>
147  </xs:element>
148  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
149 
150  <xs:element name="box" substitutionGroup="Solid">
151    <xs:annotation>
152      <xs:documentation>CSG box solid described by 3 dimensions of x, y, and z</xs:documentation>
153    </xs:annotation>
154    <xs:complexType>
155      <xs:complexContent>
156        <xs:extension base="SolidType">
157          <xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
158          <xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
159          <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
160        </xs:extension>
161      </xs:complexContent>
162    </xs:complexType>
163  </xs:element>
164<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
165
166  <xs:element name="twistedbox" substitutionGroup="Solid">
167    <xs:annotation>
168      <xs:documentation>CSG twisted box solid described by 4 dimensions of
169        x  length along x axis
170        y  length along y axis
171        z  length along z axis
172        PhiTwist twist angle </xs:documentation>
173    </xs:annotation>
174    <xs:complexType>
175      <xs:complexContent>
176        <xs:extension base="SolidType">
177          <xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
178          <xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
179          <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
180          <xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
181        </xs:extension>
182      </xs:complexContent>
183    </xs:complexType>
184  </xs:element>
185  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
186
187  <xs:element name="twistedtrap" substitutionGroup="Solid">
188    <xs:annotation>
189      <xs:documentation>general twisted trapezoid. faces perpendicular to the z planes are trapezia, and their centres are
190                        not necessarily on a line paralell to the z axis.
191        PhiTwist Twist Angle
192        z     length along the z-axis
193        Theta  Polar angle of the line joining the centres of the faces at -/+z
194        Phi    Azimuthal angle of the line joing the centre of the face at -z to the centre of the face at +z
195        y1    length along y of the face at -z
196        x1    length along x of the side at y=-y1 of the face at -z
197        x2    length along x of the side at y=+y1 of the face at -z
198        y2    length along y of the face at +z
199        x3    length along x of the side at y=-y2 of the face at +z
200        x4    length along x of the side at y=+y2 of the face at +z
201        Alph   Angle with respect to the y axis from the centre of the side </xs:documentation>
202    </xs:annotation>
203    <xs:complexType>
204      <xs:complexContent>
205        <xs:extension base="SolidType">
206          <xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
207          <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
208          <xs:attribute name="Theta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
209          <xs:attribute name="Phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
210          <xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
211          <xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
212          <xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
213          <xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
214          <xs:attribute name="x3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
215          <xs:attribute name="x4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
216          <xs:attribute name="Alph" type="ExpressionOrIDREFType" use="required"></xs:attribute>
217        </xs:extension>
218      </xs:complexContent>
219    </xs:complexType>
220  </xs:element>
221  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
222
223  <xs:element name="twistedtrd" substitutionGroup="Solid">
224    <xs:annotation>
225      <xs:documentation>different length axis twistable trapezoid. faces perpendicular to the z planes are trapezia, and their centres are
226                        not necessarily on a line paralell to the z axis.
227        PhiTwist Twist Angle
228        z     length along the z-axis
229        y1    length along y of the face at -z
230        x1    length along x of the side at y=-y1 of the face at -z
231        x2    length along x of the side at y=+y1 of the face at -z
232        y2    length along y of the face at +z </xs:documentation>
233    </xs:annotation>
234    <xs:complexType>
235      <xs:complexContent>
236        <xs:extension base="SolidType">
237          <xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
238          <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
239          <xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
240          <xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
241          <xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
242          <xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
243        </xs:extension>
244      </xs:complexContent>
245    </xs:complexType>
246  </xs:element>
247  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
248 
249  <xs:element name="paraboloid" substitutionGroup="Solid">
250    <xs:annotation>
251      <xs:documentation>CSG paraboloid defined by
252       rlo         radius at -dz
253       rhi         radius at +dz
254       dz          half z length
255      </xs:documentation>
256    </xs:annotation>
257    <xs:complexType>
258      <xs:complexContent>
259        <xs:extension base="SolidType">
260          <xs:attribute name="rlo" type="ExpressionOrIDREFType" use="required"></xs:attribute>
261          <xs:attribute name="rhi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
262          <xs:attribute name="dz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
263        </xs:extension>
264      </xs:complexContent>
265    </xs:complexType>
266  </xs:element>
267  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
268
269  <xs:element name="sphere" substitutionGroup="Solid">
270    <xs:annotation>
271      <xs:documentation>CSG sphere or spherical shell segment solid described by
272        rmin        inner radius
273        rmax        outer radius
274        startphi    starting angle of the segment in radians(0 &lt;= phi &lt;= 2*PI)
275        deltaphi    delta angle of the segment in radians
276        starttheta  starting angle of the segment in radians(0 &lt;= theta &lt;= PI)
277        deltatheta  delta angle of the segment in radians
278      </xs:documentation>
279    </xs:annotation>
280    <xs:complexType>
281      <xs:complexContent>
282        <xs:extension base="SolidType">
283          <xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
284          <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
285          <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
286          <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
287          <xs:attribute default="0.0" name="starttheta" type="ExpressionOrIDREFType"></xs:attribute>
288          <xs:attribute name="deltatheta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
289        </xs:extension>
290      </xs:complexContent>
291    </xs:complexType>
292  </xs:element>
293  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
294
295  <xs:element name="ellipsoid" substitutionGroup="Solid">
296    <xs:annotation>
297      <xs:documentation>CSG ellispoid or ellipsoidal shell segment solid described by
298        ax         x semiaxis
299        by         y semiaxis
300        cz         z semiaxis
301        zcut1      bottom plane cutting ellipsoid
302        zcut2      top plane cutting ellispoid
303      </xs:documentation>
304    </xs:annotation>
305    <xs:complexType>
306      <xs:complexContent>
307        <xs:extension base="SolidType">
308          <xs:attribute name="ax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
309          <xs:attribute name="by" type="ExpressionOrIDREFType" use="required"></xs:attribute>
310          <xs:attribute name="cz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
311          <xs:attribute default="-1000000.0" name="zcut1" type="ExpressionOrIDREFType"></xs:attribute>
312          <xs:attribute default="1000000.0" name="zcut2" type="ExpressionOrIDREFType"></xs:attribute>
313        </xs:extension>
314      </xs:complexContent>
315    </xs:complexType>
316  </xs:element>
317  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
318
319  <xs:element name="tube" substitutionGroup="Solid">
320    <xs:annotation>
321      <xs:documentation>CSG tube or tube segement solid described by
322        rmin      Inner radius
323        rmax      Outer radius
324        z         length in z
325        startphi  The starting phi angle in radians, adjusted such that
326        (startphi+deltaphi &lt;= 2PI, startphi &gt; -2PI)
327        deltaphi  Delta angle of the segment in radians</xs:documentation>
328    </xs:annotation>
329    <xs:complexType>
330      <xs:complexContent>
331        <xs:extension base="SolidType">
332          <xs:attribute name="z" type="ExpressionOrIDREFType"></xs:attribute>
333          <xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
334          <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
335          <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
336          <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
337        </xs:extension>
338      </xs:complexContent>
339    </xs:complexType>
340  </xs:element>
341 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
342
343  <xs:element name="twistedtubs" substitutionGroup="Solid">
344    <xs:annotation>
345      <xs:documentation>CSG twisted tube segement solid described by
346        twistedangle    twist angle
347        endinnerrad     inside radius at end of segment
348        endouterrad     outside radius at end of segment
349        zlen            z length of segment
350        phi             phi angle of a segment </xs:documentation>
351    </xs:annotation>
352    <xs:complexType>
353      <xs:complexContent>
354        <xs:extension base="SolidType">
355          <xs:attribute name="twistedangle" type="ExpressionOrIDREFType" use="required"></xs:attribute>
356          <xs:attribute name="endinnerrad" type="ExpressionOrIDREFType" use="required"></xs:attribute>
357          <xs:attribute name="endouterrad" type="ExpressionOrIDREFType" use="required"></xs:attribute>
358          <xs:attribute name="zlen" type="ExpressionOrIDREFType" use="required"></xs:attribute>
359          <xs:attribute name="phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
360        </xs:extension>
361      </xs:complexContent>
362    </xs:complexType>
363  </xs:element>
364  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
365
366  <xs:element name="cutTube" substitutionGroup="Solid">
367    <xs:annotation>
368      <xs:documentation>CSG cut tube or cut tube segment solid described by
369        rmin                    Inner radius
370        rmax                    Outer radius
371        z                       length in z
372        startphi                The starting phi angle in radians, adjusted such that (startphi+deltaphi &lt;= 2PI, startphi &gt; -2PI)
373        deltaphi                Delta angle of the segment in radians
374        lowX, lowY, lowZ        Normal at lower Z plane
375        highX, highY, highZ     Normal at higher Z plane
376      </xs:documentation>
377    </xs:annotation>
378    <xs:complexType>
379      <xs:complexContent>
380        <xs:extension base="SolidType">
381          <xs:attribute name="z" type="ExpressionOrIDREFType"></xs:attribute>
382          <xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
383          <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
384          <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
385          <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
386          <xs:attribute name="lowX" type="ExpressionOrIDREFType" use="required"></xs:attribute>
387          <xs:attribute name="lowY" type="ExpressionOrIDREFType" use="required"></xs:attribute>
388          <xs:attribute name="lowZ" type="ExpressionOrIDREFType" use="required"></xs:attribute>
389          <xs:attribute name="highX" type="ExpressionOrIDREFType" use="required"></xs:attribute>
390          <xs:attribute name="highY" type="ExpressionOrIDREFType" use="required"></xs:attribute>
391          <xs:attribute name="highZ" type="ExpressionOrIDREFType" use="required"></xs:attribute>
392        </xs:extension>
393      </xs:complexContent>
394    </xs:complexType>
395  </xs:element>
396  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
397
398  <xs:element name="cone" substitutionGroup="Solid">
399    <xs:annotation>
400      <xs:documentation>CSG cone or cone segment described by
401        rmin1    inside radius at  z/2
402        rmin2    inside radius at  z/2
403        rmax1    outside radius at z/2
404        rmax2    outside radius at z/2
405        z        length in z
406        startphi starting angle of the segment in radians
407        deltaphi delta angle of the segment in radians</xs:documentation>
408    </xs:annotation>
409    <xs:complexType>
410      <xs:complexContent>
411        <xs:extension base="SolidType">
412          <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
413          <xs:attribute default="0.0" name="rmin1" type="ExpressionOrIDREFType"></xs:attribute>
414          <xs:attribute default="0.0" name="rmin2" type="ExpressionOrIDREFType"></xs:attribute>
415          <xs:attribute name="rmax1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
416          <xs:attribute name="rmax2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
417          <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
418          <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
419        </xs:extension>
420      </xs:complexContent>
421    </xs:complexType>
422  </xs:element>
423  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
424
425  <xs:element name="elcone" substitutionGroup="Solid">
426    <xs:annotation>
427      <xs:documentation>CSG  cone with elliptical cross section
428        dx    semiaxis in X
429        dy    semiaxis in Y
430        zmax  height of elliptical cone
431        zcut  upper cut plane level
432      </xs:documentation>
433    </xs:annotation>
434    <xs:complexType>
435      <xs:complexContent>
436        <xs:extension base="SolidType">
437          <xs:attribute name="dx" type="ExpressionOrIDREFType"></xs:attribute>
438          <xs:attribute name="dy" type="ExpressionOrIDREFType"></xs:attribute>
439          <xs:attribute name="zmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
440          <xs:attribute name="zcut" type="ExpressionOrIDREFType" use="required"></xs:attribute>
441         </xs:extension>
442      </xs:complexContent>
443    </xs:complexType>
444  </xs:element>
445  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
446 
447  <xs:element name="polycone" substitutionGroup="Solid">
448    <xs:annotation>
449      <xs:documentation>CSG polycone or polycone segment described by
450        startphi starting angle of the segment in radians
451        deltaphi delta angle of the segment in radians
452       
453        and a set of z-planes each described by
454        rmin     inside radius at  z/2
455        rmax     outside radius at z/2
456        z        length in z
457      </xs:documentation>
458    </xs:annotation>
459    <xs:complexType>
460      <xs:complexContent>
461        <xs:extension base="SolidType">
462          <xs:sequence>
463            <xs:element name="zplane" minOccurs="1" maxOccurs="unbounded" type="ZPlaneType"/>   
464          </xs:sequence>
465          <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
466          <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
467        </xs:extension>
468      </xs:complexContent>
469    </xs:complexType>
470  </xs:element> 
471  <!-- +++++++++++++ -->
472  <xs:complexType name="ZPlaneType">
473    <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
474    <xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
475    <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
476  </xs:complexType>
477  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
478 
479  <xs:element name="para" substitutionGroup="Solid">
480    <xs:annotation>
481      <xs:documentation>CSG parallelepiped solid is described by
482        x, y, z  length in x,y,z
483        alpha    Angle formed by the y axis and by the plane joining the centre of the faces
484        G4Parallel to the z-x plane at -y and +y
485        theta    Polar angle of the line joining the centres of the faces at -z and +z in z
486        phi      Azimuthal angle of the line joining the centres of the faces at -z and +z in z</xs:documentation>
487    </xs:annotation>
488    <xs:complexType>
489      <xs:complexContent>
490        <xs:extension base="SolidType">
491          <xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
492          <xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
493          <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
494          <xs:attribute name="alpha" type="ExpressionOrIDREFType" use="required"></xs:attribute>
495          <xs:attribute name="theta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
496          <xs:attribute name="phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
497        </xs:extension>
498      </xs:complexContent>
499    </xs:complexType>
500  </xs:element>
501  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
502 
503  <xs:element name="trd" substitutionGroup="Solid">
504    <xs:annotation>
505      <xs:documentation>CSG trapezoid solid with varying x and y dimensions along z axis
506        x1 Length along x at the surface positioned at -z
507        x2 Length along x at the surface positioned at +z
508        y1 Length along y at the surface positioned at -z
509        y2 Length along y at the surface positioned at +z
510        z  Length along z axis</xs:documentation>
511    </xs:annotation>
512    <xs:complexType>
513      <xs:complexContent>
514        <xs:extension base="SolidType">
515          <xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
516          <xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
517          <xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
518          <xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
519          <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
520        </xs:extension>
521      </xs:complexContent>
522    </xs:complexType>
523  </xs:element>
524  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
525
526  <xs:element name="trap" substitutionGroup="Solid">
527    <xs:annotation>
528      <xs:documentation>CSG general trapezoid solid is described by
529        z      Length along the z-axis
530        theta  Polar angle of the line joining the centres of the faces at -/+z
531        phi    Azimuthal angle of the line joing the centre of the face at -z to the centre of the face at +z
532        y1     Length along y of the face at -z
533        x1     Length along x of the side at y = -y1 of the face at -z
534        x2     Length along x of the side at y = +y1 of the face at -z
535        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
536        y2     Length along y of the face at +z
537        x3     Length along x of the side at y = -y2 of the face at +z
538        x4     Length along x of the side at y = +y2 of the face at +z
539        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>
540    </xs:annotation>
541    <xs:complexType>
542      <xs:complexContent>
543        <xs:extension base="SolidType">
544          <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
545          <xs:attribute name="theta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
546          <xs:attribute name="phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
547          <xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
548          <xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
549          <xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
550          <xs:attribute name="alpha1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
551          <xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
552          <xs:attribute name="x3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
553          <xs:attribute name="x4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
554          <xs:attribute name="alpha2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
555        </xs:extension>
556      </xs:complexContent>
557    </xs:complexType>
558  </xs:element>
559  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
560 
561  <xs:element name="torus" substitutionGroup="Solid">
562    <xs:annotation>
563      <xs:documentation>CSG torus solid is described by
564        rmin  Inside radius
565        rmax  Outside radius
566        rtor  swept radius of torus
567        startphi  The starting phi angle in radians adjusted such that sphi+dphi lt 2PI, sphi gt -2PI
568        deltaphi  Delta angle of the segment in radians
569      </xs:documentation>
570    </xs:annotation>
571    <xs:complexType>
572      <xs:complexContent>
573        <xs:extension base="SolidType">
574          <xs:attribute name="rmin" type="ExpressionOrIDREFType" use="required"></xs:attribute>
575          <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
576          <xs:attribute name="rtor" type="ExpressionOrIDREFType" use="required"></xs:attribute>
577          <xs:attribute name="startphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
578          <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
579        </xs:extension>
580      </xs:complexContent>
581    </xs:complexType>
582  </xs:element>
583  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
584 
585  <xs:element name="orb" substitutionGroup="Solid">
586    <xs:annotation>
587      <xs:documentation>CSG orb solid (simplified sphere with only rmax) is described by
588        r  Outside radius</xs:documentation>
589    </xs:annotation>
590    <xs:complexType>
591      <xs:complexContent>
592        <xs:extension base="SolidType">
593          <xs:attribute name="r" type="ExpressionOrIDREFType" use="required"></xs:attribute>
594        </xs:extension>
595      </xs:complexContent>
596    </xs:complexType>
597  </xs:element>
598  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
599 
600  <xs:element name="polyhedra" substitutionGroup="Solid">
601    <xs:annotation>
602      <xs:documentation>Polyhedra is described by
603        startphi     initial phi starting angle
604        totalphi     total phi angle
605        numsides  number sides
606        and a set of zplanes.</xs:documentation>
607    </xs:annotation>
608    <xs:complexType>
609      <xs:complexContent>
610        <xs:extension base="SolidType">
611          <xs:sequence>
612            <xs:element name="zplane" minOccurs="1" maxOccurs="unbounded" type="ZPlaneType"/>   
613          </xs:sequence>
614         
615          <xs:attribute name="startphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
616          <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
617          <xs:attribute name="numsides" type="ExpressionOrIDREFType" use="required"></xs:attribute>
618        </xs:extension>
619      </xs:complexContent>
620    </xs:complexType>
621  </xs:element> 
622  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
623 
624  <xs:complexType name="TwoDimVertexType">
625    <xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
626    <xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
627  </xs:complexType>
628 
629  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
630   
631  <xs:complexType name="SectionType">
632    <xs:attribute name="zOrder" type="ExpressionOrIDREFType" use="required"></xs:attribute>
633    <xs:attribute name="zPosition" type="ExpressionOrIDREFType" use="required"></xs:attribute>
634    <xs:attribute name="xOffset" type="ExpressionOrIDREFType" use="required"></xs:attribute>
635    <xs:attribute name="yOffset" type="ExpressionOrIDREFType" use="required"></xs:attribute>
636    <xs:attribute name="scalingFactor" type="ExpressionOrIDREFType" use="required"></xs:attribute>
637  </xs:complexType> 
638  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
639 
640  <xs:element name="xtru" substitutionGroup="Solid">
641    <xs:annotation>
642      <xs:documentation>Poligonal extrusion is described by
643        an unbounded (min. 3) number of vertices of the blueprint polygon
644        and an unbounded number of Z sections.
645      </xs:documentation>
646    </xs:annotation>
647    <xs:complexType>
648      <xs:complexContent>
649        <xs:extension base="SolidType">
650          <xs:sequence>
651            <xs:sequence>
652              <xs:element name="twoDimVertex" minOccurs="3" maxOccurs="unbounded" type="TwoDimVertexType"/>     
653            </xs:sequence>
654            <xs:sequence>
655              <xs:element name="section" minOccurs="2" maxOccurs="unbounded" type="SectionType"/>       
656            </xs:sequence>
657          </xs:sequence>
658        </xs:extension>
659      </xs:complexContent>
660    </xs:complexType>
661  </xs:element> 
662  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
663 
664  <xs:element name="hype" substitutionGroup="Solid">
665    <xs:annotation>
666      <xs:documentation>Tube with hyperbolic profile described by
667        rmin    innerRadius
668        rmax    outerRadius
669        inst    innerStereo
670        outst   outerStereo
671        z       z length
672      </xs:documentation>
673    </xs:annotation>
674    <xs:complexType>
675      <xs:complexContent>
676        <xs:extension base="SolidType">
677          <xs:attribute name="rmin" type="ExpressionOrIDREFType" use="required"></xs:attribute>
678          <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
679          <xs:attribute name="inst" type="ExpressionOrIDREFType" use="required"></xs:attribute>
680          <xs:attribute name="outst" type="ExpressionOrIDREFType" use="required"></xs:attribute>
681          <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
682        </xs:extension>
683      </xs:complexContent>
684    </xs:complexType>
685  </xs:element>
686  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
687 
688  <xs:element name="eltube" substitutionGroup="Solid">
689    <xs:annotation>
690      <xs:documentation>
691        Volume representing a tube with elliptical
692        cross section.
693      </xs:documentation>
694    </xs:annotation>
695    <xs:complexType>
696      <xs:complexContent>
697        <xs:extension base="SolidType">
698          <xs:attribute name="dx" type="ExpressionOrIDREFType" use="required"></xs:attribute>
699          <xs:attribute name="dy" type="ExpressionOrIDREFType" use="required"></xs:attribute>
700          <xs:attribute name="dz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
701        </xs:extension>
702      </xs:complexContent>
703    </xs:complexType>
704  </xs:element> 
705  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
706
707  <xs:element name="tet" substitutionGroup="Solid">
708    <xs:annotation>
709      <xs:documentation>
710        Volume representing a tetrahedron.
711      </xs:documentation>
712    </xs:annotation>
713    <xs:complexType>
714      <xs:complexContent>
715        <xs:extension base="SolidType">
716         <xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
717         <xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
718         <xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
719         <xs:attribute name="vertex4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
720        </xs:extension>
721      </xs:complexContent>
722    </xs:complexType>
723  </xs:element> 
724  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
725
726  <xs:element name="arb8" substitutionGroup="Solid">
727    <xs:annotation>
728      <xs:documentation>
729        Volume representing an (almost)arbitrary 8 vertices solid.
730        The solid is defined by two quadrilaterals sitting on parallel planes,
731        the distance between these two planes is dz*2.
732        The base quadrilateral contained within the plane located at -dz is defined by
733        the first 4 vertices (v1,v2,v3,v4 each one with the x and y coordinates).
734        The other parallel quadrilateral contained within the plane at +dz is defined by
735        the other 4 vertices (v5,v6,v7,v8 each one with the x and y coordinates).
736      </xs:documentation>
737    </xs:annotation>
738    <xs:complexType>
739      <xs:complexContent>
740        <xs:extension base="SolidType">
741         <xs:attribute name="v1x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
742         <xs:attribute name="v1y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
743         <xs:attribute name="v2x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
744         <xs:attribute name="v2y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
745         <xs:attribute name="v3x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
746         <xs:attribute name="v3y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
747         <xs:attribute name="v4x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
748         <xs:attribute name="v4y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
749         <xs:attribute name="v5x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
750         <xs:attribute name="v5y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
751         <xs:attribute name="v6x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
752         <xs:attribute name="v6y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
753         <xs:attribute name="v7x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
754         <xs:attribute name="v7y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
755         <xs:attribute name="v8x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
756         <xs:attribute name="v8y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
757         <xs:attribute name="dz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
758        </xs:extension>
759      </xs:complexContent>
760    </xs:complexType>
761  </xs:element>     
762  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
763
764  <!-- Tessellated solid elements --> 
765
766  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 
767
768  <xs:complexType name="FacetType">
769    <xs:annotation>
770      <xs:documentation>Base facet type</xs:documentation>
771    </xs:annotation>
772  </xs:complexType>
773  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
774
775  <xs:element abstract="true" name="Facet" type="FacetType">
776    <xs:annotation>
777      <xs:documentation>Abstract element for all facets substitution group</xs:documentation>
778    </xs:annotation>
779  </xs:element>
780  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
781
782  <xs:element name="triangular" substitutionGroup="Facet">
783    <xs:annotation>
784      <xs:documentation>
785      Triangular facet.
786      </xs:documentation>
787    </xs:annotation>
788    <xs:complexType>
789      <xs:complexContent>
790        <xs:extension base="FacetType">
791        <xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
792        <xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
793        <xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
794        <xs:attribute name="type" type="xs:string" default="ABSOLUTE"></xs:attribute>
795        </xs:extension>
796      </xs:complexContent>
797    </xs:complexType>
798  </xs:element> 
799
800  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
801
802  <xs:element name="quadrangular" substitutionGroup="Facet">
803    <xs:annotation>
804      <xs:documentation>
805      Quadrangular facet.
806      </xs:documentation>
807    </xs:annotation>
808    <xs:complexType>
809      <xs:complexContent>
810        <xs:extension base="FacetType">
811        <xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
812        <xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
813        <xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
814        <xs:attribute name="vertex4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
815        <xs:attribute name="type" type="xs:string" default="ABSOLUTE"></xs:attribute>
816        </xs:extension>
817      </xs:complexContent>
818    </xs:complexType>
819  </xs:element> 
820  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
821
822  <xs:element name="tessellated" substitutionGroup="Solid">
823    <xs:annotation>
824      <xs:documentation>Tessellated solid       
825      </xs:documentation>
826    </xs:annotation>
827    <xs:complexType>
828      <xs:complexContent>
829        <xs:extension base="SolidType">
830          <xs:sequence>
831            <xs:element name="Facet" minOccurs="1" maxOccurs="unbounded" type="FacetType"/>     
832          </xs:sequence>
833        </xs:extension>
834      </xs:complexContent>
835    </xs:complexType>
836  </xs:element>
837  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 
838
839  <xs:element name="opticalsurface" substitutionGroup="SurfaceProperty">
840    <xs:annotation>
841      <xs:documentation>Optical surface used by Geant4 optical processes</xs:documentation>
842    </xs:annotation>
843    <xs:complexType>
844      <xs:complexContent>
845        <xs:extension base="SurfacePropertyType">
846          <xs:attribute name="model" type="xs:string" default="glisur"></xs:attribute>
847          <xs:attribute name="finish" type="xs:string" default="polished"></xs:attribute>
848          <xs:attribute name="value" type="xs:string" default="1.0"></xs:attribute>
849        </xs:extension>
850      </xs:complexContent>
851    </xs:complexType>
852  </xs:element>
853  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 
854
855</xs:schema>
Note: See TracBrowser for help on using the repository browser.