*-- Author : STEPHEN J. MAXFIELD 05/04/91
SUBROUTINE FRCART(IROW,XXP,YYP,XXM,YYM,ZZ,IBAD)
**: FRCART 40000 SM. New definition of dead wire flag.
**----------------------------------------------------------------------
*
*
* PURPOSE: Compute X,Y,Z of a digitisation.
*
*
* INPUT : IROW Row number in FRRE or FRLC bank
*
*
* OUTPUT : XXP,YYP x, y of hit assuming positive sign for drift
* : XXM,YYM x, y of hit assuming negative sign for drift
* : ZZ z of hit
* : IBAD 0 if digi O.K. 1 if digi 'unreliable'
*
* NOTE : The routine uses 'local' coordinates (drift and radius)
* taken from the FRLC bank. If this temporary bank does not
* exist, it is created. The local coordinate data is
* combined with corrected geometrical data taken from
* the bank FRG1. Again if FRG1 doesn't exist, it is created.
*
*KEEP,BCS.
*KEND.
* Locators for FRG1 bank
* Locators for FRLC bank
*KEEP,STFUNCT.
* index of element before row number IROW
* index of L'th element of row number IROW
* L'th integer element of the IROW'th row of bank with index IND
* L'th real element of the IROW'th row of bank with index IND
*KEEP,FTFUNCT.
* Statement functions for RADIAL Chamber data access.
* Using Channel Number J
* Module, Wedge-pair and Z-plane numbers...
* Statement function for obtaining WEDGE numbers(0-47) of
* wires at plus and minus ends of Cell numbers
* Statement function for obtaining IOS wire number (1-36)
* Statement functions for PLANAR Chamber data access.
* Using Channel Number J
* Module, orientation, W-cell and Z-plane numbers...
* IPSMD in range 0:8 Planar module number.
*
* IOS wire number (runs from 0 to 36)
* SB plane numbers (1-72) from cell number
* Module, orientation, wire and (typical) cell number from plane
* number in the range 1-72 (planars, radials and combined)
*KEND.
*----------------------------------------------------------------------
* Initialisations on first call...
IQFRLC = NAMIND('FRLC')
IQFRG1 = NAMIND('FRG1')
*-----------------------------------------------------------
* Create FRLC bank...
CALL FTCORG
CALL H1STOP
* Create FRLC bank...
CALL FRLOCO
CALL H1STOP
* No data. Shouldn't happen if IROW valid.
CALL ERRLOG(116,'S:FRCART : IROW not meaningful!')
CALL ERRLOG(117,'S:FRCART : IROW out of range!')
* Normal processing starts here...
* Phi, Stagger and Z of wire
RR = RADIUS + FLOREN(RADIUS,ABS(DDD),DSIGN)
RR = RADIUS + FLOREN(RADIUS,ABS(DDD),DSIGN)
* Done
*