Re: g2root

Rene Brun (Rene.Brun@cern.ch)
Tue, 30 Jun 1998 08:43:35 +0200


To generate a Geant geometry RZ file, add one line after GGCLOS
to your Fortran program
call grfile(21,"mygeom.rz","ON")

then use the g2root converter with
g2root mygeom.rz mygeom.root

Rene Brun

Jayoung Wu wrote:
>
> Hi all,
> I want to use "g2root" to convert an existing GEANT geometry file
> into a ROOT macro.
> To use this conversion program
> g2root geant_rzfile macroname.
> ^^^^^^^^^^^^
> What is geant_rzfile file? Can it be any geant fortran
> file?
>
> When I tried "g2root geom.f geom.C", I got the following error message:
> Error: No symbol g2rootgeom.fgeom.C in current scope
> FILE:/tmp/03052aaa LINE:1
> Is there something wrong with my "geom.f"?
>
> If possible, can I have any example file for geant_rzfile?
>
> ---------------------- geom.f ---------------------------------
> c+DECK, UGEOM.
> ***************************************************************************
> SUBROUTINE UGEOM
> ***************************************************************************
> c/*
> c#include "/cern/97a/inc/gckine.inc"
> c#include "/cern/97a/inc/usphys.inc"
> c#include "/cern/97a/inc/matidc.inc"
> c#include "/cern/97a/inc/gmsize.inc"
> c*/
>
> include '/home/sina/CERNINCLUDES/myugeom.inc'
>
> ******* MATERIAL DESCRIPTION
> CALL GSMIXT(MATBGO,'BGO$',ABGO,ZBGO, 7.1, -3, WBGO)
>
> CALL GSMATE(MATSCN,'SCINTILLATOR$', 20.0, 10.0, 1.032,
> + 42.4, 58.4, 0, 0)
>
> CALL GPMATE(0) !PRINT OUT ALL MATERIALS
>
> ******* TRACKING MEDIUM
> IFIELD = 0
> FIELDM = 0.
> TMAXFD = 10.
> STEMAX = 1. !DEDXMX
> DEEMAX = 0.05
> EPSIL = 0.001
> STMIN = 0.001
>
> CALL GSTMED(ITRAIR,'AIR$',MATAIR, 0, IFIELD,
> + FIELDM, TMAXFD, STEMAX, DEEMAX, EPSIL, STMIN, 0, 0)
>
> CALL GSTMED(ITRBGO,'BGO$',MATBGO, 0, IFIELD,
> + FIELDM, TMAXFD, STEMAX, DEEMAX, EPSIL, STMIN, 0, 0)
>
> CALL GSTMED(ITRCAR,'CARBON$',MATCAR, 0, IFIELD,
> + FIELDM, TMAXFD, STEMAX, DEEMAX, EPSIL, STMIN, 0, 0)
>
> CALL GSTMED(ITRSCN,'SCINTILLATOR$',MATSCN, 0, IFIELD,
> + FIELDM, TMAXFD, STEMAX, DEEMAX, EPSIL, STMIN, 0, 0)
>
>
> ******* DEFINE THE GEOMETRICAL SETUP
> !First of all, create volumes
> SIZE(1) = 100. !half of length in x direction
> SIZE(2) = 100. !y
> SIZE(3) = 100. !z
> CALL GSVOLU('ROOT','BOX ', ITRAIR, SIZE, 3, IVOLU)
>
> SIZE(1) = 50. / 2.
> SIZE(2) = 50. / 2.
> SIZE(3) = 2.5 / 2.
> CALL GSVOLU('BGOL','BOX ', ITRBGO, SIZE, 3, IVOLU)
> CALL GSVOLU('BGEL','BOX ', ITRBGO, SIZE, 3, IVOLU)
>
> thkscn = 2.0
> SIZE(3) = thkscn / 2.
> SIZE(1) = 25.0
> SIZE(2) = SIZE(1)
> CALL GSVOLU('SCN1','BOX ', ITRSCN, SIZE, 3, IVOLU)
>
> !Position the volumes --- easy part, which is CARBON and SCIN.
> LAYERS
> CALL GSPOS('SCN1',1,'ROOT', 0, 0, 31., 0, 'ONLY')
>
> !BGO crystals
> K=0
> DO I=1, 15
> K=K+1
> CALL GSPOS('BGOL', K, 'ROOT', 0, 0,-1.25-(I-1)*5.0, 0, 'ONLY')
> CALL GSPOS('BGEL', K, 'ROOT', 0, 0,-3.75-(I-1)*5.0, 0, 'ONLY')
> ENDDO
> CALL GSDVN('BGOX','BGOL', 2,1) !divide BGOL into two BGOX in the
> x-axis
> CALL GSDVN('XBGO','BGOX',20,2)
> CALL GSDVN('BGOY','BGEL', 2,2) !divide BGEL into two BGOY in the
> y-axis
> CALL GSDVN('YBGO','BGOY',20,1)
>
> !split the S1,S2,S3,S4,S5 layer along the z-direction
> CALL GSDVN('S1AB','SCN1', 2, 3)
>
> call gpvolu(0)
>
> ******* FINISH GEOMETRICAL SETUP
> CALL GGCLOS
>
> END
>
> ---
> Thanks a lot!
> Jayoung
>
> PS. I am on linux and ROOT version1.03.