SUBROUTINE KNBVXK(NTRK, ITRK, IVOPT, UPDATE, VTX, VZ, LCOVAR, * CHISQ, IK, IDTYP) C >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C Build a new particle from several particles with a vertex constraint. C Add the resulting track to the KN list. C C Note: If there are fewer than 2 tracks with IVOPT = 2, then ZI is C treated as a fixed vertex and all tracks with IVOPT > 0 are C required to go through it. C C NTRK Integer variable (read) C # of input tracks C C ITRK Integer array (read) C List of KN tracks. C C IVOPT Integer array (read) C IVOPT(IL) = 0 => Track ITRK(IL) has no position info at all C IVOPT(IL) = 1 => Track ITRK(IL) is not used to determine vertex C but is constrained to pass through vertex C IVOPT(IL) = 2 => Track ITRK(IL) is used to determine vertex C C *VTX real array (read) C Initial (x,y,z) vertex (it is updated) C C *VZ real array (read) C 3x3 covariance matrix of VTX C C UPDATE integer variable (read) C 0 ==> do not update input track parameters (just calculate chisq) C 1 ==> update input track parameters only C 2 ==> update input track parameters & covariance matrices and C replace the original unconstrainted parameters by the C new ones. ****** This is a dangerous option. ****** C C LCOVAR logical variable (read) C TRUE ==> compute PW covariance matrix C FALSE ==> do not compute PW covariance matrix C C *CHISQ real variable (write) C Chisq of fit. C C IK integer variable (read) C KN track number to put resulting track C C IDTYP integer variable (read) C Particle type of particle C >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>