next up previous contents
Next: Step 5:- FT1_FITTER.FOR Up: Adding a New Fitter Previous: Step 3:- BANK_FT1.INC   Contents

Step 4:- FT1_FITTER_INI.FOR

This routine performs the initialisation for the FT1 fitter.

*file member=ft1_fitter_ini library=snoman language=fortran77
*file                                          date=24:Nov:1994
 
      subroutine ft1_fitter_ini(iretc)
 
                      :
                      :
                      :
                    HEADER
                      :
                      :
                      :

 
*     Local Variable Declarations:-
*     ===========================
 
      integer           mft1(5),   mft1t(5),  mft1v(5)
 
      data
     +                  mft1   / 4hFT1 , 1,  1,  9,  0/,
     +                  mft1t  / 4hFT1T, 0,  0,  6,  0/,
     +                  mft1v  / 4hFT1V, 1,  1,  8,  0/
 
 
      iretc = KSU_OK
 
*     This processor does not set a context (current event).

      if ( mode .eq. KSU_SET_CONTEXT ) return

***   First time initialisation.

      if ( mode .eq. KSU_INITIALISE ) then

**      Load fitter titles bank TFT1 1 at request 
**      level 2 (compulsory).
 
        latft1(8) = 0
        call mt_request_titles('TFT1',
     +                         1,
     +                         KMTT_COMPULSORY,
     +                         latft1,
     +                         KSU_FT1)
 
**      Define bank formats.
 
        call ucopy(   mft1  , mmft1  , 4 )
        call mzform( 'FT1 ' , '7I2F' , mmft1(5) )
 
        call ucopy(   mft1t , mmft1t , 4 )
        call mzform( 'FT1T' , '-F'   , mmft1t(5) )
 
        call ucopy(   mft1v , mmft1v , 4 )
        call mzform( 'FT1V' , '-F'   , mmft1v(5) )
 
**      Clear processing statistics.
        
        call vzero( ift1_retcs , KSU_FAILED - KSU_NOOP + 1 )
 
      endif

***   First time initialisation or reinitialisation after
***   titles banks have changed.

**    Print short summary to log file.
 
      write (iqlog,90000) icons(ldtft1+KTFT1_MIN_PMT) ,
     +                    rcons(ldtft1+KTFT1_MAX_RMS)

      return
 
90000 format(/,
     +       ' FT1: User Fitter 1 Initialising',
     +                            ' Using Titles: TFT1:-',/,
     +       '      Min PMT hits for fit: ',i10,/,
     +       '      Max RMS for fit:      ',f10.2)
 
      end
*endfile member=ft1_fitter_ini

This initialisation is performed before the event loop is entered and concerns itself primarily with defining the three data structure banks. In addition to any further initialisation the user may wish to carry out three minor changes need to be made. The data statement at the top describes the bank format. The fourth column currently contains 9, 6, 8 and specifies the number of data words in the FT1, FT1V, FT1T banks respectively. These banks are already predefined to have 8, 6, 8 words and the extra word defined for FT1 in BANK_FT1.INC above makes the total 9, 6, 8. The user should change this column to give the number of data words in each bank. Further down a fit summary is printed to the log file. The user should output the titles bank constants defined in FT1_COM.INC here remembering to change the format statement at line 90000 accordingly. Finally the user must specify the type of data words in the fitter banks by altering the second argument of each of the three calls to MZFORM. Currently the 9 words defined for the FT1 bank are 7 integer followed by 2 real hence the '7I2F' argument of the first call. The contents of FT1T and FT1V are all real as specified by the '-F' argument of the second and third calls. For a discussion of ZEBRA bank formats see the MZFORM section of the ZEBRA Manual Q100/Q101.


next up previous contents
Next: Step 5:- FT1_FITTER.FOR Up: Adding a New Fitter Previous: Step 3:- BANK_FT1.INC   Contents
sno Guest Acct 2009-09-09