*-- 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 *