]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 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 |