Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / fluka / ttrans.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:20:04  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.44  by  S.Giani
11 *-- Author :
12 *$ CREATE TTRANS.FOR
13 *COPY TTRANS
14       SUBROUTINE TTRANS(XO,YO,ZO,CDE,SDE,SFE,CFE,X,Y,Z)
15  
16 #include "geant321/dblprc.inc"
17 #include "geant321/dimpar.inc"
18 #include "geant321/iounit.inc"
19 C********************************************************************
20 C     VERSION BY                     J. RANFT
21 C                                    LEIPZIG
22 C
23 C     THIS IS A SUBROUTINE OF FLUKA TO GIVE NEW DIRECTION COSINES
24 C
25 C     INPUT VARIABLES:
26 C        XO,YO,ZO = ORIGINAL DIRECTION COSINES
27 C        CDE,SDE  = COSINE AND SINE OF THE POLAR (THETA)
28 C                   ANGLE OF "SCATTERING"
29 C        SDE      = SINE OF THE POLAR (THETA) ANGLE OF "SCATTERING"
30 C        SFE,CFE  = SINE AND COSINE OF THE AZIMUTHAL (PHI) ANGLE
31 C                   OF "SCATTERING"
32 C
33 C     OUTPUT VARIABLES:
34 C        X,Y,Z     = NEW DIRECTION COSINES
35 C
36 C     ROTATION OF COORDINATE SYSTEM (SEE CERN 64-47 )
37 C********************************************************************
38 C
39 *
40 *  Changed by A. Ferrari
41 *
42       A = XO**2 + YO**2
43       IF ( A .LT. ANGLSQ ) THEN
44          X=SDE*CFE
45          Y=SDE*SFE
46 C     Z=CDE CORRECTED AUGUST 88 PA
47          Z=CDE*ZO
48       ELSE
49          XI=SDE*CFE
50          YI=SDE*SFE
51          ZI=CDE
52          A=SQRT(A)
53          X=-YO*XI/A-ZO*XO*YI/A+XO*ZI
54          Y=XO*XI/A-ZO*YO*YI/A+YO*ZI
55          Z=A*YI+ZO*ZI
56       END IF
57       RETURN
58       END