]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gphys/gbremm.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / gphys / gbremm.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:21:22 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.21 by S.Giani
11*-- Author :
12 SUBROUTINE GBREMM
13C.
14C. ******************************************************************
15C. * *
16C. * Simulates discrete hard BREMSSTRAHLUNG by muons. *
17C. * *
18C. * *
19C. * ==>Called by : GTMUON *
20C. * Author L.Urban ********* *
21C. * *
22C. ******************************************************************
23C.
24#include "geant321/gcbank.inc"
25#include "geant321/gcphys.inc"
26#include "geant321/gconsp.inc"
27#include "geant321/gctrak.inc"
28#include "geant321/gcjloc.inc"
29#include "geant321/gckine.inc"
30#include "geant321/gcking.inc"
31#include "geant321/gccuts.inc"
32 DIMENSION RNDM(2)
33C.
34C. ------------------------------------------------------------------
35C.
36C Ensure cut-off avoids infra-red catastrophe.
37C
38 EEM1 = GETOT
39 IF (GEKIN.LE.BCUTM) GO TO 900
40 KCASE = NAMEC(9)
41C
42 C1 = Q(JPROB+31)
43 C2 = Q(JPROB+32)
44 C3 = Q(JPROB+33)
45 VC = BCUTM/EEM1
46 VM = 1.-C3/EEM1
47 IF(VM.LE.0.)GO TO 900
48 CREJ = C2/EEM1
49C
50 50 CALL GRNDM(RNDM,2)
51 R = RNDM(1)
52 V = VC*(VM/VC)**R
53C
54C Compute rejection function
55C
56 V1 = 1.-V
57 F1 = C1-LOG(1.+CREJ*V/V1)
58 SCREJ= (V1+0.75*V*V)*F1/C1
59 IF(RNDM(2).GT.SCREJ)GO TO 50
60C
61C Photon energy
62C
63 EGAMMA=EEM1*V
64C
65C CUT ON ENERGY THRESHOLD ?
66C
67 IF((IBREM.NE.1).OR.(EGAMMA.LE.CUTGAM)) THEN
68 NGKINE = 0
69 DESTEP = DESTEP + EGAMMA
70 GO TO 800
71 ENDIF
72C
73C Generate emitted photon angles with respect to a Z-axis
74C defined along parent track. PHI is generated isotropically
75C and THETA is assigned a universal angular distribution
76C
77 THETA = GBTETH(EEM1, AMASS, V)*AMASS/EEM1
78 SINTH = SIN(THETA)
79 COSTH = COS(THETA)
80 CALL GRNDM(RNDM,1)
81 PHI = TWOPI*RNDM(1)
82 COSPHI = COS(PHI)
83 SINPHI = SIN(PHI)
84C
85C Polar co-ordinates to momentum components.
86C
87 NGKINE = 1
88 GKIN(1,1)=EGAMMA*SINTH*COSPHI
89 GKIN(2,1)=EGAMMA*SINTH*SINPHI
90 GKIN(3,1)=EGAMMA*COSTH
91 GKIN(4,1)=EGAMMA
92 GKIN(5,1)=1.
93 TOFD(1) =0.
94 GPOS(1,1) = VECT(1)
95 GPOS(2,1) = VECT(2)
96 GPOS(3,1) = VECT(3)
97C
98C Rotate photon into GEANT system
99C
100 CALL GVROT(VECT(4),GKIN)
101C
102C Correct track for lost energy
103C
104 800 CONTINUE
105 GEKIN = GEKIN - EGAMMA
106 GETOT = GEKIN + AMASS
107 VECT(7)=SQRT (ABS((GETOT+AMASS)*GEKIN))
108 CALL GEKBIN
109C
110C Update probabilities
111C
112 900 CALL GRNDM(RNDM,1)
113 ZINTBR=-LOG(RNDM(1))
114 SLBREM=SLENG
115 STEPBR=BIG
116C
117 END