]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/fluka/trans.F
Remove AliTRDconst.h
[u/mrichter/AliRoot.git] / GEANT321 / fluka / trans.F
CommitLineData
fe4da5cc 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 TRANS.FOR
13*COPY TRANS
14* FLUPDATE FORTRAN file
15* These are corrected versions of TRANS and TTRANS which make the
16* correct transformation even in the small-angle, backwards direction
17* Correction installed 11.03.88
18 SUBROUTINE TRANS (XO,YO,ZO,DE,SFE,CFE,X,Y,Z)
19
20#include "geant321/dblprc.inc"
21#include "geant321/dimpar.inc"
22#include "geant321/iounit.inc"
23C********************************************************************
24C VERSION BY J. RANFT
25C LEIPZIG
26C LAST CHANGE 12. APRIL 83 BY PERTTI AARNIO
27C HELSINKI UNIVERSITY OF
28C TECHNOLOGY, FINLAND
29C
30C
31C THIS IS A SUBROUTINE OF FLUKA TO GIVE NEW DIRECTION COSINES
32C
33C INPUT VARIABLES:
34C XO,YO,ZO = ORIGINAL DIRECTION COSINES
35C DE = POLAR (THETA) ANGLE OF "SCATTERING"
36C SFE,CFE = SINE AND COSINE OF THE AZIMUTHAL (PHI) ANGLE
37C OF "SCATTERING"
38C
39C OUTPUT VARIABLES:
40C X,Y,Z = NEW DIRECTION COSINES
41C
42C ROTATION OF COORDINATE SYSTEM (SEE CERN 64-47)
43C
44C DUE TO THE IMPLEMENTATION OF THE MULTIPLE COULOMB SCATTERING
45C ALSO VERY SMALL ANGLES HAVE TO BE TREATED CORRECTLY.
46C NOW SMALL ANGLE APPROXIMATION IS USED PRACTICALLY ONLY
47C WHEN XO AND YO ARE EXACTLY 0.
48C
49C********************************************************************
50C
51*
52 CDE=COS(DE)
53 SDE=SIN(DE)
54 A = XO**2 + YO**2
55 IF ( A .LT. ANGLSQ ) THEN
56 X=SDE*CFE
57 Y=SDE*SFE
58C Z=CDE CORRECTED AUGUST 88 PA
59 Z=CDE*ZO
60 ELSE
61 XI=SDE*CFE
62 YI=SDE*SFE
63 ZI=CDE
64 A =SQRT(A)
65 X=-YO*XI/A-ZO*XO*YI/A+XO*ZI
66 Y=XO*XI/A-ZO*YO*YI/A+YO*ZI
67 Z=A*YI+ZO*ZI
68 END IF
69 RETURN
70 END