*CMZ : 2.04/00 23/11/94 14.24.55 by Charles F. Maguire *CMZU: 2.01/00 22/03/93 13.59.12 by John P. Sullivan *-- Author : John P. Sullivan 07/12/92 SUBROUTINE VER_USER C C DESCRIPTION: c User code for vertex detector. This version is only a C skeleton for a true analysis. The real analysis is not C done inside PISA. C C ARGUMENTS: None C C MAP: C 1) CALLED BY: G_USER2 C 2) CALLS: (none) C C AUTHOR: JPSullivan December 7, 1992 C C REVISIONS: DATE NAME MODIFICATION C ------ ------ ------------------------------------- C 12/23/92 JPS Add a few comments, remove unused variables C and keeps. C 7/27/94 JPS Removed most of the code because it is no longer C used -- the analysis is not done inside PISA. C IMPLICIT NONE C C GLOBAL SPECIFICATIONS: C C GUPHNX contains "variables of general interest", data-card defs, flags. C in particular, CVOLU_OPT is used in this subroutine. C Unfortunately, this also defines the local variables HIT_ALL, C RMAG1_FSLOPE, and RMAG2_FSLOPE which are not used here and C therefore result in undefined variable warning messages C when this is compiled. *KEEP,GUPHNX. include 'guphnx.inc' *KEND. C C +CDE,UDST. (not used here) contains dst I/O control parameters. C C +CDE,QUEST.(not used here) contains the "quest" array, which zebra used C to pass error flag and related information. C C FSTORE has the common where the detector specific data are stored. *KEEP,FSTORE. include 'fstore.inc' *KEND. C C FPVLINK contains the zebra links for the vertex detector. In particular C it has the pointers into the common inside FSTORE where the vertex C detector event data and geometry parameters are stored. C It also contains various offset parameters related the the C structure of the vertex detector data banks. *KEEP,SUBLINK. include 'sublink.inc' *KEEP,FPVLINK. include 'fpvlink.inc' *KEND. C C SUBEVT contains data related to the sub-event structure, for example, C the sub-event number and the true event number. *KEEP,SUBEVT. include 'subevt.inc' *KEND. C C INTERNAL SPECIFICATIONS: c INTEGER VMUL, ICALL SAVE ICALL C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C variables used in commented out sample code: C INTEGER LF_V, LF_VBASE, J, IWFR_ADR, ISTR_ADR C INTEGER N_TYPE, N_LADDER, N_WAFER C N_TYPE 1=regular or 2=longer strip C N_LADDER Ladder number C N_WAFER Wafer number CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C DATA ICALL / 0 / C C _________________________________________________________________ C THE EXECUTABLE STATEMENTS FOLLOW BELOW C _________________________________________________________________ C C do some tests for the first event only C IF ( ICALL.EQ.0 ) THEN C ICALL = 1 C END IF C IF ( NSUB_EVT.EQ.1 ) THEN C C Here is where things that happen once per event, on the 1st sub-event, C should go C END IF C C Standard event processing , which is done per subevent, should go here C VMUL = IQF(LFV_CAL(1)+1) !subevent hits multiplicity c c Now, collect all of the hits from this sub event (commented out) C C IF(CVOLU_OPT(4,1).EQ.'VMAP') THEN ! simulate mapped ADC/TDC data C LF_VBASE = LFV_MAP(1) C ELSEIF(CVOLU_OPT(4,1).EQ.'VCAL') THEN ! simulate calibrated data C LF_VBASE = LFV_CAL(1) C ENDIF C C DO J=1,VMUL C LF_V = LF_VBASE + (J-1)*MFV_MAP + 2 ! offset into mother bank C IF (CVOLU_OPT(4,1).EQ.'VMAP') then ! mapped data C IWFR_ADR = IQF(LF_V + OFVM_WAFER) C ELSEIF(CVOLU_OPT(4,1).EQ.'VCAL') THEN ! calibrated data C IWFR_ADR = IQF(LF_V + OFVC_WAFER) C ENDIF C N_TYPE = IWFR_ADR/10000 C ITEMP = IWFR_ADR-N_TYPE*10000 C N_LADDER = ITEMP/1000 C N_WAFER = ITEMP-N_LADDER*1000 C ENDDO ! loop on original multiplicity C c************************************************************************* c IF ( .NOT.END_EVTFLG ) RETURN C C This is where any code that is done only for the last sub-event C would go -- for instance an algorithm to take all of the information C stored in XKEV_VER and use it to find the vertex would go here. C RETURN END