5 * Revision 1.1.1.1 1995/10/24 10:19:45 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.32 by S.Giani
12 SUBROUTINE CGTSET(N,T,IREP)
13 ************************************************************************
16 * Author: E. Chernyaev Date: 31.07.88 *
19 * Function: Set transformation to screen coordinates and *
20 * find back transformation to world coordinates *
24 * Input: N - transformation number *
25 * T(4,3) - transformation matrix *
27 * Output: IREP - reply ( 0 - O.K. *
28 * -1 - if illigal N, *
29 * -2 - if DET(T)=0.) *
33 ************************************************************************
34 #include "geant321/cgctra.inc"
36 *- P A R A M E T E R S C H E C K
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
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