5 * Revision 1.1.1.1 1995/10/24 10:21:50 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.33 by S.Giani
13 SUBROUTINE GXOBJ(BRCLAS,BRNAME,BRPATH,OBNAME,OBCLAS,STEXT,LTEXT)
15 ***********************************************************************
17 * This routine scans the Geant data structures to return each *
18 * time the next object found. It is used in the new user in- *
19 * terface based on KUIP-MOTIF. *
21 * Author : S. Giani ******************** *
23 ***********************************************************************
25 #include "geant321/gcbank.inc"
26 #include "geant321/gcunit.inc"
27 #include "geant321/gcnum.inc"
28 #include "geant321/gcflag.inc"
29 #include "geant321/gcdraw.inc"
31 CHARACTER*(*) BRCLAS,BRNAME,BRPATH,OBNAME,OBCLAS,STEXT,LTEXT
32 CHARACTER*4 NAMV,NAMS,IUSET,IUDET
33 CHARACTER*20 NATMED,NAPART,NAMM
34 DIMENSION UBUF(1),VBUF(10),WBUF(10)
37 IF(OBNAME.EQ.' ')IDPOIN=0
39 IF(BRCLAS.EQ.'VOLU')THEN
41 IF(IDPOIN.EQ.(NVOLUM+1))THEN
45 CALL GFVOLU(IDPOIN,NAMV,NAMS)
48 WRITE(STEXT,'(I12)') IDPOIN
51 ELSEIF(BRCLAS.EQ.'MATE')THEN
54 IF(IDPOIN.EQ.(NMATE+1))THEN
58 CALL GFMATE(IDPOIN,NAMM,A,Z,DENS,RADL,ABSL,UBUF,NWBUF)
59 JMA = LQ(JMATE-IDPOIN)
68 WRITE(STEXT,'(I12)') IDPOIN
74 ELSEIF(BRCLAS.EQ.'TMED')THEN
77 IF(IDPOIN.EQ.(NTMED+1))THEN
81 CALL GFTMED(IDPOIN,NATMED,NMAT,ISVOL,IFIELD,FIELDM, TMAXFD,
82 + STEMAX,DEEMAX,EPSIL,STMIN,UBUF,NWBUF)
86 WRITE(STEXT,'(I12)') IDPOIN
92 ELSEIF(BRCLAS.EQ.'PART')THEN
95 IF(IDPOIN.EQ.(NPART+1))THEN
99 CALL GFPART(IDPOIN,NAPART,ITRTYP,AMASS,CHARGE,TLIFE,
104 WRITE(STEXT,'(I12)') IDPOIN
110 ELSEIF(BRCLAS.EQ.'KINE')THEN
113 IF(IDPOIN.EQ.(NTRACK+1))THEN
117 CALL GFKINE(IDPOIN,VERT,PVERT,IPART,NVERT,WBUF,NWBUF)
119 WRITE(OBNAME,'(I12)') IDPOIN
121 WRITE(STEXT,'(I12)') IDPOIN
127 ELSEIF(BRCLAS.EQ.'HITS')THEN
128 IF(BRPATH.EQ.' ')THEN
136 IF(IDPOIN.EQ.(NSET+1))THEN
140 CALL UHTOC(IQ(JSET+IDPOIN),4,IUSET,4)
141 CALL GLOOK(IUSET,IQ(JSET+1),NSET,ISET)
145 WRITE(STEXT,'(I12)') IDPOIN
155 CALL GLOOK(IUSET,IQ(JSET+1),NSET,ISET)
156 NDET=IQ(LQ(JSET-ISET)-1)
162 IF(IDPOIN.EQ.(NDET+1))THEN
166 CALL UHTOC(IQ(LQ(JSET-ISET)+IDPOIN),4,IUDET,4)
167 CALL GLOOK(IUDET,IQ(LQ(JSET-ISET)+1),NDET,IDET)
171 WRITE(STEXT,'(I12)') IDPOIN
178 ELSEIF(BRCLAS.EQ.'ROTM')THEN
181 IF((IDPOIN.EQ.(IQ(JROTM-2)+1)).OR.JROTM.LE.0)THEN
187 WRITE(OBNAME,'(I12)') IDPOIN
189 WRITE(STEXT,'(I12)') IDPOIN
195 ELSEIF(BRCLAS.EQ.'VIEW')THEN
197 IF(IDPOIN.EQ.(NKVIEW+1))THEN
201 WRITE(OBNAME,'(I12)') IDPOIN
203 WRITE(STEXT,'(I12)') IDPOIN
207 PRINT*,'BRCLAS NOT VALID'