5 * Revision 1.1.1.1 1995/10/24 10:20:50 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.29 by S.Giani
12 SUBROUTINE GINCTU( X , PAR , IYES )
14 ***********************************************************************
16 *...GINCTU tests whether a point inside a cut tube or not.
18 *. SUBROUTINE GINCTU( X , PAR , IYES )
21 *. Routine GINCTU tests whether a point is inside a cur tue or not.
23 *. INPUT : X vector real length at least 3, x,y,z of
24 *. : point in local cut tube coords.
25 *. : PAR vector real length 11 parameters of cut
27 *. OUTPUT : IYES integer 1 if point inside, 0 if not.
37 *. AUTHOR : A.C.McPherson.
40 *. LAST MOD : 6-May-88
44 *.*********************************************************************
46 #include "geant321/gconsp.inc"
49 * --------------------
52 ZINL = X(1)*PAR(6) +X(2)*PAR(7) +( X(3)+PAR(3) )*PAR(8)
53 IF( ZINL .LT. 0.0 ) THEN
54 ZINH = X(1)*PAR(9) +X(2)*PAR(10) +( X(3)-PAR(3) )*PAR(11)
55 IF( ZINH .LT. 0.0 ) THEN
56 R2 = X(1)*X(1)+X(2)*X(2)
57 IF( R2 .GT. PAR(1)*PAR(1) .AND. R2 .LT. PAR(2)*PAR(2) ) THEN
58 IF( PAR(4) .EQ. 0 .AND. PAR(5) .EQ. 360.0 ) THEN
60 ELSEIF( R2 .GT. 0.0 ) THEN
61 PHI = ATAN2( X(2), X(1) )/DEGRAD
63 IF( DPHI .LT. 0.0 ) DPHI = DPHI+360.0
64 IF( DPHI .GT. 360.0 ) DPHI = DPHI-360.0
66 IF( DPT .LT. 0.0 ) DPT = DPT+360.0
67 IF( DPT .GT. 360.0 ) DPT = DPT-360.0
68 IF( DPHI .LE. DPT ) IYES = 1