5 * Revision 1.1.1.1 1995/10/24 10:21:34 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/03 11/10/94 19.56.01 by S.Giani
14 C. ******************************************************************
16 C. * Simulation of synchrotron radiation for e- and e+. *
18 C. * ==> Called by : GTELEC *
19 C. * Authors : Igor Gavrilenko *
21 C. ******************************************************************
23 #include "geant321/gcphys.inc"
24 #include "geant321/gctrak.inc"
25 #include "geant321/gckine.inc"
26 #include "geant321/gcking.inc"
27 #include "geant321/gctmed.inc"
28 #include "geant321/gccuts.inc"
30 DIMENSION ETR(100),STR(100),VECTS(7),VECTN(7),FLD(3)
32 IF(ABS(CHARGE).NE.1..OR.STEP.LE.0.) GO TO 999
34 IF(GAMMA.LE.1000. ) GO TO 999
43 FLDS2 = FLD(1)**2+FLD(2)**2+FLD(3)**2
44 IF(FLDS2.LE.1E-10) GO TO 999
46 + (VECT(4)*FLD(1)+VECT(5)*FLD(2)+VECT(6)*FLD(3))**2)
48 CALL GSYNGE(GAMMA,AMASS,FLDT,STEP,NTR,ETR,STR)
49 IF(NTR.EQ.0) GO TO 999
53 C When SYNC=1 the generation point of the photons is the current
55 C When SYNC=3, the generation point of the photon is distributed
56 C along the real trajectory of the particle (not along the step
57 C taken) computed by GUSWIM.
59 IF (ISYNC.NE.2.AND.ETR(N).GT.CUTGAM) THEN
61 IF(NGKINE.GT.MXGKIN) GO TO 20
63 GKIN(1,NGKINE) = ETR(N)*VECT(4)
64 GKIN(2,NGKINE) = ETR(N)*VECT(5)
65 GKIN(3,NGKINE) = ETR(N)*VECT(6)
66 GKIN(4,NGKINE) = ETR(N)
68 GPOS(1,NGKINE) = VECT(1)
69 GPOS(2,NGKINE) = VECT(2)
70 GPOS(3,NGKINE) = VECT(3)
72 ELSE IF (ISYNC.EQ.3) THEN
80 CALL GUSWIM(1.,STR(N),VECTS,VECTN)
81 GKIN(1,NGKINE) = -ETR(N)*VECTN(4)
82 GKIN(2,NGKINE) = -ETR(N)*VECTN(5)
83 GKIN(3,NGKINE) = -ETR(N)*VECTN(6)
84 GKIN(4,NGKINE) = ETR(N)
86 GPOS(1,NGKINE) = VECTN(1)
87 GPOS(2,NGKINE) = VECTN(2)
88 GPOS(3,NGKINE) = VECTN(3)
92 DESTEP = DESTEP +ETR(N)
97 C..Update the energy of the primary particle
99 20 GETOT = GETOT-ELOSS
101 VECT(7) = SQRT(GEKIN*(GEKIN+2.*AMASS))