]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/gphys/gphal2.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / gphys / gphal2.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:21:29  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.22  by  S.Giani
11 *-- Author :
12       FUNCTION GPHAL2(BET)
13 C.
14 C.    ******************************************************************
15 C.    *                                                                *
16 C.    *  Generates Photoelectron Angular ditribution from L2 shell     *
17 C.    *                                                                *
18 C.    *    ==>CALLED BY : GPHOT                                        *
19 C.    *       AUTHOR    : J. Chwastowski                               *
20 C.    *                                                                *
21 C.    ******************************************************************
22 C.
23       DOUBLE PRECISION SAUT1,SAUT2,SAUT3,SAUT4,SAUT5,SAUT6,SAUT7
24       DOUBLE PRECISION S1,S2,S3,S4,S5,S6,S7,ONE,HALF
25       DOUBLE PRECISION COST,SIN2T,X,XI,XI2,XI3,ANOR,DRN
26       DOUBLE PRECISION GAMA,G1,G2,G3,G4,G5,BETA,B1
27       DOUBLE PRECISION BETVAL,AMAJOR
28       PARAMETER(BETMAX=0.999999)
29       PARAMETER (ONE=1,HALF=ONE/2)
30       DIMENSION BETVAL(15),AMAJOR(15),RAN(2)
31       DATA BETVAL / 0.0101,0.101,0.2,0.301,0.401,0.501
32      +             ,0.601,0.701,0.801,0.901,0.9901,0.99901
33      +             ,0.999901,0.9999901,0.99999901 /
34       DATA AMAJOR / 2.05,2.2,2.4,2.6,2.72,3.0,3.2,3.6
35      +             ,4.4,6.2,25.,88.,280.,900.,2880. /
36       DATA ANOR / 0.0 /
37       BETA = MIN(BET,BETMAX)
38       B1 = ONE-BETA
39       G2 = ONE/((ONE-BETA)*(ONE+BETA))
40       GAMA = SQRT(G2)
41       G3 = G2*GAMA
42       G4 = G2**2
43       G5 = G4*GAMA
44       G1 = GAMA-ONE
45       DO 10 I = 1,15
46        IF(BETA.LE.BETVAL(I)) THEN
47         ANOR = AMAJOR(I)*G5
48         GO TO 20
49        ENDIF
50    10 CONTINUE
51    20 CONTINUE
52       ANOR = ONE/ANOR
53       S1 = HALF*GAMA*(3*GAMA+1)
54       S2 = -0.125D0*G2*(9*G2+30*GAMA-7)
55       S3 = 0.25D0*G3*(G3+6*G2+11*GAMA-2)
56       S4 = -.125D0*G4*G1*(GAMA+7)
57       S5 = 2*(GAMA+ONE)
58       S6 = 2*GAMA*(GAMA+ONE)
59       S7 = 0.125D0*G4*BETA**2*(3*GAMA+ONE)
60       GPHAL2 = 0.0
61    30 CONTINUE
62       CALL GRNDM(RAN,2)
63       DRN = 2*RAN(1)
64       COST = (DRN-B1)/(DRN*BETA+B1)
65       X = ONE-BETA*COST
66       XI  = ONE/X
67       XI2 = XI**2
68       XI3 = XI**3
69       SIN2T = (ONE-COST)*(ONE+COST)
70       SAUT1 = S1*XI2
71       SAUT2 = S2*XI
72       SAUT3 = S3
73       SAUT4 = S4*X
74       SAUT5 = S5*XI3-S6*XI2-S7*XI
75       SAUT6 = SAUT5*SIN2T
76       SAUT7 = (SAUT1+SAUT2+SAUT3+SAUT4+SAUT6)*ANOR
77       IF(RAN(2).GT.SAUT7) GO TO 30
78       GPHAL2 = COST
79       END