]>
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:35 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 GSYNIT | |
17 | C | |
18 | C Preperation of synchrotron radiation tables. | |
19 | C This routine can be used to compute the YT and FTI used | |
20 | C in GSYNGE. | |
21 | C Author: Igor Gavrilenko | |
22 | C | |
23 | COMMON /SYNTAB/ YT(54),FT(54),FTI(53) | |
24 | EXTERNAL BK53,BKS53 | |
25 | DOUBLE PRECISION YM,YMA,EPS,XX | |
26 | C... | |
27 | DATA EPS/.0001/ | |
28 | C... | |
29 | L = 0 | |
30 | YS = .000001 | |
31 | DO 20 I = 1,6 | |
32 | YS = YS*10. | |
33 | DO 10 J = 1,9,1 | |
34 | L = L+1 | |
35 | YM = J*YS | |
36 | YT(L) = YM | |
37 | YMA = YM+YS | |
38 | IF(L.EQ.54) YMA = 20. | |
39 | FT(L) = DGAUSS(BK53,YM,YMA,EPS) | |
40 | 10 CONTINUE | |
41 | 20 CONTINUE | |
42 | C... | |
43 | DO 30 I = 53,1,-1 | |
44 | FT(I) = FT(I)+FT(I+1) | |
45 | 30 CONTINUE | |
46 | C... | |
47 | DO 40 I = 53,1,-1 | |
48 | YM = YT(I) | |
49 | YMA = YT(I+1) | |
50 | IF(I.LT.53) FTI(I) = DGAUSS(BKS53,YM,YMA,EPS)+FTI(I+1) | |
51 | IF(I.EQ.53) FTI(I) = DGAUSS(BKS53,YM,YMA,EPS) | |
52 | 40 CONTINUE | |
53 | C... | |
54 | E N D | |
55 | C------------------------------------------------------- | |
56 | DOUBLE PRECISION FUNCTION B K 5 3 (X) | |
57 | C | |
58 | DOUBLE PRECISION X | |
59 | C... | |
60 | BK53 = 4./(3.*X)*DBSKR3(X,2)+DBSKR3(X,1) | |
61 | RETURN | |
62 | E N D | |
63 | C------------------------------------------------------ | |
64 | DOUBLE PRECISION FUNCTION B K S 5 3 (X) | |
65 | C | |
66 | COMMON /SYNTAB/ YT(54),FT(54),FTI(53) | |
67 | DOUBLE PRECISION X | |
68 | C... | |
69 | IF(X.GT.YT(1)) GO TO 10 | |
70 | BKS53 = FT(1) | |
71 | GO TO 60 | |
72 | C... | |
73 | 10 IF(X.LT.YT(54)) GO TO 20 | |
74 | BKS53 = 0. | |
75 | RETURN | |
76 | C... | |
77 | 20 K1 = 1 | |
78 | K2 = 54 | |
79 | 30 K = (K1+K2)/2 | |
80 | IF(X.GT.YT(K)) K1 = K | |
81 | IF(X.LT.YT(K)) K2 = K | |
82 | IF(X.NE.YT(K)) GO TO 40 | |
83 | BKS53 = FT(K) | |
84 | GO TO 60 | |
85 | C... | |
86 | 40 IF(K2-K1.GT.1) GO TO 30 | |
87 | F1 = FT(K1) | |
88 | F2 = FT(K2) | |
89 | X1 = YT(K1) | |
90 | X2 = YT(K2) | |
91 | C... | |
92 | IF(X.LE.1.) THEN | |
93 | X1 = LOG(X1) | |
94 | X2 = LOG(X2) | |
95 | B = F1+(F2-F1)/(X2-X1)*(LOG(X)-X1) | |
96 | GO TO 50 | |
97 | ENDIF | |
98 | C... | |
99 | IF(X.GT.1.) THEN | |
100 | F1 = LOG(F1) | |
101 | F2 = LOG(F2) | |
102 | B = F1+(F2-F1)/(X2-X1)*(X-X1) | |
103 | B = EXP(B) | |
104 | ENDIF | |
105 | C... | |
106 | 50 BKS53 = B | |
107 | 60 BKS53 = .1909859*BKS53 | |
108 | RETURN | |
109 | E N D | |
62be6b28 | 110 | #else |
111 | SUBROUTINE GSYNIT_DUMMY | |
112 | END | |
fe4da5cc | 113 | #endif |