1 | <html> |
---|
2 | <head> |
---|
3 | <title>ADG: Geometry</title> |
---|
4 | </head> |
---|
5 | |
---|
6 | <!-- Changed by: Gabriele Cosmo, 18-Apr-2005 --> |
---|
7 | <!-- $Id: geomG3toG4.html,v 1.2 2006/06/09 13:59:44 gcosmo Exp $ --> |
---|
8 | <!-- $Name: $ --> |
---|
9 | <body> |
---|
10 | <table WIDTH="100%"><TR> |
---|
11 | <td> |
---|
12 | <a href="../../../../Overview/html/index.html"> |
---|
13 | <IMG SRC="../../../../resources/html/IconsGIF/Overview.gif" ALT="Overview"></a> |
---|
14 | <a href="geometry.html"> |
---|
15 | <IMG SRC="../../../../resources/html/IconsGIF/Contents.gif" ALT="Contents"></a> |
---|
16 | <a href="geomEditor.html"> |
---|
17 | <IMG SRC="../../../../resources/html/IconsGIF/Previous.gif" ALT="Previous"></a> |
---|
18 | <a href="geomOverlap.html"> |
---|
19 | <IMG SRC="../../../../resources/html/IconsGIF/Next.gif" ALT="Next"></a> |
---|
20 | </td> |
---|
21 | <td ALIGN="Right"> |
---|
22 | <font SIZE="-1" COLOR="#238E23"> |
---|
23 | <b>Geant4 User's Guide</b> |
---|
24 | <br> |
---|
25 | <b>For Application Developers</b> |
---|
26 | <br> |
---|
27 | <b>Geometry</b> |
---|
28 | </font> |
---|
29 | </td> |
---|
30 | </tr></table> |
---|
31 | <br><br> |
---|
32 | |
---|
33 | <a name="4.1.10"> |
---|
34 | <h2>4.1.10 Converting Geometries from Geant 3.21</h2></a> |
---|
35 | |
---|
36 | <b>Approach</b> |
---|
37 | <p> |
---|
38 | <b>G3toG4</b> is the Geant4 facility to convert GEANT 3.21 geometries into |
---|
39 | Geant4. This is done in two stages: |
---|
40 | <ol> |
---|
41 | <li>The user supplies a GEANT 3.21 RZ-file (.rz) containing the initialization |
---|
42 | data structures. An executable <tt>rztog4</tt> reads this file and |
---|
43 | produces an ASCII <i>call list</i> file containing instructions on how to |
---|
44 | build the geometry. The source code of <tt>rztog4</tt> is FORTRAN.</li> |
---|
45 | <li>A call list interpreter (<tt>G4BuildGeom.cc</tt>) reads these instructions |
---|
46 | and builds the geometry in the user's client code for Geant4.</li> |
---|
47 | </ol> |
---|
48 | </p> |
---|
49 | |
---|
50 | <B>Importing converted geometries into Geant4</B> |
---|
51 | <P> |
---|
52 | Two examples of how to use the call list interpreter are supplied in |
---|
53 | the directory <tt>examples/extended/g3tog4</tt>: |
---|
54 | <ol> |
---|
55 | <li><tt>cltog4</tt> is a simple example which simply invokes the |
---|
56 | call list interpreter method <tt>G4BuildGeom</tt> from the |
---|
57 | <tt>G3toG4DetectorConstruction</tt> class, builds the geometry and |
---|
58 | exits.</li> |
---|
59 | <li><tt>clGeometry</tt>, is more complete and is patterned as for |
---|
60 | the novice Geant4 examples. It also invokes the call list interpreter, |
---|
61 | but in addition, allows the geometry to be visualized and particles to be |
---|
62 | tracked.</li> |
---|
63 | </ol> |
---|
64 | To compile and build the G3toG4 libraries, you need to have set in your |
---|
65 | environment the variable <tt>G4LIB_BUILD_G3TOG4</tt> at the time of |
---|
66 | installation. The G3toG4 libraries are not built by default. Then, simply type |
---|
67 | |
---|
68 | <pre> |
---|
69 | gmake |
---|
70 | </pre> |
---|
71 | |
---|
72 | from the top-level <tt>source/g3tog4</tt> directory. |
---|
73 | <P> |
---|
74 | To build the converter executable <tt>rztog4</tt>, simply type |
---|
75 | |
---|
76 | <pre> |
---|
77 | gmake bin |
---|
78 | </pre> |
---|
79 | |
---|
80 | To make everything, simply type: |
---|
81 | |
---|
82 | <pre> |
---|
83 | gmake global |
---|
84 | </pre> |
---|
85 | |
---|
86 | To remove all <tt>G3toG4</tt> libraries, executables and .d files, simply type |
---|
87 | |
---|
88 | <pre> |
---|
89 | gmake clean |
---|
90 | </pre> |
---|
91 | |
---|
92 | <B>Current Status</B> |
---|
93 | <P> |
---|
94 | The package has been tested with the geometries from experiments like: |
---|
95 | BaBar, CMS, Atlas, Alice, Zeus, L3, and Opal.<BR> |
---|
96 | Here is a comprehensive list of features supported and not supported or |
---|
97 | implemented in the current version of the package: |
---|
98 | <UL> |
---|
99 | <li>Supported shapes: |
---|
100 | all GEANT 3.21 shapes except for <tt>GTRA</tt>, <tt>CTUB</tt>.</li> |
---|
101 | <li><tt>PGON</tt>, <tt>PCON</tt> are built using the <i>specific</i> solids |
---|
102 | <tt>G4Polycone</tt> and <tt>G4Polyhedra</tt>.</li> |
---|
103 | <li>GEANT 3.21 <tt>MANY</tt> feature is only partially supported.<BR> |
---|
104 | <tt>MANY</tt> positions are resolved in the <tt>G3toG4MANY()</tt> |
---|
105 | function, which has to be processed before <tt>G3toG4BuildTree()</tt> |
---|
106 | (it is not called by default).<br> |
---|
107 | In order to resolve <tt>MANY</tt>, the user code has to provide |
---|
108 | additional info using <tt>G4gsbool(G4String volName, |
---|
109 | G4String manyVolName)</tt> function for all the overlapping volumes. |
---|
110 | Daughters of overlapping volumes are then resolved automatically and |
---|
111 | should not be specified via <tt>Gsbool</tt>.<BR> |
---|
112 | <B>Limitation</B>: a volume with a <tt>MANY</tt> position can have only |
---|
113 | this one position; if more than one position is needed a new volume has |
---|
114 | to be defined (<tt>gsvolu()</tt>) for each position. |
---|
115 | </li> |
---|
116 | <li><tt>GSDV*</tt> routines for dividing volumes are implemented, using |
---|
117 | <tt>G4PVReplica</tt>s, for shapes:</li> |
---|
118 | <UL> |
---|
119 | <li><tt>BOX</tt>, <tt>TUBE</tt>, <tt>TUBS</tt>, <tt>PARA</tt> - all axes; |
---|
120 | </li> |
---|
121 | <li><tt>CONE</tt>, <tt>CONS</tt> - axes 2, 3;</li> |
---|
122 | <li><tt>TRD1</tt>, <tt>TRD2</tt>, <tt>TRAP</tt> - axis 3;</li> |
---|
123 | <li><tt>PGON</tt>, <tt>PCON</tt> - axis 2;</li> |
---|
124 | <li><tt>PARA</tt> -axis 1; axis 2,3 for a special case</li> |
---|
125 | </UL> |
---|
126 | <li><tt>GSPOSP</tt> is implemented via individual logical volumes for each |
---|
127 | instantiation.</li> |
---|
128 | <li><tt>GSROTM</tt> is implemented. Reflections of hierachies based on plain |
---|
129 | CSG solids are implemented through the <tt>G3Division</tt> class. |
---|
130 | <li>Hits are not implemented. |
---|
131 | <li>Conversion of GEANT 3.21 magnetic field is currently not supported. |
---|
132 | However, the usage of magnetic field has to be turned on. |
---|
133 | </UL> |
---|
134 | |
---|
135 | <hr><a href="../../../../Authors/html/subjectsToAuthors.html"> |
---|
136 | <i>About the authors</a></i> </P> |
---|
137 | |
---|
138 | </body> |
---|
139 | </html> |
---|