C========================= Include ctvmft.inc ========================== C============ include file for the constrained fit module CTVMFT =============== C Dimension Parameters INTEGER MaxVtx,MaxTrk,MaxMcn,MaxItr, MAXDIM C maximum number of vertices PARAMETER (MaxVtx = 3) C maximum number of mass constraints PARAMETER (MaxMcn = 4) C maximum number of tracks PARAMETER (MaxTrk =10) C maximum number if iteration steps PARAMETER (MaxItr =10) INTEGER UDIM Parameter ( UDIM = MaxTrk*(MaxVtx+MaxMcn+60) & + MaxVtx*(MaxVtx+18) + MaxMcn*7 +MaxItr + 31 ) C maximum matrix dimension; C = 3 parameters per (vertex + possible primary) (x,y,z) C +2 possible "pointing variables" per (vertex+1) (Phi,Ctg) C +3 parameters per track (Crv, Phi, Ctg) C + number of mass constraints PARAMETER (MAXDIM = 5*(MaxVtx+1) + 3*MaxTrk + MaxMcn) c----------------------------------------------------------------------- C Required Input Fit Specification c----------------------------------------------------------------------- INTEGER NVERTX ! Number of vertices INTEGER NMASSC ! Number of mass constraints INTEGER NTRACK ! Number of tracks, this fit LOGICAL TRKVTX(MaxTrk,MaxVtx) ! (Track,Vertex) association table INTEGER VTXPNT(MaxVtx,2) ! vertex association information INTEGER CVTX (MaxVtx) ! Conversion constraint specification LOGICAL TRKMCN(MaxTrk,MaxMcn) ! (Track,Mass_Constraint) table REAL CMASS (MaxMcn) ! Constraint mass c----------------------------------------------------------------------- C Required Input Track Specifications c----------------------------------------------------------------------- INTEGER LIST (MaxTrk) ! Track bank number REAL TMASS (MaxTrk) ! Track mass assignment c----------------------------------------------------------------------- C Fit input, collected using the input specifications c----------------------------------------------------------------------- REAL PAR0(5,MaxTrk) ! Original track parameter values REAL G (5,5,MaxTrk) ! Fitted track parameter covariances c----------------------------------------------------------------------- C Optional Input, Required Data for Pointing Constraints c----------------------------------------------------------------------- REAL XYZPV0(3), EXYZPV(3,3) ! "Primary" vertex; XYZ, covariance INTEGER RUNNUM,TRGNUM ! "you can't tell the players ! without a score card" INTEGER ITER ! number of iterative steps taken INTEGER NTSCUT ! total number of cut steps, this fit c----------------------------------------------------------------------- C Output; Results of the Fit c----------------------------------------------------------------------- INTEGER MATDIM ! Dimension of the matrix, this fit INTEGER NDOF ! Fit number of degrees of freedom LOGICAL VtxVtx(MaxVtx,MaxVtx) ! vertex geneology REAL CHISQR(0:MaxItr) ! Overall fit Chi Square result REAL CHIT(MaxTrk) ! Track contribution to Chi Square REAL CHIV(0:MaxVtx) ! Vertex fit Chi Squares REAL CHIM(MAXMCN) ! Mass constraint Chi Squares REAL PAR (5,MaxTrk) ! Fitted track helix parameters REAL PARDIF(5,MaxTrk) ! Parameter differences (fit - input) REAL FMCDIF(MaxMcn) ! Mass constraint residuals REAL PCON(MaxVtx,2) ! Pointing constraint tests REAL SANG(MaxVtx,2) ! Pointing constraint tests REAL XYZVRT(3,0:MaxVtx) ! Primary, Secondary vertices REAL TrkP4(MaxTrk,6) ! Track Px,Py,Pz,E,Pt P REAL VtxP4(4,MaxVtx) ! vertex 4-momentum sum REAL McnP4(4,MaxMcn) ! 4-momentum sum for mass constraint REAL DDA(MaxTrk,8) ! d(Px,Py)/d(Crv,Phi,Xs,Ys) REAL DXYZPV(3) ! Primary vertex displacement in fit INTEGER VOFF(MaxVtx),TOFF(MaxTrk) ! offset pointers into VMAT INTEGER POFF(MaxVtx),COFF(MaxVtx) ! offset pointers into VMAT INTEGER MOFF ! offset pointers into VMAT C "Memory" C Track error flag, from previous fit INTEGER TKERR (MaxTrk) C error code reporting INTEGER IJKERR(3) C Covariance matrix, fit parameters DOUBLE PRECISION VMAT(MAXDIM,MAXDIM+1) REAL XYZPV(3) EQUIVALENCE (XYZPV,XYZVRT(1,0)) INTEGER UVWXYZ(UDIM) Equivalence (UVWXYZ, Iter) C CTC first approximation and track-vertex step parameters REAL DRMAX, RVMAX, DZMAX, TRNMAX, DSMIN C Momentum scale conversion factor, from (cm)**-1 to Gev/c REAL PSCALE C single precision stuff COMMON /CTVMq/ RUNNUM,TRGNUM, ITER, NTSCUT, NVERTX,NMASSC,NTRACK, $ TRKVTX, TRKMCN, $ VTXPNT,CMASS,CVTX, ! ...Fit specification $ VTXVTX, ! vertex geneology $ LIST, ! $ TMASS, ! Tracks to use $ MATDIM, ! Fit matrix dimension C Track "error memory" > TKERR C Fit dimension, quality > ,NDOF, CHISQR,CHIT,CHIV,CHIM C initial "primary" vertex > ,XYZPV0,EXYZPV C vertex coordinate results > ,XYZVRT,DXYZPV C Track fit results > ,PAR,G > ,TrkP4,VtxP4,McnP4,DDA C vertex,track VMAT pointers > ,VOFF,TOFF,POFF,COFF,MOFF C Input parameters, fit step > ,PAR0,PARDIF C Mass/Pointing satisfaction > ,FMCDIF,PCON,SANG C CTVMFA constants > ,DRMAX,RVMAX,DZMAX,TRNMAX,DSMIN C error code results > ,IJKERR C set, CTVMFQ first entrance > ,PSCALE c----------------------------------------------------------------------- C double precision stuff C Fit parameter covariance c----------------------------------------------------------------------- COMMON/CTVMFr/ VMAT c common/trkprm/trhelix(5,maxtrk),trem(5,5,maxtrk) real trhelix, trem common/fiddle/excuse integer excuse c----------------------------------------------------------------------- C communication common back to CTVMFT for odds and ends, especially c PARERR c----------------------------------------------------------------------- common/uvwb/xsvi(2),ysvi(2),dzsvi(2),ss(2,2),zz(2,2), flip, $ parerr, dbgprt real xsvi,ysvi,dzsvi,ss,zz real parerr(5,maxtrk) integer flip, dbgprt common/print_level/print_level integer print_level c============================ end include ==============================