source: trunk/source/persistency/gdml/schema/gdml_solids.xsd@ 1337

Last change on this file since 1337 was 1316, checked in by garnier, 15 years ago

update geant4-09-04-beta-cand-01 interfaces-V09-03-09 vis-V09-03-08

  • Property svn:executable set to *
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.