]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gcons/gsmixt.F
Some function moved to AliZDC
[u/mrichter/AliRoot.git] / GEANT321 / gcons / gsmixt.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:20:17 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.19 by S.Giani
11*-- Author :
12 SUBROUTINE GSMIXT(IMAT,NAMATE,A,Z,DENS,NLMAT,WMAT)
13C.
14C. ******************************************************************
15C. * *
16C. * Defines mixture OR COMPOUND IMAT as composed by *
17C. * THE BASIC NLMAT materials defined by arrays A,Z and WMAT *
18C. * *
19C. * If NLMAT.GT.0 then WMAT contains the PROPORTION BY *
20C. * WEIGTHS OF EACH BASIC MATERIAL IN THE MIXTURE. *
21C. * *
22C. * If NLMAT.LT.0 then WMAT contains the number of atoms *
23C. * of a given kind into the molecule of the COMPOUND *
24C. * In this case, WMAT in output is changed to relative *
25C. * weigths. *
26C. * *
27C. * nb : the radiation length is computed according *
28C. * the EGS manual slac-210 uc-32 June-78 *
29C. * formula 2-6-8 (37) *
30C. * *
31C. * ==>Called by : <USER>, UGEOM *
32C. * Authors R.Brun, M.Maire ********* *
33C. * *
34C. ******************************************************************
35C.
36#include "geant321/gcbank.inc"
37#include "geant321/gcnum.inc"
38#include "geant321/gcunit.inc"
39#include "geant321/gcmzfo.inc"
40 DIMENSION WMAT(1),A(1),Z(1)
41 CHARACTER*(*) NAMATE
42 CHARACTER*20 NAME
43 DATA ALR2AV , AL183 / 1.39621E-03 , 5.20948 /
44C.
45C. ------------------------------------------------------------------
46C.
47 IF (IMAT.LE.0)GO TO 99
48 IF(JMATE.LE.0)THEN
49 CALL MZBOOK(IXCONS,JMATE,JMATE,1,'MATE',NMATE,NMATE,0,3,0)
50 IQ(JMATE-5)=0
51 ENDIF
52 IF(IMAT.GT.NMATE)THEN
53 CALL MZPUSH(IXCONS,JMATE,IMAT-NMATE,0,'I')
54 NMATE=IMAT
55 JMA1=0
56 ELSE
57 JMA1=LQ(JMATE-IMAT)
58 IF(JMA1.GT.0) THEN
59 WRITE(CHMAIL,10000)
60 CALL GMAIL(1,0)
61 CALL GPMATE(IMAT)
62 CALL MZDROP(IXCONS,LQ(JMATE-IMAT),' ')
63 ENDIF
64 ENDIF
65 CALL MZBOOK(IXCONS,JMA,JMATE,-IMAT,'MATE',20,20,11,IOMATE,0)
66C
67 NAME=NAMATE
68 NCH=LNBLNK(NAME)
69 IF(NCH.GT.0)THEN
70 IF(NAME(NCH:NCH).EQ.'$')NAME(NCH:NCH)=' '
71 ENDIF
72 CALL UCTOH(NAME,IQ(JMA+1),4,20)
73C
74C Store mixture parameters
75C and parameter for Pair/Brems and
76C Photoelectric routines
77C
78 NLM = IABS(NLMAT)
79 IF (NLM.LE.0)GO TO 90
80 CALL MZBOOK(IXCONS,JMIXT,JMA,-5,'MAMI',2,2,4*NLM,3,0)
81 CALL MZBOOK(IXCONS,JMI1,JMIXT,-1,'MAM1',0,0,10,3,0)
82 JMA = LQ(JMATE- IMAT)
83 IQ(JMIXT-5)=IMAT
84 IQ(JMI1-5)=IMAT
85C
86C Compute proportion by weigths in the compound
87C
88 IF(NLMAT.LT.0) THEN
89 AMOL = 0.
90 ZMOL = 0.
91 DO 10 I= 1,NLM
92 AMOL = AMOL + WMAT(I)*A(I)
93 ZMOL = ZMOL + WMAT(I)*Z(I)
94 10 CONTINUE
95 DO 20 I= 1,NLM
96 WMAT(I)= WMAT(I)*A(I) / AMOL
97 20 CONTINUE
98 ENDIF
99C
100C Compute effective mixture parameters
101C
102 AEFF = 0.
103 ZEFF = 0.
104 RADINV = 0.
105 DO 40 I = 1,NLM
106 AEFF = AEFF + WMAT(I)*A(I)
107 ZEFF = ZEFF + WMAT(I)*Z(I)
108 ZC = Z(I)
109 ALZ = LOG(ZC)/3.
110 XINV = ZC*(ZC+GXSI(ZC))*(AL183-ALZ-GFCOUL(ZC))/A(I)
111 RADINV = RADINV + WMAT(I)*XINV
112 Q(JMIXT+3*NLM+I)=XINV
113 Q(JMIXT + 2* NLM + I) = WMAT(I)
114 Q(JMIXT + NLM + I) = Z(I)
115 Q(JMIXT + I) = A(I)
116 40 CONTINUE
117 RADINV = ALR2AV * DENS * RADINV
118 RADEFF = 1. / RADINV
119 CALL GHMIX(A,WMAT,NLM,AHEFF)
120 ABSEFF=10000.*AHEFF/(6.022*DENS*GHSIGM(5.,8,AHEFF))
121C
122 Q(JMA + 6) = AEFF
123 Q(JMA + 7) = ZEFF
124 Q(JMA + 8) = DENS
125 Q(JMA + 9) = RADEFF
126 Q(JMA + 10) = ABSEFF
127 Q(JMA + 11) = NLM
128 Q(JMI1 + 1) = AHEFF
129 IF(NLMAT.GT.0)THEN
130 Q(JMI1 + 2) = AEFF
131 Q(JMI1 + 3) = ZEFF
132 ELSE
133 Q(JMI1 + 2) = AMOL
134 Q(JMI1 + 3) = ZMOL
135 ENDIF
136C
137 IF(JMA1.GT.0) THEN
138 CALL GPMATE(-IMAT)
139 ENDIF
140C
141 GO TO 99
142C
143 90 CHMAIL=' ***** GSMIXT ERROR. MIXTURE WITH NO COMPONENTS'
144 CALL GMAIL(0,0)
145C
146 99 RETURN
14710000 FORMAT(' *** GSMIXT ***: Warning, material redefinition:')
148 END