]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/cgpack/cgtset.F
Corrections to comply with coding convention
[u/mrichter/AliRoot.git] / GEANT321 / cgpack / cgtset.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:19:45  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.32  by  S.Giani
11 *-- Author :
12       SUBROUTINE CGTSET(N,T,IREP)
13 ************************************************************************
14 *                                                                      *
15 *     Name: CGTSET                                                     *
16 *     Author: E. Chernyaev                       Date:    31.07.88     *
17 *                                                Revised:              *
18 *                                                                      *
19 *     Function: Set transformation to screen coordinates and           *
20 *               find back transformation to world coordinates          *
21 *                                                                      *
22 *     References: none                                                 *
23 *                                                                      *
24 *     Input: N - transformation number                                 *
25 *            T(4,3) - transformation matrix                            *
26 *                                                                      *
27 *     Output: IREP - reply ( 0 - O.K.                                  *
28 *                           -1 - if illigal N,                         *
29 *                           -2 - if DET(T)=0.)                         *
30 *                                                                      *
31 *     Errors: none                                                     *
32 *                                                                      *
33 ************************************************************************
34 #include "geant321/cgctra.inc"
35       REAL T(4,3)
36 *-          P A R A M E T E R S   C H E C K
37       IREP   = 0
38       IF (N.LE.0 .OR. N.GT.NTMAX)       IREP = -1
39       DET = T(1,1)*T(2,2)*T(3,3) - T(3,1)*T(2,2)*T(1,3) +
40      +      T(3,1)*T(1,2)*T(2,3) - T(1,1)*T(3,2)*T(2,3) +
41      +      T(2,1)*T(3,2)*T(1,3) - T(2,1)*T(1,2)*T(3,3)
42 *      IF (ABS(DET) .LT. 1./DELWOR)      IREP = -2
43       IF (IREP .LT. 0)                  GOTO 999
44 *           S E T   T R A N S F O R M A T I O N   M A T R I X
45       DO 200 I=1,4
46         DO 100 J=1,3
47           TSCRN(I,J,N) = T(I,J)
48   100     CONTINUE
49   200   CONTINUE
50 *           F I N D   M A T R I X   F O R   B A C K   TRANSFORMATION
51       TBACK(1,1,N) = (T(2,2)*T(3,3) - T(2,3)*T(3,2)) / DET
52       TBACK(2,1,N) =-(T(2,1)*T(3,3) - T(2,3)*T(3,1)) / DET
53       TBACK(3,1,N) = (T(2,1)*T(3,2) - T(2,2)*T(3,1)) / DET
54       TBACK(4,1,N) =-(T(2,1)*T(3,2)*T(4,3) - T(4,1)*T(3,2)*T(2,3) +
55      +                T(4,1)*T(2,2)*T(3,3) - T(2,1)*T(4,2)*T(3,3) +
56      +                T(3,1)*T(4,2)*T(2,3) - T(3,1)*T(2,2)*T(4,3))/DET
57       TBACK(1,2,N) =-(T(1,2)*T(3,3) - T(1,3)*T(3,2)) / DET
58       TBACK(2,2,N) = (T(1,1)*T(3,3) - T(1,3)*T(3,1)) / DET
59       TBACK(3,2,N) =-(T(1,1)*T(3,2) - T(1,2)*T(3,1)) / DET
60       TBACK(4,2,N) = (T(1,1)*T(3,2)*T(4,3) - T(4,1)*T(3,2)*T(1,3) +
61      +                T(4,1)*T(1,2)*T(3,3) - T(1,1)*T(4,2)*T(3,3) +
62      +                T(3,1)*T(4,2)*T(1,3) - T(3,1)*T(1,2)*T(4,3))/DET
63       TBACK(1,3,N) = (T(1,2)*T(2,3) - T(1,3)*T(2,2)) / DET
64       TBACK(2,3,N) =-(T(1,1)*T(2,3) - T(1,3)*T(2,1)) / DET
65       TBACK(3,3,N) = (T(1,1)*T(2,2) - T(1,2)*T(2,1)) / DET
66       TBACK(4,3,N) =-(T(1,1)*T(2,2)*T(4,3) - T(4,1)*T(2,2)*T(1,3) +
67      +                T(4,1)*T(1,2)*T(2,3) - T(1,1)*T(4,2)*T(2,3) +
68      +                T(2,1)*T(4,2)*T(1,3) - T(2,1)*T(1,2)*T(4,3))/DET
69 *
70   999 RETURN
71       END