FVZWM COMMENTS
*-- Author :    Stephen Burke   07/05/92
      SUBROUTINE FVZWM(INFTKR,NFTKR,ZNOM,LFIRST,FVVEC,IERR)
*-----------------------------------------Updates 26/07/93-------                                             
**: FVZWM  30907 RP. Farm changes.                                                                            
*-----------------------------------------Updates 30/10/92-------                                             
**: FVZWM  30907 SB. New debug histogram numbers.                                                             
*-----------------------------------------Updates 06/05/92-------                                             
**: FVZWM  30907 SB. New deck to take a weighted mean of z values.                                            
*-----------------------------------------Updates----------------                                             
**********************************************************************                                        
*                                                                    *                                        
* Calculate z-vertex by weighted mean                                *                                        
*                                                                    *                                        
* INPUT;                                                             *                                        
*       INFTKR - FTKR bank index                                     *                                        
*       NFTKR  - The number of FTKR rows (= size of work bank)       *                                        
*       ZNOM   - the nominal z-vertex position                       *                                        
*       LFIRST - TRUE for the first call (primary vertex)            *                                        
*                                                                    *                                        
* OUTPUT;                                                            *                                        
*       FVVEC - the four words of the FTGR bank                      *                                        
*       IERR  - non-zero if the weighted mean fails                  *                                        
*                                                                    *                                        
**********************************************************************                                        
*KEEP,FVSTEE.                                                                                                 
*KEEP,FVPAR.                                                                                                  
*KEEP,FVSCAL.                                                                                                 
* Various counters                                                                                            
*KEEP,FVWBI.                                                                                                  
* Work bank indices                                                                                           
*KEEP,BCS.                                                                                                    
*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                                             
*KEND.                                                                                                        
**********************************************************************                                        
* Default is failure                                                                                          
*                                                                                                             
* Take a weighted mean of the z0 values                                                                       
*                                                                                                             
* Rejected tracks have weight zero                                                                            
* Accept new value if reasonably consistent with current estimate                                             
* Mark value used by setting weight negative                                                                  
* New value is closer to nominal z, so discard previous estimate                                              
* Mark used by setting weight negative                                                                        
* Reset used flag for previous tracks                                                                         
* First guess at z0 and error                                                                                 
*                                                                                                             
* Now work out a chi-squared, and throw away any tracks                                                       
* which are too far from the mean                                                                             
*                                                                                                             
* Used tracks now have negative weight                                                                        
* Primary flag for diagnostics                                                                                
* If there's only one track, accept it                                                                        
* Accept if close enough to the mean                                                                          
* Remove this track (but don't yet update ZMEAN)                                                              
* Reset used flag                                                                                             
               CALL HFILL(213,CHI,0.,1.)                                                               
               CALL HFILL(214,CHI,0.,1.)                                                               
* Iterate if necessary                                                                                        
* Create FTGX bank                                                                                            
         INFTGX = NBANK('FTGX',0,2+NFTKR/2)
            CALL ERRLOG(512,'S:FVZWM:  Unable to create FTGX')                                         
* Remove all tracks used for this vertex                                                                      
* Fill the output vector                                                                                      
      CALL UCOPY(NDF,FVVEC(4),1)                                                                       
         CALL HFILL(300,PRAT,0.,1.)                                                                    
*