5 * Revision 1.1.1.1 1995/10/24 10:21:29 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.22 by S.Giani
14 C. ******************************************************************
16 C. * GENERATES PHOTO ELECTRIC MECHANISM *
17 C. * Corrected version of L. Urban's routine. *
19 C. * 1. Angular distributions of photoelectrons from K-L3 shells *
20 C. * 2. Generation of shell decay mode *
21 C. * 3. Probability of interactioon with a shell = function *
22 C. * of photon energy *
24 C. * ==>CALLED BY : GTGAMA *
25 C. * AUTHOR : J. Chwastowski *
27 C. ******************************************************************
29 #include "geant321/gcbank.inc"
30 #include "geant321/gctrak.inc"
31 #include "geant321/gcphys.inc"
32 #include "geant321/gconsp.inc"
33 #include "geant321/gcking.inc"
34 #include "geant321/gccuts.inc"
35 #include "geant321/gcjloc.inc"
36 #include "geant321/gcunit.inc"
37 DIMENSION POT(4),PROB(4),RNA(9)
38 EQUIVALENCE (RNA(1),RN01),(RNA(2),RN02),(RNA(3),RN03)
39 EQUIVALENCE (RNA(4),RN04),(RNA(5),RN05),(RNA(6),RN06)
40 EQUIVALENCE (RNA(7),RN07),(RNA(8),RN08),(RNA(9),RN09)
41 EQUIVALENCE (POT(1),POTK),(POT(2),POTL1)
42 EQUIVALENCE (POT(3),POTL2),(POT(4),POTL3)
43 EQUIVALENCE (PROB(1),PROBK),(PROB(2),PROBL1)
44 EQUIVALENCE (PROB(3),PROBL2),(PROB(4),PROBL3)
45 SAVE ZINOLD,POT,NSHELL
48 C. ------------------------------------------------------------------
54 C Check if the photoelectric effect was activated. If not deposit
59 DESTEP = DESTEP + VECT(7)
82 NUSED = Q(JPHFN+1)*5+1
87 NUSED = Q(JPHFN+1)*5+1
91 C COPY SHELLS POTENTIALS FROM THE ZEBRA STUCTURE
92 C Check if this atom was used in last entry
93 IF(ZINT.NE.ZINOLD) THEN
100 C Check if E-gamma is bigger than the L3 ionization potential.
101 C This will make GPHOT a little faster.
108 C If ZINT < 5 we can have K shell only, so
116 C The probabilities given below come from crude approximation
117 C It uses the jump ratios and assumes that they are valid for the whole energy
126 BETAL3 = SQRT(E3*(E3+2.0*EMASS))/(E+EMASS)
129 BETAL2 = SQRT(E2*(E2+2.0*EMASS))/(E+EMASS)
131 PROBL3 = GAVRL3(GAMAL3,BETAL3,EFRAC)
132 PROBL2 = GAVRL2(GAMAL2,BETAL2,EFRAC)
133 ANOR = 1./(PROBL3+PROBL2)
137 IF(RN02.LT.PROBL3) THEN
145 C Parametrization of L1 jump ratio gives constant 1.2
148 PROBL2 = (1.-PROBL1)*PROBL2
149 PROBL3 = (1.-PROBL1)*PROBL3
151 PROBK = 125./ZINT+3.5
153 PROBL1 = (1.-PROBK)*PROBL1
154 PROBL2 = (1.-PROBK-PROBL1)*PROBL2
155 PROBL3 = (1.-PROBK-PROBL1)*PROBL3
157 IF(POTL3.LE.0.0) PROBL3 = 0.0
158 IF(POTL2.LE.0.0) PROBL2 = 0.0
159 IF(POTL1.LE.0.0) PROBL1 = 0.0
160 ANOR = PROBK+PROBL1+PROBL2+PROBL3
164 PROBL1 = PROBL1*ANOR+PROBK
165 PROBL2 = PROBL2*ANOR+PROBL1
166 PROBL3 = PROBL3*ANOR+PROBL2
169 IF(RN02.LE.PROBK) THEN
172 ELSEIF(RN02.LE.PROBL1) THEN
175 ELSEIF(RN02.LE.PROBL2) THEN
183 IF(TK.LE.CUTELE) ISHELL = -ISHELL
186 C None of the shells was chosen because of the CUTELE
190 ELSEIF(ISHELL.EQ.0) THEN
191 DESTEP = DESTEP+VECT(7)
199 C ENERGY AND MOMENTUM OF PHOTOELECTRON
202 PEL=SQRT((TK+2.*EMASS)*TK)
208 ELSEIF(ISHELL.EQ.2) THEN
210 ELSEIF(ISHELL.EQ.3) THEN
212 ELSEIF(ISHELL.EQ.4) THEN
218 SINT = SQRT((1.-COST)*(1.+COST))
219 GKIN(1,NGKINE) = PEL*SINT*COSPHI
220 GKIN(2,NGKINE) = PEL*SINT*SINPHI
221 GKIN(3,NGKINE) = PEL*COST
225 GPOS(1,NGKINE) = VECT(1)
226 GPOS(2,NGKINE) = VECT(2)
227 GPOS(3,NGKINE) = VECT(3)
229 C ROTATE ELECTRON AND SCATTERED PHOTON INTO GEANT SYSTEM
231 CALL GVROT(VECT(4),GKIN)
235 IF(ZINT.GE.5.AND.POT(ISHELL).GT.MIN(CUTGAM,CUTELE)) THEN
236 C Generate shell decay mode
237 IF(RN04.LE.Q(JFN+1+NSHELL+ISHELL)) THEN
238 IF(POT(ISHELL).LE.CUTGAM) THEN
239 DESTEP = DESTEP+POT(ISHELL)
241 C Radiative shell decay
242 JS = JFN+1+2*NSHELL+ISHELL
246 IF(RN05.LT.Q(JS+I)) THEN
247 TSEC = Q(JS+NPOINT+I)
248 IF(TSEC.GT.CUTGAM) THEN
254 SINT = SQRT((1.-COST)*(1.+COST))
255 GKIN(1,NGKINE) = TSEC*SINT*COSPHI
256 GKIN(2,NGKINE) = TSEC*SINT*SINPHI
257 GKIN(3,NGKINE) = TSEC*COST
258 GKIN(4,NGKINE) = TSEC
261 GPOS(1,NGKINE) = VECT(1)
262 GPOS(2,NGKINE) = VECT(2)
263 GPOS(3,NGKINE) = VECT(3)
265 DESTEP = DESTEP+ABS(TSEC)
267 C The following particle forces the energy conservation
268 TSEC = POT(ISHELL)-ABS(TSEC)
269 IF(TSEC.GT.CUTGAM) THEN
275 SINT = SQRT((1.-COST)*(1.+COST))
276 GKIN(1,NGKINE) = TSEC*SINT*COSPHI
277 GKIN(2,NGKINE) = TSEC*SINT*SINPHI
278 GKIN(3,NGKINE) = TSEC*COST
279 GKIN(4,NGKINE) = TSEC
282 GPOS(1,NGKINE) = VECT(1)
283 GPOS(2,NGKINE) = VECT(2)
284 GPOS(3,NGKINE) = VECT(3)
294 IF(POT(ISHELL).LE.CUTELE) THEN
295 DESTEP = DESTEP+POT(ISHELL)
298 JS = JFN+1+3*NSHELL+ISHELL
302 IF(RN05.LT.Q(JS+I)) THEN
303 TSEC = Q(JS+NPOINT+I)
304 IF(TSEC.GT.CUTELE) THEN
306 PEL=SQRT((TSEC+2.*EMASS)*TSEC)
312 SINT = SQRT((1.-COST)*(1.+COST))
313 GKIN(1,NGKINE) = PEL*SINT*COSPHI
314 GKIN(2,NGKINE) = PEL*SINT*SINPHI
315 GKIN(3,NGKINE) = PEL*COST
319 GPOS(1,NGKINE) = VECT(1)
320 GPOS(2,NGKINE) = VECT(2)
321 GPOS(3,NGKINE) = VECT(3)
323 DESTEP = DESTEP+ABS(TSEC)
325 C The following particle forces the energy conservation
326 TSEC = POT(ISHELL)-ABS(TSEC)
327 IF(TSEC.GT.CUTGAM) THEN
333 SINT = SQRT((1.-COST)*(1.+COST))
334 GKIN(1,NGKINE) = TSEC*SINT*COSPHI
335 GKIN(2,NGKINE) = TSEC*SINT*SINPHI
336 GKIN(3,NGKINE) = TSEC*COST
337 GKIN(4,NGKINE) = TSEC
340 GPOS(1,NGKINE) = VECT(1)
341 GPOS(2,NGKINE) = VECT(2)
342 GPOS(3,NGKINE) = VECT(3)
353 DESTEP = DESTEP+POT(ISHELL)