*-- Author : Stephen J. Maxfield 21/11/92
SUBROUTINE FHEPAR(K, ILIST, ZF, CU, PH, TH, X0, Y0)
*
* Calculate track parameters for the ITRK'th track from the
* Slopes and intercepts of the R-z and Phi-z fits.
* INPUT: Track number K
* ILIST track type (1-rad-based/2=pla-based)
* ZF z of first measured point
*
*KEEP,FRDIMS.
PARAMETER (MAXHTS=200)
PARAMETER (NUMWPL=36)
PARAMETER (MAXTRK=200)
PARAMETER (MXTTRK=900)
PARAMETER (MAXTR3=200)
PARAMETER (MAXHPW=2)
PARAMETER (MAXDIG=2000)
PARAMETER (NUMRWR=1727)
PARAMETER (NUMPWR=1151)
*KEEP,FH1WORK.
COMMON/FGMIOS/
* Planar geometry
+ ZPP(140),C(140),S(140),ITYPE(140),WZERO(140),WSPACE,
*
* Radial geometry
+ ZP(36),PHW(36),WS(36)
*
COMMON/H1WORK/
* Radial data...
+ WW(MAXHTS,36),DRI(MAXHTS,36),RM(MAXHTS,36),
+ NDP(36), NW(MAXHTS,36), DWS(MAXHTS,36),
*
* Planar Data
+ NDPW(NUMWPL),DW(MAXHTS,NUMWPL),
+ DRIW(MAXHTS,NUMWPL),NDW(MAXHTS,NUMWPL),
+ WWP(MAXHTS,NUMWPL),
+ IPHOLE(MAXHTS,NUMWPL),
*
* Pointers into DIGI bank for IOS labelled hits
+ IPFRRE(MAXHTS,36),IPFRPE(MAXHTS,36),NFRRE,NFRPE,
+ IRPIOS(MAXDIG,2), IPPIOS(MAXDIG,2),
*
* Track segment data
+ NTRAKS(3),IRPT(12,MAXTRK,3),SDRFT(12,MAXTRK,3),
*
* Fit data
+ PCOSL(MAXTRK,3),PSINL(MAXTRK,3),PHZL(MAXTRK,3),
+ DPCOSL(MAXTRK,3),DPSINL(MAXTRK,3),
+ DPHZL(MAXTRK,3),CHSQ(MAXTRK,3),RZI(MAXTRK,3),
+ RPCOSG(MAXTRK),RPSING(MAXTRK),
+ PHZG(MAXTRK),CC(3,MAXTRK),ZIG(MAXTRK),
+ IRADG(36,MAXTRK),PHIG(36,MAXTRK),
+ IG,SDRADG(36,MAXTRK),
+ R1,Z1,RFIT(MAXTRK,3),
+ CHG(MAXTRK),
+ PPA(MAXTRK,3), ZZA(MAXTRK,3),
+ GPA(MAXTRK,3),GZA(MAXTRK,3)
*
*
*KEEP,FPTVTX.
COMMON/VERTVV/ZV ,XVV,YVV
**the common/VERTEX/ becomes /VERTVV/ (in analogy to /VERTFF/) on the
** 17/6/91, since it is in conflict with the VERTEX module (g.bernardi)
** (note that all these common names should start by F in this deck...)
*KEND.
COMMON/FPPFIT/PSSS(100),PISS(100),RSSS(100),RISS(100)
IF(ILIST .EQ. 1) THEN
SLPHI =RPCOSG(K)
SLPR =RPSING(K)
PHZER =PHZG(K)
RZER =ZIG(K)
ELSE
SLPHI =PSSS(K)
SLPR =RSSS(K)
PHZER =PISS(K)
RZER =RISS(K)
ENDIF
RR = SLPR * ZF + RZER
PHI= SLPHI * ZF + PHZER
X0 = RR*COS(PHI) + XVV
Y0 = RR*SIN(PHI) + YVV
IF(SLPHI .EQ.0.0)THEN
CU = 0.0
ELSE
BETA = SLPR/SLPHI
U = SQRT(RR*RR + BETA*BETA)
CU = SIGN(1.,SLPHI)*(RR*RR + 2.0*BETA*BETA)/(U**3)
ENDIF
DXDZ = SLPR*COS(PHI) - RR*SLPHI*SIN(PHI)
DYDZ = SLPR*SIN(PHI) + RR*SLPHI*COS(PHI)
TH = ATAN(SQRT(SLPR**2 + (RR*SLPHI)**2))
PH = ATAN2(DYDZ,DXDZ)
RETURN
END
*