]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/ggeom/gfcoor.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / ggeom / gfcoor.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:20:48  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.28  by  S.Giani
11 *-- Author :
12       SUBROUTINE GFCOOR(X,IAXIS,C)
13 C.
14 C.    *****************************************************************
15 C.    *                                                               *
16 C.    *    ROUTINE TO COMPUTE THE COORDINATE C CORRESPONDING TO THE   *
17 C.    *    AXIS IAXIS FOR THE POINT X(1-3).                           *
18 C.    *        IAXIS = 1 IS THE USUAL X AXIS ------>  X(1)            *
19 C.    *        IAXIS = 2 IS THE USUAL Y AXIS ------>  X(2)            *
20 C.    *        IAXIS = 3 IS THE USUAL Z AXIS ------>  X(3)            *
21 C.    *        IAXIS = 4 IS THE X,Y PLANE R VALUE.                    *
22 C.    *        IAXIS = 5 IS THE FULL X,Y,Z R VALUE.                   *
23 C.    *        IAXIS = 6 IS AZIMUTH PHI (ANGLE IN X,Y PLANE).         *
24 C.    *        IAXIS = 7 IS THE POLAR ANGLE THETA (R,Z PLANE).        *
25 C.    *                                                               *
26 C.    *    ==>Called by : GFTRAC, GINVOL, GMEDIA, GNEXT, GTMEDI,      *
27 C.    *                  GTNEXT                                       *
28 C.    *         Author  A.McPherson  *********                        *
29 C.    *                                                               *
30 C.    *****************************************************************
31 C.
32 #include "geant321/gconsp.inc"
33 #include "geant321/gcunit.inc"
34       DIMENSION X(*)
35 C.
36 C.         ----------------------------------------------------
37 C.
38       IF(IAXIS.LE.0.OR.IAXIS.GE.8) THEN
39          WRITE(CHMAIL,10000) IAXIS
40          CALL GMAIL(0,0)
41 *
42       ELSEIF(IAXIS.LE.3) THEN
43          C=X(IAXIS)
44 *
45       ELSEIF(IAXIS.EQ.4) THEN
46          C=X(1)*X(1)+X(2)*X(2)
47          IF(C.GT.0.0) C=SQRT(C)
48 *
49       ELSEIF(IAXIS.EQ.5) THEN
50          C=X(1)*X(1)+X(2)*X(2)+X(3)*X(3)
51          IF(C.GT.0.0) C=SQRT(C)
52 *
53       ELSEIF(IAXIS.EQ.6) THEN
54          C=0.0
55          IF(ABS(X(1)).GE.1.0E-10.AND.ABS(X(2)).GE.1.0E-10) THEN
56             C=ATAN2(X(2),X(1))*RADDEG
57          ELSEIF(ABS(X(4)).GE.1.0E-10.AND.ABS(X(5)).GE.1.0E-10) THEN
58             C=ATAN2(X(5),X(4))*RADDEG
59          ENDIF
60          IF(C.LT.0.0) C=C+360.0
61 *
62       ELSEIF(IAXIS.EQ.7) THEN
63          C=90.0
64          IF(ABS(X(3)).LT.1.0E-10) GO TO 999
65          R=X(1)*X(1)+X(2)*X(2)
66          IF(R.GT.0.0) R=SQRT(R)
67          C=ATAN2(R,X(3))*RADDEG
68          IF(C.LT.0.0) C=C+180.0
69          IF(C.EQ.0.0.AND.X(3).LE.0.0) C=180.0
70 *
71       ENDIF
72 10000 FORMAT(' ***** GFCOOR: IAXIS =',I5,' NOT SUPPORTED *****')
73   999 END