]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/ggeom/gdtom.F
Minor corrections after big transformer changes
[u/mrichter/AliRoot.git] / GEANT321 / ggeom / gdtom.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 GDTOM(XD,XM,IFLAG)
13 C.
14 C.    ******************************************************************
15 C.    *                                                                *
16 C.    *       Computes coordinates XM (Master Reference System         *
17 C.    *       knowing the coordinates XD (Detector Ref System)         *
18 C.    *       The local reference system can be initialized by         *
19 C.    *         - the tracking routines and GDTOM used in GUSTEP       *
20 C.    *         - a call to GSCMED(NLEVEL,NAMES,NUMBER)                *
21 C.    *             (inverse routine is GMTOD)                         *
22 C.    *                                                                *
23 C.    *        If IFLAG=1  convert coordinates                         *
24 C.    *           IFLAG=2  convert direction cosinus                   *
25 C.    *                                                                *
26 C.    *    ==>Called by : <USER>                                       *
27 C.    *       Author    R.Brun ,M Hansroul  *********                  *
28 C.    *                                                                *
29 C.    ******************************************************************
30 C.
31 #include "geant321/gcvolu.inc"
32       DIMENSION XD(3),XM(3)
33       EQUIVALENCE (N,NLEVEL)
34 C.
35 C.    ------------------------------------------------------------------
36 C.
37       IF(IFLAG.EQ.1)THEN
38          IF(GRMAT(10,N).NE.0.)THEN
39             XM(1) = GTRAN(1,N) + GRMAT(1,N)*XD(1) + GRMAT(4,N)*XD(2) +
40      +      GRMAT(7 ,N)*XD(3)
41             XM(2) = GTRAN(2,N) + GRMAT(2,N)*XD(1) + GRMAT(5,N)*XD(2) +
42      +      GRMAT(8 ,N)*XD(3)
43             XM(3) = GTRAN(3,N) + GRMAT(3,N)*XD(1) + GRMAT(6,N)*XD(2) +
44      +      GRMAT(9 ,N)*XD(3)
45 *
46          ELSE
47             XM(1) = GTRAN(1,N) + XD(1)
48             XM(2) = GTRAN(2,N) + XD(2)
49             XM(3) = GTRAN(3,N) + XD(3)
50 *
51          ENDIF
52 *
53       ELSE
54          IF(GRMAT(10,N).NE.0.)THEN
55             XM(1)=GRMAT(1,N)*XD(1)+GRMAT(4,N)*XD(2)+GRMAT(7,N)*XD(3)
56             XM(2)=GRMAT(2,N)*XD(1)+GRMAT(5,N)*XD(2)+GRMAT(8,N)*XD(3)
57             XM(3)=GRMAT(3,N)*XD(1)+GRMAT(6,N)*XD(2)+GRMAT(9,N)*XD(3)
58 *
59          ELSE
60             XM(1) = XD(1)
61             XM(2) = XD(2)
62             XM(3) = XD(3)
63 *
64          ENDIF
65 *
66       ENDIF
67       END