*-- Author : Stephen Burke 07/05/92 SUBROUTINE FVXTRP(FTVEC,ZNOM,LPRIM,Z0,WZ0,IERR) *-----------------------------------------Updates 07/09/93------- **: FVXTRP 40000 SB. Fix bug in xy vertex histos. *-----------------------------------------Updates 26/07/93------- **: FVXTRP 30907 SB. Change monitoring histograms. **: FVXTRP 30907 RP. Farm changes. *-----------------------------------------Updates 30/10/92------- **: FVXTRP 30907 SB. Separate cut on # of radial and planar hits. **: FVXTRP 30907 SB. New debug histograms and numbers. *-----------------------------------------Updates 03/08/92------- **: FVXTRP 30907 SB. Redundant calls to FKNORM removed. *-----------------------------------------Updates 29/07/92------- **: FVXTRP 30907 SB. Serious bugs fixed; xy histogram added. *-----------------------------------------Updates 02/06/92------- **: FVXTRP 30907 SB. Protect against divide by 0. *-----------------------------------------Updates 06/05/92------- **: FVXTRP 30907 SB. New deck to extrapolate tracks to vertex. *-----------------------------------------Updates---------------- ********************************************************************** * * * Extrapolate a forward track to the vertex region, and return z0 * * * * ERROR CONDITIONS; * * IERR = 0 ; normal termination * * -> IERR = 101 ; parameters not at track start (code error) * * IERR = 2 ; too few hits * * IERR = 3 ; initial z0 too large * * IERR = 4 ; momentum too small * * IERR = 5 ; too far from xy vertex (dca) * * IERR = 6 ; too far from xy vertex (z0) * * * * -> Fatal errors * * * * The output parameters are undefined after an error. * * * * INPUT; * * FTVEC - FT-type (parameterisation 2) track vector * * ZNOM - the nominal z-vertex position * * LPRIM - .TRUE. if track is a primary (used for diagnostics) * * * * OUTPUT; * * Z0 - z0 of extrapolated track * * WZ0 - 1/(error on z0)**2 * * * ********************************************************************** *KEEP,FKPIDP. *KEEP,FVSTEE. *KEEP,FVPAR. *KEEP,FVSCAL. * Various counters *KEEP,BCS. *KEND. ********************************************************************** CALL UCOPY(FTVEC(19),NX,1) CALL ERRLOG(541,'F:FVXTRP: Not a starting parameterisation') * * Initial selection criteria * CALL UCOPY(FTVEC(20),NHIT,1) * * This is supposed to be a rough (straight line) estimate of the * z0, for a quick initial cut (was bugged, hope it's right now) * CALL HFILL(201,FLOAT(NPLAN),0.,1.) CALL HFILL(203,FLOAT(NRAD),0.,1.) CALL HFILL(205,ZSQ,0.,1.) CALL HFILL(202,FLOAT(NPLAN),0.,1.) CALL HFILL(204,FLOAT(NRAD),0.,1.) CALL HFILL(206,ZSQ,0.,1.) * Allow for a relative rotation/shift between CT and FT CALL KTROT(FTVEC,FTROT) * Convert into KF internal format CALL FKETOI(FTROT,S1,C1) IF (LCUT .AND. LPRIM) CALL HFILL(207,PMOM,0.,1.) IF (LCUT .AND. .NOT.LPRIM) CALL HFILL(208,PMOM,0.,1.) * Swim to end wall CALL FKTRAN(DZ,Z,S1,S2,DTRAN) CALL FKMUL(C1,DTRAN,C2) * Allow for multiple scattering in the end wall CALL FKTRAN(DZ,ZWALL2,S2,S1,DTRAN) CALL FKMUL(C2,DTRAN,C1) CALL FKSCAT(DZ,S2,RADLEN,DTRAN,QMS) CALL FKQADD(C1,QMS) * Swim to (notional) vertex CALL FKTRAN(DZ,ZWALL1,S1,S2,DTRAN) CALL FKMUL(C1,DTRAN,C2) * Convert to external (IPTYPE 2) format CALL KTITOE(DBLE(ZNOM),S2,C2,S1,C1) * Convert to IPTYPE 1 format CALL KTFTCT(S1,C1,DBLE(ZNOM),CTV,CTC) CALL HFILL(209,DCA,0.,1.) CALL HFILL(211,Z0,0.,1.) CALL HFILL(210,DCA,0.,1.) CALL HFILL(212,Z0,0.,1.) * Fill monitoring histograms CALL SHS(26,0,DCA) CALL SHS(27,0,Z0) * * Monitor the xy-vertex * CALL FKTRAN(DZ,DBLE(ZNOM),S2,S1,DTRAN) CALL SHS(30,0,SNGL(S1(1))) CALL SHS(31,0,SNGL(S1(1))) CALL SHS(32,0,SNGL(S1(1))) CALL SHS(33,0,SNGL(S1(2))) CALL SHS(34,0,SNGL(S1(2))) CALL SHS(35,0,SNGL(S1(2))) *