[817] | 1 | G3toG4 |
---|
| 2 | ------ |
---|
| 3 | |
---|
| 4 | G3toG4 is the Geant4 facility to convert Geant3 geometries into Geant4. |
---|
| 5 | This is done in two stages. |
---|
| 6 | |
---|
| 7 | First, the user supplies a Geant3 .rz file containing the initialization |
---|
| 8 | data structures. An executable, rztog4, reads this file and produces an |
---|
| 9 | ascii ("call list") file containing instructions on how to build the |
---|
| 10 | geometry. The source code for this is fortran. |
---|
| 11 | |
---|
| 12 | Second, a call list interpreter (G4BuildGeom.cc) reads these instructions |
---|
| 13 | and builds the geometry in the user's G4 client code. |
---|
| 14 | |
---|
| 15 | Two examples of how to use the call list interpreter are supplied in |
---|
| 16 | examples/extended/g3tog4: |
---|
| 17 | - the first example, cltog4, is a simple example which simply invokes the |
---|
| 18 | call list interpreter method G4BuildGeom from G3toG4DetectorConstruction |
---|
| 19 | class, builds the geometry and exits. |
---|
| 20 | - the second example, clGeometry, is more complete and is patterned after |
---|
| 21 | the novice G4 examples. It also invokes the call list interpreter, but |
---|
| 22 | in addition, allows the geometry to be visualized and particles to be |
---|
| 23 | tracked. Currently, G3toG4 does not provide a method for scoring hits |
---|
| 24 | in G4. |
---|
| 25 | |
---|
| 26 | To build these examples, especially the one involving visualization, the |
---|
| 27 | user must have one or more of the following environment variables set: |
---|
| 28 | |
---|
| 29 | setenv G4VIS_BUILD_<driver>_DRIVER |
---|
| 30 | setenv G4VIS_USE_<driver> |
---|
| 31 | |
---|
| 32 | where the G4-supported drivers are listed in source/visualization/README. |
---|
| 33 | |
---|
| 34 | To use the freeware Mesa API, you must have the environment variable |
---|
| 35 | OGLHOME defined to point to the directory containing the Mesa lib/ directory |
---|
| 36 | specific to your platform. |
---|
| 37 | |
---|
| 38 | To compile and build the G3toG4 libraries, simply type |
---|
| 39 | |
---|
| 40 | gmake |
---|
| 41 | |
---|
| 42 | from the top-level G3toG4 directory. |
---|
| 43 | |
---|
| 44 | To build the converter executable "rztog4", simply type |
---|
| 45 | |
---|
| 46 | gmake bin |
---|
| 47 | |
---|
| 48 | To make everything, simply type: |
---|
| 49 | |
---|
| 50 | gmake global |
---|
| 51 | |
---|
| 52 | To remove all G3toG4 libraries, executables and .d files, simply type |
---|
| 53 | |
---|
| 54 | gmake clean |
---|
| 55 | |
---|
| 56 | the implementation (April 1999) |
---|
| 57 | ---------------------------------------- |
---|
| 58 | - PGON, PCON are built using the CSG classes G4Polycone and G4Polyhedra. |
---|
| 59 | - G3 MANY feature has not been tested. |
---|
| 60 | - GsROTM is fully implemented and supports rotations and mirror reflections |
---|
| 61 | - GSPOSP implemented via individual logical volumes for each instantiation |
---|
| 62 | (G4PVIndexed doesn't exist yet) |
---|
| 63 | - GSDV* routines for dividing volumes implemented, using |
---|
| 64 | G4PVReplicas, G4PVParametrised |
---|
| 65 | - GSROTM is implemented |
---|
| 66 | - hits are not implemented. Hit code is do-nothing. (It is |
---|
| 67 | coded up, but hit class references are commented out.) |
---|
| 68 | The digits+hits code has to be updated before G3toG4's |
---|
| 69 | hit code can be activated. |
---|
| 70 | - GSPART has to be updated. |
---|
| 71 | - Usage of magnetic field class has to be turned on. |
---|
| 72 | |
---|
| 73 | the implementation (February 2001) |
---|
| 74 | ---------------------------------------- |
---|
| 75 | - Supported shapes: all G3 shapes except for |
---|
| 76 | "HYPE", "GTRA", "CTUB" |
---|
| 77 | - G3 MANY feature is not supported. |
---|
| 78 | - GSDV* routines for dividing volumes implemented, using |
---|
| 79 | G4PVReplicas, for shapes: |
---|
| 80 | "BOX", "TUBE", "TUBS", "PARA" - all axes; |
---|
| 81 | "CONE", "CONS" - axes 2, 3; |
---|
| 82 | "TRD1", "TRD2", "TRAP" - axis 3; |
---|
| 83 | "PGON", "PCON" - axis 2; |
---|
| 84 | "PARA" -axis 1; axis 2,3 for a special case |
---|
| 85 | Unsupported shapes: |
---|
| 86 | "SPHE", "ELTU", "HYPE", "GTRA", "CTUB" |
---|
| 87 | |
---|
| 88 | the implementation (November 2001) |
---|
| 89 | ---------------------------------------- |
---|
| 90 | - Support for G3 MANY feature: |
---|
| 91 | |
---|
| 92 | MANY positions are resolved in G3toG4MANY function, |
---|
| 93 | which has to be processed before G3toG4BuildTree |
---|
| 94 | (it is not called by default). |
---|
| 95 | In order to resolve MANY user code has to provide |
---|
| 96 | additional info using G4gsbool(G4String volName, G4String manyVolName) |
---|
| 97 | function) for all overlapping volumes. Daughters of |
---|
| 98 | overlapping volumes are then resolved automatically |
---|
| 99 | and should not be specified via Gsbool. |
---|
| 100 | |
---|
| 101 | Limitation: a volume with a MANY position can have only this |
---|
| 102 | one position; if more than one position is needed a new volume |
---|
| 103 | has to be defined (gsvolu) for each position. |
---|
| 104 | |
---|
| 105 | See History file for modification history. |
---|