Following my mail yesterday about the new ROOT geometry modeller, I have received many requests for more information. I will not reply to individual mails. Instead, I am posting the procedure to follow if you want to participate to the evaluation phase. A first remark. The new geometry modeller is not a replacement for Geant3 or Geant4. It is only a geometry modeller, no physics in. But, we are hoping in a second phase to interface it to these packages (+Fluka). The first version of the code will be released in a few weeks in the development version 3.03. Meanwhile, we would be happy to test the system with as many real configurations as possible. To test the new package, we have developed a variant of the existing g2root utility that generates automatically the C++ code for the modeller starting from a Geant3 geometry file (Zebra format). In order to test the performance of the sub-system "Where am I", "distance to surface", we would like also to collect the result of a simulation with the standard physics event that you use in your experiment. We also use this file to compare the results of Geant3 with the package point per point. I have prepared a small Fortran routine that can automatically generate the info we are looking for (see file grecord.f in the attachment). This routine must be compiled and linked with your Geant3 application. It must be called from GUSTEP with: call grecord This routine will create a file containing the geometry as well another file with the info generated in GUSTEP. It would be nice if you could run with this call to grecord activated to generate one million steps. The program will stop automatically once one million points will have been generated. Two files are produced: -mygeom.geom with the geometry (a few MBytes maximum) -mygeom.hbook a PAW ntuple with the GUSTEP info ( around 40 Mbytes) If you want to participate to the evaluation, generate these two files and let me know where I can access them. We will communicate to you the results of the benchmark compared to the standard Geant3. We also intend to apply the same procedure for Geant4 later. Note that, we already have the 4 LHC detector geometries. Rene Brun, Andrei & Mihaela Gheata SUBROUTINE grecord *KEEP,GCFLAG. COMMON/GCFLAG/IDEBUG,IDEMIN,IDEMAX,ITEST,IDRUN,IDEVT,IEORUN + ,IEOTRI,IEVENT,ISWIT(10),IFINIT(20),NEVENT,NRNDM(2) COMMON/GCFLAX/BATCH, NOLOG LOGICAL BATCH, NOLOG C INTEGER IDEBUG,IDEMIN,IDEMAX,ITEST,IDRUN,IDEVT,IEORUN + ,IEOTRI,IEVENT,ISWIT,IFINIT,NEVENT,NRNDM C *KEEP,GCKINE. COMMON/GCKINE/IKINE,PKINE(10),ITRA,ISTAK,IVERT,IPART,ITRTYP + ,NAPART(5),AMASS,CHARGE,TLIFE,VERT(3),PVERT(4),IPAOLD C INTEGER IKINE,ITRA,ISTAK,IVERT,IPART,ITRTYP,NAPART,IPAOLD REAL PKINE,AMASS,CHARGE,TLIFE,VERT,PVERT *KEEP,GCTRAK. INTEGER NMEC,LMEC,NAMEC,NSTEP ,MAXNST,IGNEXT,INWVOL,ISTOP,MAXMEC + ,IGAUTO,IEKBIN,ILOSL, IMULL,INGOTO,NLDOWN,NLEVIN,NLVSAV,ISTORY + ,MAXME1,NAMEC1 REAL VECT,GETOT,GEKIN,VOUT,DESTEP,DESTEL,SAFETY,SLENG ,STEP + ,SNEXT,SFIELD,TOFG ,GEKRAT,UPWGHT REAL POLAR PARAMETER (MAXMEC=30) COMMON/GCTRAK/VECT(7),GETOT,GEKIN,VOUT(7),NMEC,LMEC(MAXMEC) + ,NAMEC(MAXMEC),NSTEP ,MAXNST,DESTEP,DESTEL,SAFETY,SLENG + ,STEP ,SNEXT ,SFIELD,TOFG ,GEKRAT,UPWGHT,IGNEXT,INWVOL + ,ISTOP ,IGAUTO,IEKBIN, ILOSL, IMULL,INGOTO,NLDOWN,NLEVIN + ,NLVSAV,ISTORY PARAMETER (MAXME1=30) COMMON/GCTPOL/POLAR(3), NAMEC1(MAXME1) C *KEEP,GCVOLU. COMMON/GCVOLU/NLEVEL,NAMES(15),NUMBER(15), +LVOLUM(15),LINDEX(15),INFROM,NLEVMX,NLDEV(15),LINMX(15), +GTRAN(3,15),GRMAT(10,15),GONLY(15),GLX(3) C INTEGER NLEVEL,NAMES,NUMBER,LVOLUM,LINDEX,INFROM,NLEVMX, + NLDEV,LINMX REAL GTRAN,GRMAT,GONLY,GLX *----------------------------------------------------------------------- save ifirst data ifirst/0/ data idn/1111/ if (ifirst.eq.0) then call hcdir('//PAWC',' ') call hropen(22,'TEST','mygeom.hbook','N',1024,istat) call hbset('BSIZE',4096,istat) call hbnt(idn,'HCWN',' ') call hbname(idn,'vect',vect,'vect(7)') call hbname(idn,'ievent',ievent,'ievent') call hbname(idn,'itra',itra,'itra') call hbname(idn,'tofg',tofg,'tofg') endif ifirst = ifirst + 1 if (ifirst.le.1000000) then if (mod(ifirst,10000).eq.0) then print *,'You have generated ',ifirst,' steps' endif call hcdir('//PAWC',' ') call hfnt(idn) else call hcdir('//PAWC',' ') call hcdir('//TEST',' ') ieotri = 1 ieorun = 1 print *,'Closing the gustep mygeom.hbook file' iswit(6) = 0 call hprint(idn) call hrout(idn,icycle,' ') call hrendc('TEST') close(22) print *, 'Creating the geometry file mygeom.geom' call grfile(22,'mygeom.geom','on') stop endif end
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:46 MET