]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
62be6b28 | 5 | * Revision 1.1.1.1 1999/05/18 15:55:20 fca |
6 | * AliRoot sources | |
7 | * | |
fe4da5cc | 8 | * Revision 1.1.1.1 1995/10/24 10:21:33 cernlib |
9 | * Geant | |
10 | * | |
11 | * | |
12 | #include "geant321/pilot.h" | |
13 | #if defined(CERNLIB_NEVER) | |
14 | *CMZ : 3.21/02 29/03/94 15.41.23 by S.Giani | |
15 | *-- Author : | |
16 | SUBROUTINE GRANGI | |
17 | C. | |
18 | C. ****************************************************************** | |
19 | C. * * | |
20 | C. * Calculates the stopping range , in cm. * | |
21 | C. * (i.e. the maximum step due to the continuous energy loss) * | |
22 | C. * The stopping range is the integral of the inverse of the * | |
23 | C. * DE/DX table. * | |
24 | C. * There are 4 tables : electron,positron,muon,proton * | |
25 | C. * * | |
26 | C. * ==>Called by : GPHYSI * | |
27 | C. * Author M.Maire ********* * | |
28 | C. * * | |
29 | C. ****************************************************************** | |
30 | C. | |
31 | #include "geant321/gcbank.inc" | |
32 | #include "geant321/gctrak.inc" | |
33 | #include "geant321/gcjloc.inc" | |
34 | #include "geant321/gcmulo.inc" | |
35 | #include "geant321/gconsp.inc" | |
36 | #include "geant321/gcmate.inc" | |
37 | * | |
38 | DO 50 IEKBIN=1,NEK1 | |
39 | * | |
40 | * *** Electrons | |
41 | * | |
42 | JLOSS = LQ(JMA-1) | |
43 | JRANG = LQ(JMA-15) | |
44 | IF (Z.LT.1.) THEN | |
45 | Q(JRANG+IEKBIN) = BIG | |
46 | ELSE IF ((IEKBIN.EQ.1).OR.(Q(JLOSS+IEKBIN-1).LE.0.)) THEN | |
47 | Q(JRANG+IEKBIN) = 0. | |
48 | ELSE | |
49 | DEBIN=ELOW(IEKBIN) - ELOW(IEKBIN-1) | |
50 | FRACT= Q(JLOSS+IEKBIN)/Q(JLOSS+IEKBIN-1) - 1. | |
51 | IF (ABS(FRACT).GE.0.1) THEN | |
52 | DRANG=DEBIN/(Q(JLOSS+IEKBIN)-Q(JLOSS+IEKBIN-1)) | |
53 | DRANG=DRANG*LOG(1.+FRACT) | |
54 | ELSE | |
55 | DRANG=DEBIN/Q(JLOSS+IEKBIN-1) | |
56 | DRANG= DRANG*(1. - 0.5*FRACT + 0.3333*FRACT*FRACT) | |
57 | ENDIF | |
58 | Q(JRANG+IEKBIN)=Q(JRANG+IEKBIN-1) + DRANG | |
59 | ENDIF | |
60 | * | |
61 | * *** Positons | |
62 | * | |
63 | JLOSS = LQ(JMA-1) + NEK1 | |
64 | JRANG = LQ(JMA-15) + NEK1 | |
65 | IF (Z.LT.1.) THEN | |
66 | Q(JRANG+IEKBIN) = BIG | |
67 | ELSE IF ((IEKBIN.EQ.1).OR.(Q(JLOSS+IEKBIN-1).LE.0.)) THEN | |
68 | Q(JRANG+IEKBIN) = 0. | |
69 | ELSE | |
70 | DEBIN=ELOW(IEKBIN) - ELOW(IEKBIN-1) | |
71 | FRACT= Q(JLOSS+IEKBIN)/Q(JLOSS+IEKBIN-1) - 1. | |
72 | IF (ABS(FRACT).GE.0.1) THEN | |
73 | DRANG=DEBIN/(Q(JLOSS+IEKBIN)-Q(JLOSS+IEKBIN-1)) | |
74 | DRANG=DRANG*LOG(1.+FRACT) | |
75 | ELSE | |
76 | DRANG=DEBIN/Q(JLOSS+IEKBIN-1) | |
77 | DRANG= DRANG*(1. - 0.5*FRACT + 0.3333*FRACT*FRACT) | |
78 | ENDIF | |
79 | Q(JRANG+IEKBIN)=Q(JRANG+IEKBIN-1) + DRANG | |
80 | ENDIF | |
81 | * | |
82 | * *** Muons | |
83 | * | |
84 | JLOSS = LQ(JMA-2) | |
85 | JRANG = LQ(JMA-16) | |
86 | IF (Z.LT.1.) THEN | |
87 | Q(JRANG+IEKBIN) = BIG | |
88 | ELSE IF ((IEKBIN.EQ.1).OR.(Q(JLOSS+IEKBIN-1).LE.0.)) THEN | |
89 | Q(JRANG+IEKBIN) = 0. | |
90 | ELSE | |
91 | DEBIN=ELOW(IEKBIN) - ELOW(IEKBIN-1) | |
92 | FRACT= Q(JLOSS+IEKBIN)/Q(JLOSS+IEKBIN-1) - 1. | |
93 | IF (ABS(FRACT).GE.0.1) THEN | |
94 | DRANG=DEBIN/(Q(JLOSS+IEKBIN)-Q(JLOSS+IEKBIN-1)) | |
95 | DRANG=DRANG*LOG(1.+FRACT) | |
96 | ELSE | |
97 | DRANG=DEBIN/Q(JLOSS+IEKBIN-1) | |
98 | DRANG= DRANG*(1. - 0.5*FRACT + 0.3333*FRACT*FRACT) | |
99 | ENDIF | |
100 | Q(JRANG+IEKBIN)=Q(JRANG+IEKBIN-1) + DRANG | |
101 | ENDIF | |
102 | * | |
103 | * *** Protons | |
104 | * | |
105 | JLOSS = LQ(JMA-3) | |
106 | JRANG = LQ(JMA-16) + NEK1 | |
107 | IF (Z.LT.1.) THEN | |
108 | Q(JRANG+IEKBIN) = BIG | |
109 | ELSE IF ((IEKBIN.EQ.1).OR.(Q(JLOSS+IEKBIN-1).LE.0.)) THEN | |
110 | Q(JRANG+IEKBIN) = 0. | |
111 | ELSE | |
112 | DEBIN=ELOW(IEKBIN) - ELOW(IEKBIN-1) | |
113 | FRACT= Q(JLOSS+IEKBIN)/Q(JLOSS+IEKBIN-1) - 1. | |
114 | IF (ABS(FRACT).GE.0.1) THEN | |
115 | DRANG=DEBIN/(Q(JLOSS+IEKBIN)-Q(JLOSS+IEKBIN-1)) | |
116 | DRANG=DRANG*LOG(1.+FRACT) | |
117 | ELSE | |
118 | DRANG=DEBIN/Q(JLOSS+IEKBIN-1) | |
119 | DRANG= DRANG*(1. - 0.5*FRACT + 0.3333*FRACT*FRACT) | |
120 | ENDIF | |
121 | Q(JRANG+IEKBIN)=Q(JRANG+IEKBIN-1) + DRANG | |
122 | ENDIF | |
123 | 50 CONTINUE | |
124 | * | |
125 | END | |
62be6b28 | 126 | #else |
127 | SUBROUTINE GRANGI1_DUMMY | |
128 | END | |
fe4da5cc | 129 | #endif |