+++ /dev/null
-*
-* $Id$
-*
-* $Log$
-* Revision 1.1.1.1 1995/10/24 10:20:51 cernlib
-* Geant
-*
-*
-#include "geant321/pilot.h"
-*CMZ : 3.21/02 29/03/94 15.41.29 by S.Giani
-*-- Author :
- SUBROUTINE GINTRP(X,P,IYES)
-C.
-C. ******************************************************************
-C. * *
-C. * ROUTINE TO PERFORM GINME FUNCTION FOR A GENERAL TRAPEZOID. *
-C. * X - A VECTOR DIMENSION 3 GIVING THE POINT. *
-C. * P - THE VECTOR OF PARAMETERS; *
-C. * DZ - HALF LENGTH ALONG Z AXIS, *
-C. * TX - DX/DZ OF LINE LINKING FACE CENTRES, *
-C. * TY - DY/DZ '' *
-C. * H1 - HALF LENGTH IN Y DIR OF FACE AT Z=-DZ, *
-C. * LB1 - HALF LEN. OF LOW Y EDGE OF SAME FACE, *
-C. * LT1 - HALF LEN. OF HIGH Y EDGE OF SAME FACE, *
-C. * TTH1 - DX/DY OF LINE LINKING EDGE CENTRES, *
-C. * H2 - AS 1 FOR FACE AT Z=DZ *
-C. * LB2 - '' *
-C. * LT2 - '' *
-C. * TTH2 - '' *
-C. * IYES - RETURNED AS 1 IF POINT IS INSIDE, OTHERWISE 0. *
-C. * *
-C. * ==>Called by : GINME *
-C. * Author A.McPherson ********* *
-C. * *
-C. ******************************************************************
-C.
- DIMENSION X(3),P(11)
- SAVE LDZ,LLTAN,LH1,LTTH1,LH2,LTTH2
-C
- DATA LDZ,LLTAN,LH1,LTTH1,LH2,LTTH2/1,2,4,7,8,11/
-C.
-C. ----------------------------------------
-C.
- IYES=0
-C
-C CHECK Z FIRST.
-C
- IF(ABS(X(3)).GT.P(LDZ)) GO TO 99
-C
-C COMPUTE TRAPEZIUM PARAMETERS AND X,Y IN TRAP COORDS.
-C
- SP1=(P(LDZ)-X(3))*0.5/P(LDZ)
- SP2=(P(LDZ)+X(3))*0.5/P(LDZ)
- H=P(LH1)*SP1+P(LH2)*SP2
- YL=X(2)-X(3)*P(LLTAN+1)
-C
-C CHECK Y.
-C
- IF(ABS(YL).GT.H) GO TO 99
- IF ( H .EQ. 0 ) THEN
- TTH = 0.
- ELSE
- TTH=(P(LH1)*P(LTTH1)*SP1+P(LH2)*P(LTTH2)*SP2)/H
- END IF
- BL=P(LH1+1)*SP1+P(LH2+1)*SP2
- TL=P(LH1+2)*SP1+P(LH2+2)*SP2
- XL=X(1)-X(3)*P(LLTAN)
-C
-C CHECK X.
-C
- DX=BL*(H-YL)*0.5/H+TL*(H+YL)*0.5/H
- XL=XL-YL*TTH
- IF(ABS(XL).GT.DX) GO TO 99
-C
-C INSIDE.
-C
- IYES=1
-C
- 99 CONTINUE
- END