5 * Revision 1.1.1.1 1995/10/24 10:20:17 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.19 by S.Giani
12 SUBROUTINE GSTMED(KTMED,NATMED,NMAT,ISVOL,IFIELD,FIELDM,TMAXFD,
13 + STEMAX,DEEMAX,EPSIL,STMIN,UBUF,NWBUF)
15 ***********************************************************************
18 * Store tracking media parameters *
20 * Stores the parameters of the tracking medium ITMED in the data*
22 * ITMED tracking medium number 0<ITMED<100 *
23 * NATMED tracking medium name (up to 20 characters ended by $) *
24 * NMAT material number corresponding to ITMED *
25 * ISVOL =0 if not a sensitive volume *
26 * IFIELD = 0 if no magnetic field *
27 * = -1 reserved for user decision in GUSWIM *
28 * = 1 tracking performed with GRKUTA *
29 * = 2 tracking performed with GHELIX *
30 * = 3 tracking performed with GHELX3 *
31 * FIELDM maximum field value (in Kilogauss) *
32 * TMAXFD maximum angle due to field permitted in one step (in*
34 * STEMAX Maximum step allowed *
36 * DEEMAX maximum fractional energy loss in one step *
37 * EPSIL tracking precision (in cm) *
38 * STMIN minimum step due to energy loss or multiple scattering*
40 * UBUF array of NWBUF additional parameters *
44 * The Tracking Medium data structure JTMED *
45 * ---------------------------------------- *
49 * .......................................................... *
50 * | | | | | Standard Trac.media *
51 * .......................................................... *
54 * .......................... *
57 * | 2 | Tracking medium | *
64 * .......................... *
66 * |...|....................| *
68 * |...|....................| *
70 * |...|....................| *
72 * |...|....................| *
74 * |...|....................| *
76 * |...|....................| *
78 * |...|....................| *
80 * |...|....................| *
82 * |...|....................| *
83 * | 15| User words .... | *
84 * .......................... *
85 * JT = LQ(JTMED-ITMED) pointer to tracking medium ITMED *
87 * ==>Called by : <USER>, UGEOM ,<GXINT> GINC3 *
88 * Author R.Brun ********* *
90 ***********************************************************************
92 #include "geant321/gcbank.inc"
93 #include "geant321/gccuts.inc"
94 #include "geant321/gcphys.inc"
95 #include "geant321/gconsp.inc"
96 #include "geant321/gcunit.inc"
97 #include "geant321/gcnum.inc"
98 #include "geant321/gcmzfo.inc"
99 #include "geant321/gctrak.inc"
101 EQUIVALENCE (MECA(1,1),IPAIR)
102 DIMENSION UBUF(1),CUTVEC(10)
103 EQUIVALENCE (CUTVEC,CUTGAM)
107 C. ------------------------------------------------------------------
111 CALL MZBOOK(IXCONS,JTMED,JTMED,1,'TMED',NTMED,NTMED,40,3,0)
112 CALL UCOPY(CUTVEC,Q(JTMED+1),10)
115 Q(JTMED+10+I)=MECA(1,I)
121 IF(ITMED.GT.NTMED)THEN
122 CALL MZPUSH(IXCONS,JTMED,ITMED-NTMED,0,'I')
131 CALL MZDROP(IXCONS,LQ(JTMED-ITMED),' ')
135 CALL MZBOOK(IXCONS,JTM,JTMED,-ITMED,'TMED',10,10,NW,IOTMED,0)
140 IF(NAME(NCH:NCH).EQ.'$')NAME(NCH:NCH)=' '
142 CALL UCTOH(NAME,IQ(JTM+1),4,20)
145 IF(EPSIL.LE.0.0) THEN
146 WRITE(CHMAIL,10000) ITMED, EPSIL
150 IF(IFIELD.NE.0.AND.FIELDM.EQ.0.0) THEN
151 WRITE(CHMAIL,10200) ITMED, IFIELD
154 IF(IGAUTO.NE.0.AND.ITMED.GT.0)THEN
172 IF(NWBUF.GT.0)CALL UCOPY(UBUF,Q(JTM+15),NWBUF)
178 10000 FORMAT('0*** GSTMED *** Warning, medium = ',I5,
179 + ', value of EPSIL=',E10.3,' reset to 1 micron')
180 10100 FORMAT(' *** GSTMED *** Warning, tracking medium redefinition:')
181 10200 FORMAT('0*** GSTMED *** Warning, medium = ',I5,
182 + ', IFIELD = ',I3,' and FIELDM = 0.0 is illegal')