]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HERWIG/src/hwurot.f
Declaring some methods constant.
[u/mrichter/AliRoot.git] / HERWIG / src / hwurot.f
1
2 CDECK  ID>, HWUROT.
3
4 *CMZ :-        -26/04/91  11.11.56  by  Bryan Webber
5
6 *-- Author :    Bryan Webber
7
8 C-----------------------------------------------------------------------
9
10       SUBROUTINE HWUROT(P,CP,SP,R)
11
12 C-----------------------------------------------------------------------
13
14 C     R IS ROTATION MATRIX TO GET FROM VECTOR P TO Z AXIS, FOLLOWED BY
15
16 C     A ROTATION BY PSI ABOUT Z AXIS, WHERE CP = COS-PSI, SP = SIN-PSI
17
18 C-----------------------------------------------------------------------
19
20       DOUBLE PRECISION WN,CP,SP,PTCUT,PP,PT,CT,ST,CF,SF,P(3),R(3,3)
21
22       DATA WN,PTCUT/1.,1.D-20/
23
24       PT=P(1)**2+P(2)**2
25
26       PP=P(3)**2+PT
27
28       IF (PT.LE.PP*PTCUT) THEN
29
30          CT=SIGN(WN,P(3))
31
32          ST=0.
33
34          CF=1.
35
36          SF=0.
37
38       ELSE
39
40          PP=SQRT(PP)
41
42          PT=SQRT(PT)
43
44          CT=P(3)/PP
45
46          ST=PT/PP
47
48          CF=P(1)/PT
49
50          SF=P(2)/PT
51
52       END IF
53
54       R(1,1)= CP*CF*CT+SP*SF
55
56       R(1,2)= CP*SF*CT-SP*CF
57
58       R(1,3)=-CP*ST
59
60       R(2,1)=-CP*SF+SP*CF*CT
61
62       R(2,2)= CP*CF+SP*SF*CT
63
64       R(2,3)=-SP*ST
65
66       R(3,1)= CF*ST
67
68       R(3,2)= SF*ST
69
70       R(3,3)= CT
71
72       END